Bug #47135 | Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" | ||
---|---|---|---|
Submitted: | 4 Sep 2009 12:56 | Modified: | 8 Mar 2010 14:50 |
Reporter: | Joerg Bruehe | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Partitions | Severity: | S3 (Non-critical) |
Version: | 5.4.2-beta | OS: | Other (Solaris + OS X, see text) |
Assigned to: | Mattias Jonsson | CPU Architecture: | Any |
[4 Sep 2009 12:56]
Joerg Bruehe
[4 Sep 2009 13:06]
Joerg Bruehe
Some of the failures for "partition_alter2_2_innodb": ===== parts.partition_alter2_2_innodb [ fail ] timeout after 900 seconds Test ended at YYYY-MM-DD HH:MM:SS Test case timeout after 900 seconds == /PATH/mysql-test/var/log/partition_alter2_2_innodb.log == REPAIR TABLE t1 EXTENDED; Table Op Msg_type Msg_text test.t1 repair note The storage engine for the table doesn't support repair # check layout success: 1 TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 # End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( f_int1 INTEGER, f_int2 INTEGER, f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) , UNIQUE INDEX uidx (f_int2,f_int1) ) PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2; == /PATH/mysql-test/var/tmp/analyze-timeout-mysqld.1.err == mysqltest: Could not open connection 'default' after 500 attempts: 2002 Can't connect to local MySQL server through socket '/PATH/mysqld.1.sock' (146) - saving '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' to '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' - found 'core', moving it to '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb' ===== Solaris 10, Sparc, 32 bit ===== parts.partition_alter2_2_innodb [ retry-fail ] timeout after 900 seconds Test ended at YYYY-MM-DD HH:MM:SS Test case timeout after 900 seconds == /PATH/mysql-test/var/log/partition_alter2_2_innodb.log == SELECT -f_int1,-f_int1,CAST(-f_int1 AS CHAR),CAST(-f_int1 AS CHAR), 'just inserted' FROM t0_template WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1; CREATE TRIGGER trg_1 AFTER DELETE ON t0_aux FOR EACH ROW BEGIN UPDATE t1 SET f_int1 = -f_int1, f_int2 = -f_int2, f_charbig = 'updated by trigger' WHERE f_int1 = - old.f_int1; END| DELETE FROM t0_aux WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1)); # check trigger-8 success: 1 DROP TRIGGER trg_1; UPDATE t1 SET f_int1 = CAST(f_char1 AS SIGNED INT), f_int2 = CAST(f_char1 AS SIGNED INT), f_charbig = 'just inserted' WHERE f_int1 <> CAST(f_char1 AS SIGNED INT); DELETE FROM t0_aux WHERE ABS(f_int1) BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1; The server [mysqld.1 - pid: PID, winpid: PID, exit: 256] crashed while running 'analyze-timeout' - saving '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' to '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' ===== OS X, PPC, 32bit ===== parts.partition_alter2_2_innodb [ retry-fail ] timeout after 900 seconds Test ended at YYYY-MM-DD HH:MM:SS Test case timeout after 900 seconds == /PATH/mysql-test/var/log/partition_alter2_2_innodb.log == # check TRUNCATE success: 1 # check layout success: 1 # End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, f_int2 INTEGER, f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) , UNIQUE INDEX uidx (f_int2,f_int1) ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0), PARTITION partb VALUES LESS THAN (5), PARTITION partc VALUES LESS THAN (10), PARTITION partd VALUES LESS THAN (2147483646)); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template WHERE f_int1 BETWEEN 1 AND @max_row_div2 - 1; == /PATH/mysql-test/var/tmp/analyze-timeout-mysqld.1.err == mysqltest: Could not open connection 'default' after 500 attempts: 2002 Can't connect to local MySQL server through socket '/PATH/mysqld.1.sock' (146) - saving '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' to '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb/' - found 'core', moving it to '/PATH/mysql-test/var/log/parts.partition_alter2_2_innodb' ===== Solaris 10, Sparc, 32bit
[4 Sep 2009 13:41]
Mattias Jonsson
Joerg, can the problem be that these tests just takes too long on these platforms? (I have already splitted those test because of that...) If that is the case, then I could just split them further och only run them with --big option.
[4 Sep 2009 14:39]
Joerg Bruehe
I cannot prove this not to be the case, but my data do not really support that idea. See the run times for Solaris 8 and 9 on Sparc, where the 32 bit builds are somewhat faster than the 64 bit ones: Solaris 10 obviously behaves different. OTOH, re-checking the times showed that sometimes we had a "pass" on retry on the critical platforms, but we never had two "pass". So maybe it is really just at the time limit, and the Solaris 10 relation (compared to 8 and 9) is just variation. Here are the data, by platform, for the two tests: RPM-x86: 233251 121873 RPM-x86_64: 180191 166361 RPM-ia64: 456909 457485 rhel3-i686.log: 101967 101851 rhel3-x86_64.log: 427483 431691 rhel3-ia64.log: 516892 524012 rhel4-i686.log: 105161 104562 rhel4-x86_64.log: 112634 113136 rhel4-ia64.log: 176063 175883 rhel5-i686.log: 131296 132282 rhel5-x86_64.log: 102119 103856 rhel5-ia64.log: 151666 151198 sles9-i686.log: 262347 262487 sles9-x86_64.log: 138228 137852 sles9-ia64.log: 190003 190366 sles10-i686.log: 237279 235080 sles10-x86_64.log: 265411 266666 sles10-ia64.log: 194526 194137 sles11-i686.log: 267909 267871 sles11-x86_64.log: 288176 290888 aix5.3-powerpc-64bit: 351158 351843 freebsd7.0-x86: 60969 62224 freebsd7.0-x86_64: 121301 112201 freebsd6.3-x86: 86446 86968 freebsd6.3-x86_64: 359606 352972 hpux11.23-ia64: 473145 476130 hpux11.11-hppa-32bit: 650245 654660 hpux11.11-hppa-64bit: 636295 640041 win32: 426259 615015 winx64: 419746 404233 linux-powerpc: 167158 168132 linux-s390x: 96109 97283 linux-x86: 142858 144267 linux-x86-icc: 230922 222323 linux-x86_64: 108641 119571 linux-x86_64-icc: 265726 264961 linux-ia64: 439215 441883 solaris8-sparc-64bit: 473957 473219 solaris8-sparc-64bit-pkgadd: 466240 468280 solaris8-sparc-32bit: 464007 474615 solaris8-sparc-32bit-pkgadd: 369897 367094 solaris8-x86: failed for different bug solaris8-x86-pkgadd: failed for different bug solaris9-sparc-64bit: 785696 791343 solaris9-sparc-64bit-pkgadd: 833971 792303 solaris9-sparc-32bit: 693150 726230 solaris9-sparc-32bit-pkgadd: 680311 697317 solaris9-x86: 119705 119210 solaris9-x86-pkgadd: 118417 114806 solaris10-sparc-32bit: timeout timeout solaris10-sparc-32bit-pkgadd: timeout timeout solaris10-sparc-64bit: 751442 747862 solaris10-sparc-64bit-pkgadd: 723013 748130 solaris10-x86: 158424 138691 solaris10-x86-pkgadd: 163296 153316 solaris10-x86_64: 154245 115791 solaris10-x86_64-pkgadd: 163390 99646 osx10.4-powerpc-32bit: 551297 551458 osx10.4-powerpc-64bit: 65237 65859 osx10.5-x86: 434397 480570 osx10.5-x86_64: 414097 412030 osx10.5-powerpc-32bit: timeout timeout osx10.5-powerpc-64bit: timeout timeout
[9 Sep 2009 9:50]
Mattias Jonsson
To me it seems like it does not really crash, but fails on 'timeout', due to slower hardware/platform.
[9 Sep 2009 9:58]
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/82789 3591 Mattias Jonsson 2009-09-09 Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" First step only! rename to make it possible to split up the test without having merge issues later (and a small fix for removing DBUG warnings about missing DBUG_RETURN). @ sql/sql_partition.cc Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Small fix for removing DBUG warnings about missing DBUG_RETURN.
[9 Sep 2009 11:02]
Joerg Bruehe
Regarding "crash" vs "timeout" (11:50): I don't have a full analysis, I titled "Server crashes ..." because the log contains found 'core' or The server [...] crashed while running 'analyze-timeout'
[9 Sep 2009 11:43]
Mattias Jonsson
I think it found a core since mtr killed the server due to timeout... (IIRC it is supposed to do that...)
[11 Sep 2009 6:38]
Mattias Jonsson
I've committed a patch which is very big, since it splits two very big result files into four. Will upload it since the mail was too large to deliver. commit comments: #At file:///Users/mattiasj/clones/bzrroot/b47135-mysql-pe/ based on revid:mattias.jonsson...-20090909095319-pk7i53cy78xq9aam 3592 Mattias Jonsson 2009-09-10 Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Problem seems to be timout on slow platforms. Solution was to remove some parts of the tests (almost identical tests twice) and split the rest into two separate test files. @ mysql-test/suite/parts/inc/partition_alter2_1.inc Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Removed similar tests (one column tests was removed) and made it possible to to run the test as two separate parts. @ mysql-test/suite/parts/inc/partition_alter2_2.inc Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Removed similar tests (one column tests was removed) and made it possible to to run the test as two separate parts. @ mysql-test/suite/parts/inc/partition_alter_13.inc Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Changed the include file to be more consistent with the similar partition_alter_11.inc (11 is used for single column alters and 13 for two column alters) @ mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_1_2_ndb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_1_ndb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_2_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_2_myisam.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter1_2_ndb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to changes in partition_alter_13.inc @ mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to splitting test 2_1 into 2_1_1 and 2_1_2. And removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to splitting test 2_1 into 2_1_1 and 2_1_2. And removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/r/partition_alter2_1_myisam.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to splitting test 2_1 into 2_1_1 and 2_1_2. And removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to splitting test 2_1 into 2_1_1 and 2_1_2. And removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/r/partition_alter2_2_myisam.result Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Updated test result due to removing some parts (almost duplicate tests) of the tests. @ mysql-test/suite/parts/t/partition_alter2_1_1_innodb.test Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Splitted the test to only do the first part of the test @ mysql-test/suite/parts/t/partition_alter2_1_2_innodb.test Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Splitted the test to only do the second part of the test @ mysql-test/suite/parts/t/partition_alter2_2_1_innodb.test Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Splitted the test to only do the first part of the test @ mysql-test/suite/parts/t/partition_alter2_2_2_innodb.test Bug#47135: Server crashes on "partition_alter2_1_innodb" + "partition_alter2_2_innodb" Splitted the test to only do the second part of the test added: mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result mysql-test/suite/parts/t/partition_alter2_1_2_innodb.test mysql-test/suite/parts/t/partition_alter2_2_2_innodb.test modified: mysql-test/suite/parts/inc/partition_alter2_1.inc mysql-test/suite/parts/inc/partition_alter2_2.inc mysql-test/suite/parts/inc/partition_alter_13.inc mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result mysql-test/suite/parts/r/partition_alter1_1_2_ndb.result mysql-test/suite/parts/r/partition_alter1_1_ndb.result mysql-test/suite/parts/r/partition_alter1_2_innodb.result mysql-test/suite/parts/r/partition_alter1_2_myisam.result mysql-test/suite/parts/r/partition_alter1_2_ndb.result mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result mysql-test/suite/parts/r/partition_alter2_1_myisam.result mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result mysql-test/suite/parts/r/partition_alter2_2_myisam.result mysql-test/suite/parts/t/partition_alter2_1_1_innodb.test mysql-test/suite/parts/t/partition_alter2_2_1_innodb.test
[11 Sep 2009 6:39]
Mattias Jonsson
Proposed patch, splits two long running tests into four.
Attachment: b47135.2.commit.bzrsend.gz (application/x-gzip, text), 277.17 KiB.
[23 Oct 2009 20:24]
Joerg Bruehe
In the 5.1.40 build, I don't see such crashes, but I have timeouts in this test with four platforms: Linux/IA64 RPM specific for RedHat 3 (icc) Linux/IA64 RPM generic (gcc) i5os 32 bit i5os 64 bit For the other platforms, the logged run times range from 51,039 ms (Solaris 10, x86_64) to 756,215 ms (OS X 10.5, x86_64). For now, I will consider the timeouts the same problem as this bug. If experience with future 5.4 builds shows the split does help, I would like to see this split backported to 5.1.
[25 Nov 2009 9:40]
Mattias Jonsson
pushed to mysql-next-mr-bugfixing
[11 Dec 2009 6:02]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091211055901-yp18b3c7xuhl87rf) (version source revid:alik@sun.com-20091211055401-43rjwq7gjed6ds83) (merge vers: 6.0.14-alpha) (pib:13)
[11 Dec 2009 6:04]
Bugs System
Pushed into 5.6.0-beta (revid:alik@sun.com-20091211055628-ltr7fero363uev7r) (version source revid:alik@sun.com-20091211055453-717czhtezc74u8db) (merge vers: 5.6.0-beta) (pib:13)
[11 Dec 2009 16:43]
Jon Stephens
Changes in test code only, no user-facing changes to document. Closed without further action.
[6 Jan 2010 15:18]
Joerg Bruehe
Still observed in the build of 5.5.1-m2 - no surprise, as the fix was not pushed into that version :(
[6 Mar 2010 10:53]
Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20091211201717-03qf8ckwiw0np80p) (merge vers: 5.6.0-beta) (pib:16)
[8 Mar 2010 14:50]
Jon Stephens
Although I'm sure that Jörg is happy to have this in 5.5 now, the changes were in test code only with no user-facing changes to document, so I've closed (again) without any further action.