Bug #40330 Maria: mysqlslap.test fails randomly with default-storage-engine=maria
Submitted: 25 Oct 2008 20:26 Modified: 11 Mar 2009 9:26
Reporter: Guilhem Bichot Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Maria storage engine Severity:S3 (Non-critical)
Version:5.1-maria OS:Linux
Assigned to: Christoffer Hall CPU Architecture:Any

[25 Oct 2008 20:26] Guilhem Bichot
Description:
It is not clear if this is a bug in Maria or not (could be in mysqlslap), requires investigation from our side.
When I run:
./mtr --mysqld=--default-storage-engine=maria mysqlslap --mem
it frequently fails with errors like:
mysqltest: At line 7: command "$MYSQL_SLAP --silent --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql" failed

This seems to happen more frequently when using --mem and not --debug.
It happened on Linux 64 bits too.

How to repeat:
./mtr --mysqld=--default-storage-engine=maria mysqlslap --mem

Suggested fix:
Investigate to identify if problem is in Maria.
[25 Oct 2008 20:31] Guilhem Bichot
By the way, running with --debug --mem I sometimes hit BUG#36473.
[6 Nov 2008 15:11] Guilhem Bichot
When I run this in latest 5.1-maria:
(i=0; while true; do i=`expr $i + 1`; echo $i; ./mtr --mem --mysqld=--default-storage-engine=maria mysqlslap || exit 1; done; ) 
it fails at i=3.
When I run with myisam instead of maria, it's ok for i=34 (after which I killed it).
So I suggest to classify it as a Maria bug, as MyISAM shows no failure.
[6 Nov 2008 20:59] Guilhem Bichot
Running with --debug without --mem, I hit, at 4th run, what could be the same as BUG#40416 (see post in BUG#40416).
[11 Nov 2008 20:36] Omer Barnir
triage: this is a problem with the Maria engine (not the test case)-triaging similar to BUG#40416 and setting the tag to SR60BETA
[16 Nov 2008 14:25] Guilhem Bichot
Some info which could be useful: I built with
compile-pentium-valgrind-max --with-debug=full
and added --valgrind to mtr, and ran mtr in a loop until it returned some non-zero code (took a few iterations); there was then this warning in master.err:
==4108== Invalid read of size 4
==4108==    at 0x84F790D: trnman_end_trn (my_atomic.h:215)
==4108==    by 0x8578493: ma_commit (ma_commit.c:60)
==4108==    by 0x8515596: ha_maria::implicit_commit(THD*, bool) (ha_maria.cc:2483)
==4108==    by 0x8251393: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1535)
==4108==    by 0x8251877: do_command(THD*) (sql_parse.cc:817)
==4108==    by 0x8240AE8: handle_one_connection (sql_connect.cc:1115)
==4108==    by 0x404C111: start_thread (in /lib/libpthread-2.5.so)
==4108==    by 0x41A52ED: clone (in /lib/libc-2.5.so)
==4108==  Address 0x57f0054 is 4 bytes before a block of size 262,140 alloc'd
==4108==    at 0x4023858: malloc (vg_replace_malloc.c:207)
==4108==    by 0x861ECBF: my_malloc (my_malloc.c:34)
==4108==    by 0x84F820B: trnman_init (trnman.c:135)
==4108==    by 0x8577105: maria_apply_log (ma_recovery.c:2554)
==4108==    by 0x8577903: maria_recovery_from_log (ma_recovery.c:212)
==4108==    by 0x8513D3F: ha_maria_init(void*) (ha_maria.cc:3120)
==4108==    by 0x8334398: ha_initialize_handlerton(st_plugin_int*) (handler.cc:421)
==4108==    by 0x83CC701: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1002)
==4108==    by 0x83CFF67: plugin_init(int*, char**, int) (sql_plugin.cc:1209)
==4108==    by 0x823AAB0: init_server_components() (mysqld.cc:3872)
==4108==    by 0x823BD23: main (mysqld.cc:4317)

Makes me think about:
http://bugs.mysql.com/bug.php?id=40416
http://bugs.mysql.com/bug.php?id=39440
http://bugs.mysql.com/bug.php?id=40711
[17 Nov 2008 8:49] Guilhem Bichot
Correction: the error in the previous post was with plain compile-pentium-valgrind-max, no options.
[10 Mar 2009 20:53] Guilhem Bichot
I ran the test 140 times with mysql-maria, no problem. Christoffer, I suggest you close the bug if you don't have more to add.
[11 Mar 2009 9:26] Christoffer Hall
Can't repeat now. See bugs other bugs mentioned earlier in bug report.