Bug #43491 | Server crashes with Maria on delete with index-merge access | ||
---|---|---|---|
Submitted: | 9 Mar 2009 8:23 | Modified: | 26 May 2010 17:52 |
Reporter: | Nidhi Shrotriya | Email Updates: | |
Status: | Unsupported | Impact on me: | |
Category: | MySQL Server: Maria storage engine | Severity: | S3 (Non-critical) |
Version: | 6.0.11 | OS: | Linux |
Assigned to: | CPU Architecture: | Any |
[9 Mar 2009 8:23]
Nidhi Shrotriya
[9 Mar 2009 12:44]
MySQL Verification Team
Thank you for the bug report. Verified as described. 000000007798420A ntdll.dll!_wcsupr() 0000000077984124 ntdll.dll!_wcsupr() 00000001402A340F mysqld.exe!my_rw_rdlock()[thr_rwlock.c:89] 000000014051F5A9 mysqld.exe!maria_rnext()[ma_rnext.c:48] 00000001404EE3B0 mysqld.exe!ha_maria::index_first()[ha_maria.cc:1961] 00000001400F46FE mysqld.exe!rr_index_first()[records.cc:354] 0000000140151220 mysqld.exe!mysql_delete()[sql_delete.cc:297] 000000014017619F mysqld.exe!mysql_execute_command()[sql_parse.cc:3253] 0000000140179028 mysqld.exe!mysql_parse()[sql_parse.cc:5757] 0000000140179A6A mysqld.exe!dispatch_command()[sql_parse.cc:1011] 000000014017A89C mysqld.exe!do_command()[sql_parse.cc:691] 0000000140219101 mysqld.exe!handle_one_connection()[sql_connect.cc:1146] 00000001402A6C9E mysqld.exe!pthread_start()[my_winthread.c:63] 000000014056A387 mysqld.exe!_callthreadstartex()[threadex.c:348] 000000014056A45F mysqld.exe!_threadstartex()[threadex.c:326] 000000007783C3BD kernel32.dll!BaseThreadInitThunk() 0000000077984581 ntdll.dll!RtlUserThreadStart() Trying to get some variables.
[12 Mar 2009 9:09]
Guilhem Bichot
stil true
[13 Mar 2009 11:47]
Christoffer Hall
The test can be simplified quite a bit. CREATE TABLE `t2` ( `c1` tinyint(4) NOT NULL, `c2` tinyint(3) unsigned DEFAULT NULL, `c3` int(11) DEFAULT NULL, KEY `c2` (`c2`), KEY `c1` (`c1`) ) ENGINE=MARIA; INSERT INTO t2 VALUES(-128,0,1),(-1,1,1),(-2,2,2),(-3,3,3),(-4,4,4),(-5,5,5),(-6,6,6),(0,0,7),(1,1,8),(127,255,9); DELETE FROM t2 WHERE c1=127 OR c2=3 ORDER BY c1 LIMIT 2; If any one of the two indexes are removed the problem goes away. The problem exposes itself in ha_maria::index_first. There is an assertion: DBUG_ASSERT(inited == INDEX); The variable inited is not INDEX but RND. The assertion checks for call order, which must somehow be violated. From the trace it seems an index merge happens.