Bug #17761 Crash in rpl_ndb_multi
Submitted: 28 Feb 2006 8:48 Modified: 8 Mar 2006 13:51
Reporter: Martin Skold Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S1 (Critical)
Version:5.1.7 OS:
Assigned to: Pekka Nousiainen CPU Architecture:Any

[28 Feb 2006 8:48] Martin Skold
Description:
When running
./mysql-test-run --with-ndbcluster-only --force
there is a crash of master1 in rpl_ndb_multi:

gdb sql/.libs/lt-mysqld mysql-test/var/master-data1/core.23430
...
(gdb)
#6  0x085b69ff in NdbDictionaryImpl::invalidateObject(NdbTableImpl&, bool) (
    this=0x9175e30, impl=@0x904a0e0, lock=true) at NdbDictionaryImpl.cpp:2791
2791          NdbColumnImpl& c = *impl.m_columns[i];
(gdb)
#7  0x085b6a74 in NdbDictionaryImpl::invalidateObject(NdbTableImpl&, bool) (
    this=0x9175e30, impl=@0x904a0e0, lock=true) at NdbDictionaryImpl.cpp:2795
2795          invalidateObject(*c.m_blobTable, false);
(gdb)
#8  0x085ab267 in NdbDictionary::Dictionary::invalidateTable(char const*) (
    this=0x9175e30, name=0x9189190 "gis_point") at NdbDictionary.cpp:1375
1375        m_impl.invalidateObject(* t);
(gdb)
#9  0x083c8a90 in ndbcluster_table_exists_in_engine(THD*, char const*, char const*) (thd=0x914cc88, db=0x91890e0 "test", name=0x9189190 "gis_point")
    at ha_ndbcluster.cc:5388
5388      dict->invalidateTable(name);
(gdb)
#10 0x083ca062 in ndbcluster_find_files(THD*, char const*, char const*, char const*, bool, List<char>*) (thd=0x914cc88, db=0x91890e0 "test",
    path=0x40606f4c "./test/", wild=0x0, dir=false, files=0x40606e8c)
    at ha_ndbcluster.cc:5710
5710        if (ndbcluster_table_exists_in_engine(thd, db, file_name) == 0)
(gdb)
#11 0x08301b92 in ha_find_files(THD*, char const*, char const*, char const*, bool, List<char>*) (thd=0x914cc88, db=0x91890e0 "test",
    path=0x40606f4c "./test/", wild=0x0, dir=false, files=0x40606e8c)
    at handler.cc:2579
2579        error= ndbcluster_find_files(thd, db, path, wild, dir, files);
(gdb)
#12 0x0832621f in mysql_find_files(THD*, List<char>*, char const*, char const*,
char const*, bool) (thd=0x914cc88, files=0x40606e8c, db=0x91890e0 "test",
    path=0x40606f4c "./test/", wild=0x0, dir=false) at sql_show.cc:492
492       VOID(ha_find_files(thd,db,path,wild,dir,files));
(gdb)
#13 0x0832bcb2 in get_all_tables(THD*, st_table_list*, Item*) (thd=0x914cc88,
    tables=0x9187768, cond=0x0) at sql_show.cc:2377
2377            if (mysql_find_files(thd, &files, base_name,
(gdb)
#14 0x08335888 in get_schema_tables_result(JOIN*) (join=0x9187c68)
    at sql_show.cc:4663
4663          if (table_list->schema_table->fill_table(thd, table_list,

How to repeat:
./mysql-test-run --with-ndbcluster-only --force

Suggested fix:
Remove BLOB tables from dictionary cache and only store them directly
under the owning table.
[3 Mar 2006 10:18] 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/3420
[3 Mar 2006 10:22] Pekka Nousiainen
more patches to come
not sure if related to this bug anyway
[5 Mar 2006 21:51] 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/3479
[5 Mar 2006 21:58] Pekka Nousiainen
this apparently fixes the crash
but breaks ndb_restore & other ndb api programs
which need direct access to blob tables.
[ do not apply this patch without next one(s) ]
[6 Mar 2006 10:17] 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/3486
[8 Mar 2006 13:51] Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Documented feature enhancement in 5.1.8 changelog. Closed.