Bug #21363 Server crash in ndb_restore / ndb_view test cases
Submitted: 31 Jul 2006 12:57 Modified: 1 Sep 2006 7:59
Reporter: Kristian Nielsen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:5.1.12 OS:Linux (Linux x86)
Assigned to: Jonas Oreland CPU Architecture:Any

[31 Jul 2006 12:57] Kristian Nielsen
Description:
Valgrind detects an invalid pointer read causing a crash in test cases ndb_restore and ndb_view:

VALGRIND: 'Invalid read of size 4'
    COUNT: 2
    FUNCTION: Ndb::handleReceivedSignal(NdbApiSignal*,    FILES:    master.err
    TESTS:    ndb_restore ndb_view
    STACK: at 0x95A1FB: Ndb::handleReceivedSignal(NdbApiSignal*, LinearSectionPtr*) (Ndbif.cpp:745)
             by 0x958F28: Ndb::executeMessage(void*, NdbApiSignal*, LinearSectionPtr*) (Ndbif.cpp:175)
             by 0x9BDC07: execute(void*, SignalHeader*, unsigned char, unsigned*, LinearSectionPtr*) (TransporterFacade.cpp:226)
             by 0x9C84A9: TransporterRegistry::unpack(unsigned*, unsigned, unsigned short, IOState) (Packer.cpp:109)
             by 0x9C68A7: TransporterRegistry::performReceive() (TransporterRegistry.cpp:955)
             by 0x9BE3CD: TransporterFacade::threadMainReceive() (TransporterFacade.cpp:514)
             by 0x9BE2E8: runReceiveResponse_C (TransporterFacade.cpp:486)
             by 0x9AD63E: ndb_thread_wrapper (NdbThread.c:82)
             by 0x4C37C63: start_thread (in /lib64/tls/libpthread-0.60.so)
             by 0x52F3242: clone (in /lib64/tls/libc-2.3.2.so)
           Address 0x220 is not stack'd, malloc'd or (recently) free'd

The problem is not seen on every run, but it is easy to repeat by running the tests in a loop.

How to repeat:
(for i in `seq 1 100`; do echo XXX $i XXX; ./mysql-test-run.pl --valgrind-all ndb_restore ndb_view; fgrep Ndb::handleReceivedSignal var/log/master.err && exit 1; done)

For me, this repeats the problem reliably after a few runs.
[9 Aug 2006 8:22] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/10188

ChangeSet@1.2244, 2006-08-09 10:22:09+02:00, jonas@perch.ndb.mysql.com +5 -0
  ndb - bug#21363
    Add extra sleeps (conditionally) if user-ndb-object still exists during shutdown
    Note: This is not in anyway optimal, but i dont't really know in which order should be shutdown
          but it fixes problem...
[9 Aug 2006 8:41] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/10189

ChangeSet@1.2245, 2006-08-09 10:41:22+02:00, jonas@perch.ndb.mysql.com +1 -0
  ndb - bug#21363
    add file that got missing from last changset
[1 Sep 2006 7:59] Jonas Oreland
pushed to 5.1.12 nothing to document