| 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: | |
| 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 |
[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

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.