Bug #43632 MT+DD use of uninitalized table object during UNDO-execution, if table dropped

Submitted: 13 Mar 2009 13:46 Modified: 15 Apr 2009 2:28
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:6.4 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[13 Mar 2009 13:46] Jonas Oreland
Description:
DbtupProxy uses getInstanceKey, wo/ knowing if table is dropped or not
This leads to crash in DIH

2009-03-13 14:42:32 [ndbd] INFO     -- dbdih/DbdihMain.cpp
2009-03-13 14:42:32 [ndbd] INFO     -- DBDIH (Line: 8419) 0x00000002
2009-03-13 14:42:32 [ndbd] INFO     -- Error handler startup shutting down system
2009-03-13 14:42:32 [ndbd] INFO     -- Error handler shutdown completed - aborting

How to repeat:
run follwing on 1-node ndbmtd

create_tab D1 D2
hugoLoad -r 1000 D1; hugoLoad -r 1000 D2

echo "checkpoint"
ndb_mgm -e "all dump 7099"
sleep 10

ndb_delete_all D1 D2
ndb_drop_table D1 D2

ndb_mgm -e "all restart -a"

Suggested fix:
why not store instance key on diskpage ?
if that deemed to important,
dbtup-proxy must keep state of which tables are created/dropped
(which it can since it's proxying create-drop-table)
[13 Mar 2009 13:48] Jonas Oreland
this also affects autotest
testSystemRestart -n basic T1
[16 Mar 2009 17:04] 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/69326

2952 Pekka Nousiainen	2009-03-16
      bug#43632 01.diff
      TUP proxy: for UNDO execution keep track of which tables exist
      modified:
        storage/ndb/src/kernel/blocks/LocalProxy.cpp
        storage/ndb/src/kernel/blocks/LocalProxy.hpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhProxy.cpp
        storage/ndb/src/kernel/blocks/dbtup/DbtupProxy.cpp
        storage/ndb/src/kernel/blocks/dbtup/DbtupProxy.hpp
[16 Mar 2009 17:07] Bugs System
Pushed into 5.1.32-ndb-7.0.4 (revid:pekka@mysql.com-20090316170507-kp3n7um1txenx487) (version source revid:pekka@mysql.com-20090316170507-kp3n7um1txenx487) (merge vers: 5.1.32-ndb-7.0.4) (pib:6)
[19 Mar 2009 6:20] Jon Stephens
Documented bugfix in the NDB-7.0.4 changelog as follows:

        When using multi-threaded data nodes, dropping a Disk Data 
        table followed by a data node restart led to a crash.
[5 Apr 2009 12:44] Jonas Oreland
reopen, cause testSystemRestart -n basic T1 still crashes
with same backtrace
[8 Apr 2009 13:13] Jonas Oreland
new testcase

create_tab D1 D2; reorg_tab -p 4 D1 D2; hugoLoad -r 1000 D1 D2; ndb_mgm -e "all dump 7099"; sleep 10; ndb_drop_table D1 D2; create_tab D1 D2; ndb_mgm -e "all restart -a"

key concepts:
Proxy does not react to create/drop in undo-log, causing it to potentially
make incorrect getInstanceKey calls.

Patch (upcoming) changes this...
[8 Apr 2009 13:45] 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/71652

2886 Jonas Oreland	2009-04-08
      ndb - bug#43632 - make DbtupProxy also react to create/drop table in UNDO log
[8 Apr 2009 14:55] Bugs System
Pushed into 5.1.32-ndb-7.0.5 (revid:jonas@mysql.com-20090408145040-hhbuq1zvc7xj0tx4) (version source revid:jonas@mysql.com-20090408134427-1ch4i8l7odzpmml1) (merge vers: 5.1.32-ndb-7.0.5) (pib:6)
[15 Apr 2009 2:28] Jon Stephens
Also documented in the NDB-7.0.5 changelog, with additional note:

        This fix completes one that was made for this issue in MySQL
        Cluster NDB-7.0.4, which did not rectify the problem in all
        cases.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.059 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.