Bug #20326 | test federated crashes mysqld with 5.1.12-beta | ||
---|---|---|---|
Submitted: | 7 Jun 2006 22:20 | Modified: | 18 Jul 2006 22:05 |
Reporter: | Marc Alff | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.1.12-beta | OS: | GNU/Linux AMD64 |
Assigned to: | Bugs System | CPU Architecture: | Any |
[7 Jun 2006 22:20]
Marc Alff
[7 Jun 2006 22:22]
Marc Alff
DDD session
Attachment: BUG-MySQL-20326 (application/octet-stream, text), 11.32 KiB.
[8 Jun 2006 12:23]
Valeriy Kravchuk
Test passed OK with older 5.1-BK build (ChangeSet@1.2179.1.1, 2006-06-05 15:07:27-07:00).
[9 Jun 2006 7:54]
Marc Alff
Tried to narrow down the issue and found the following : 5.1.11-beta + BUILD/compile-amd64-max : ./mysql-test-run.pl --force : all the tests pass 5.1.11-beta + BUILD/compile-amd64-debug-max : ./mysql-test-run.pl --force : test case federated fails, all the other tests pass 5.1.12-beta (BK) + BUILD/compile-amd64-max : ./mysql-test-run.pl --force : - test federated pass - tests system_mysql_db_fix, view fails - other tests pass 5.1.12-beta (BK) + BUILD/compile-amd64-debug-max : ./mysql-test-run.pl --force : - test case federated fails - tests system_mysql_db_fix, view fails - other tests pass Somehow, compiling with debug causes the test case federated to fail, both with 5.1.11-beta and 5.1.12-beta
[30 Jun 2006 13:09]
Marc Alff
Running the test case 'federated' under valgrind shows that free'd memory is used, so this is a confirmed bug in the code. See the attached master.err file, look for "Invalid read" errors. Reproduced with 5.1-BK as of 2006-06-28
[30 Jun 2006 13:10]
Marc Alff
valgrind error log
Attachment: master.err (application/octet-stream, text), 129.46 KiB.
[30 Jun 2006 21:23]
Antony Curtis
I am getting the same crash in this test using current 5.1 bk tree This is on Gentoo Linux amd64
[1 Jul 2006 10:55]
Valeriy Kravchuk
Still can't repeat with latest 5.1.12-BK (ChangeSet@1.2228.1.1, 2006-07-01 01:37:20+04:00) built --with-debug=full (test passes). But this may be also bug repeatable on gentoo/AMD64 only. So, with valgrind error log uploaded, I think, we have enough information for developers to take a look at this report.
[2 Jul 2006 19:01]
Patrick Galbraith
Looking into this issue. I also need to find a gentoo box in our build farm.
[18 Jul 2006 18:41]
Patrick Galbraith
I cannot reproduce this. I will try with valgrind. See too if you can reproduce this. patg@govinda:~/mysql-build/mysql-5.1-engines/mysql-test> uname -a Linux govinda 2.6.13-15.8-default #1 Tue Feb 7 11:07:24 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux patg@govinda:~/mysql-build/mysql-5.1-engines/mysql-test> ../sql/mysqld --version ../sql/mysqld Ver 5.1.12-beta-debug for suse-linux on x86_64 (Source distribution) patg@govinda:~/mysql-build/mysql-5.1-engines/mysql-test> ./mysql-test-run.pl federated -ddd Logging: ./mysql-test-run.pl federated -ddd Using "../libtool" when running valgrind or debugger Using ndbcluster if necessary, mysqld supports it Setting mysqld to support SSL connections Using MTR_BUILD_THREAD = 0 Using MASTER_MYPORT = 9306 Using MASTER_MYPORT1 = 9307 Using SLAVE_MYPORT = 9308 Using SLAVE_MYPORT1 = 9309 Using SLAVE_MYPORT2 = 9310 Using NDBCLUSTER_PORT = 9310 Using NDBCLUSTER_PORT_SLAVE = 9311 Using IM_PORT = 9312 Using IM_MYSQLD1_PORT = 9313 Using IM_MYSQLD2_PORT = 9314 Killing Possible Leftover Processes Removing Stale Files Installing Master Database Installing Master Database Installing Slave Database Installing Slave Database Installing Slave Database ======================================================= Finding Tests in the 'main' suite Starting Tests in the 'main' suite TEST RESULT TIME (ms) ------------------------------------------------------- federated [ pass ] 44563 ------------------------------------------------------- All 1 tests were successful.
[18 Jul 2006 22:05]
Marc Alff
Reproduced both the crash and the valgrind error, with bk://mysql.bkbits.net/mysql-5.1 as of 2006-07-17. uname -a : Linux weblab 2.6.15-gentoo-r7 #10 PREEMPT Wed Mar 29 15:48:01 MST 2006 x86_64 AMD Athlon(tm) 64 Processor 3200+ GNU/Linux ./mysqld --help : ./mysqld Ver 5.1.12-beta-debug for unknown-linux-gnu on x86_64 (Source distribution) I disagree with changing the bug status to "can't repeat" based on the "pass" result alone. Since the issue reported by valgrind shows that invalid memory is used, the test execution can "PASS" or crash in a very unreproductible way, depending on debug/release builds, use of ddd, platform, etc (or anything that modifies the malloc/free patterns, really). In my opinion, a test that shows valgrind errors should be considered failed, regardless of the "PASS"/"FAIL" report given, and in this case the bug *is* reproduced. Now, if the federated test does pass *and* is valgrind clean, the bug report can be flaged as c'ant repeat (but it's not the case). By the same token, if a code change is needed to fix valgrind errors (assuming they can be reproduced), a "PASS" result under a clean run is sufficient verification of the fix, even if the crash could not be observed due to difficulties reprocucing it (understandable due to the nature of the bug). If needed, I can also test code changes with my machine, to test fixes under the environment that cause the initial crash, for additional verification. (see email in private attachments)