Bug #23110 Some NDB tests assert randomly on mixed mode binlog
Submitted: 9 Oct 2006 16:13 Modified: 13 Nov 2006 5:30
Reporter: Ingo Strüwing Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Replication Severity:S1 (Critical)
Version:5.1.12 OS:Linux (Debian Sid kernel 2.6.16)
Assigned to: Martin Skold CPU Architecture:Any

[9 Oct 2006 16:13] Ingo Strüwing
Description:
Tests pass, but "make test-force" fails on warnings.

egrep "CURRENT_TEST|Assertion" mysql-test/var/log/master1.err
[Some lines with "CURRENT_TEST" deleted for brevity]

CURRENT_TEST: ndb_alter_table
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_basic
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_blob
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_dd_alter
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_dd_disk2memory
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_replace
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_restore_compat
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.
CURRENT_TEST: ndb_trigger
mysqld: log.cc:3117: int THD::binlog_write_table_map(TABLE*, bool): Assertion `current_stmt_binlog_row_based && mysql_bin_log.is_open()' failed.

How to repeat:
OS: Debian Sid kernel 2.6.16 PREEMPT
HW: Pentium4 (32 bit) 2.4GHz 2GB RAM

BUILD/compile-pentium-debug-max
cd mysql-test
./mysql-test-run.pl --force --mysqld=--binlog-format=mixed ndb_alter_table ndb_basic ndb_blob ndb_dd_alter ndb_dd_disk2memory ndb_replace ndb_restore_compat ndb_trigger

Note: Not all of these tests do always crash master1. This is just a snap
[16 Oct 2006 14:55] Ingo Strüwing
Today I got this crash in ndb_multi.test. I found a second core file with this (partial) backtrace:

#11 0x4011fcbf in *__GI___assert_fail (assertion=0x8739041 "(0)", file=0x8738425 "ha_ndbcluster.cc", line=7220, 
    function=0x873bf00 "int handle_trailing_share(NDB_SHARE*)") at assert.c:83
#12 0x0836bcd9 in handle_trailing_share (share=0x89d03c0) at ha_ndbcluster.cc:7220
#13 0x083638f8 in ha_ndbcluster::create (this=0x8a3dab8, name=0x40497f20 "./test/t1", form=0x40497550, info=0x8ad7260)
    at ha_ndbcluster.cc:4839
#14 0x08347017 in ha_create_table (thd=0x8a64510, path=0x40497f20 "./test/t1", db=0x8ad71d0 "test", 
    table_name=0x8ad7000 "t1", create_info=0x8ad7260, update_create_info=false) at handler.cc:2590
#15 0x0831e36a in rea_create_table (thd=0x8a64510, path=0x40497f20 "./test/t1", db=0x8ad71d0 "test", 
    table_name=0x8ad7000 "t1", create_info=0x8ad7260, create_fields=@0x8a64a44, keys=0, key_info=0x8ad83b8, 
    file=0x8ad72e0) at unireg.cc:362
#16 0x08391f21 in mysql_create_table_internal (thd=0x8a64510, db=0x8ad71d0 "test", table_name=0x8ad7000 "t1", 
    lex_create_info=0x8a64b2c, fields=@0x8a64a44, keys=@0x8a64a38, internal_tmp_table=false, select_field_count=0, 
    use_copy_create_info=true) at sql_table.cc:3493
#17 0x08392265 in mysql_create_table (thd=0x8a64510, db=0x8ad71d0 "test", table_name=0x8ad7000 "t1", 
    create_info=0x8a64b2c, fields=@0x8a64a44, keys=@0x8a64a38, internal_tmp_table=false, select_field_count=0, 
    use_copy_create_info=true) at sql_table.cc:3570
#18 0x08265c2b in mysql_execute_command (thd=0x8a64510) at sql_parse.cc:3016
#19 0x0826e901 in mysql_parse (thd=0x8a64510, inBuf=0x8ad6f98 "create table t1 (a int) engine=ndbcluster", length=41)
    at sql_parse.cc:6080
#20 0x08262e06 in dispatch_command (command=COM_QUERY, thd=0x8a64510, 
    packet=0x8acef39 "create table t1 (a int) engine=ndbcluster", packet_length=42) at sql_parse.cc:1828
[27 Oct 2006 11:19] 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/14465

ChangeSet@1.2331, 2006-10-27 12:44:03+02:00, mskold@mysql.com +1 -0
  bug#23110  Some NDB tests assert randomly on mixed mode binlog: don't reset binlog format for NDB binlog injector thread
[1 Nov 2006 21:36] 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/14709

ChangeSet@1.2336, 2006-11-01 23:35:58+02:00, monty@mysql.com +1 -0
  bug#23110  Some NDB tests assert randomly on mixed mode binlog: Don't reset binlog format for NDB binlog injector thread
[8 Nov 2006 8:55] Valeriy Kravchuk
Bug #23592 was marked as a duplicate of this one.