From: Frazer Clement Date: January 10 2013 2:20pm Subject: bzr push into mysql-5.5-cluster-7.2 branch (frazer.clement:4152 to 4153) List-Archive: http://lists.mysql.com/commits/145594 Message-Id: <201301101420.r0AEK6j1032745@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4153 Frazer Clement 2013-01-10 [merge] Merge 7.1->7.2 modified: mysql-test/suite/ndb/r/ndb_mgm.result mysql-test/suite/ndb/t/ndb_mgm.test scripts/mysqld_safe.sh storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp 4152 Frazer Clement 2013-01-09 BUG#16029263 NDB SLAVE BATCHING, REPLICATION AND KEYLESS TABLES Fix to patch disabling testcases. Remove unnecessary STOP SLAVE, and add newline at end of file, to avoid include file commenting out following line in includer. *Not* a fix for the bug. modified: mysql-test/extra/rpl_tests/rpl_row_basic.test mysql-test/suite/rpl_ndb/r/rpl_ndb_row_basic.result === modified file 'mysql-test/suite/ndb/r/ndb_mgm.result' --- a/mysql-test/suite/ndb/r/ndb_mgm.result 2012-11-28 16:30:51 +0000 +++ b/mysql-test/suite/ndb/r/ndb_mgm.result 2013-01-10 14:09:20 +0000 @@ -96,6 +96,13 @@ Illegal argument -1 ERROR: Illegal value '-1' in argument to signal. (Value must be between 0 and 0xffffffff.) +Robustness issue with bug#14537622 +Data node must not crash here +Sending dump signal with data: +0x000003e8 0x000003e8 +Sending dump signal with data: +0x000003e8 0x000003e8 + ALL DUMP 1 Sending dump signal with data: 0x00000001 === modified file 'mysql-test/suite/ndb/t/ndb_mgm.test' --- a/mysql-test/suite/ndb/t/ndb_mgm.test 2012-11-29 10:09:07 +0000 +++ b/mysql-test/suite/ndb/t/ndb_mgm.test 2013-01-10 14:15:45 +0000 @@ -159,6 +159,10 @@ echo Illegal argument -1; --error 255 exec $mgm_cmd -e "1 DUMP -1"; +echo Robustness issue with bug#14537622; +echo Data node must not crash here; +exec $mgm_cmd -e "ALL DUMP 1000 1000"; + echo ALL DUMP 1; exec $mgm_cmd -e "ALL DUMP 1 "; === modified file 'scripts/mysqld_safe.sh' --- a/scripts/mysqld_safe.sh 2012-11-23 15:41:48 +0000 +++ b/scripts/mysqld_safe.sh 2013-01-10 14:15:45 +0000 @@ -572,7 +572,7 @@ then log_notice "Logging to '$err_log'." logging=file - if [ ! -e "$err_log" ]; then # if error log already exists, + if [ ! -f "$err_log" ]; then # if error log already exists, touch "$err_log" # we just append. otherwise, chmod "$fmode" "$err_log" # fix the permissions here! fi @@ -788,7 +788,7 @@ do eval_log_error "$cmd" - if [ $want_syslog -eq 0 -a ! -e "$err_log" ]; then + if [ $want_syslog -eq 0 -a ! -f "$err_log" ]; then touch "$err_log" # hypothetical: log was renamed but not chown $user "$err_log" # flushed yet. we'd recreate it with chmod "$fmode" "$err_log" # wrong owner next time we log, so set === modified file 'storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp' --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp 2012-02-23 15:41:31 +0000 +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp 2013-01-10 14:15:45 +0000 @@ -1461,6 +1461,19 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal { // Dump data and index memory to specific ref Uint32 result_ref = signal->theData[1]; + /* Validate ref */ + { + Uint32 node = refToNode(result_ref); + if (node == 0 || + node >= MAX_NODES) + { + ndbout_c("Bad node in ref to DUMP %u : %u %u", + DumpStateOrd::DumpPageMemory, + node, + result_ref); + return; + } + } reportDMUsage(signal, 0, result_ref); reportIMUsage(signal, 0, result_ref); return; No bundle (reason: useless for push emails).