diff options
author | unknown <tomas@whalegate.ndb.mysql.com> | 2007-03-23 17:07:33 +0100 |
---|---|---|
committer | unknown <tomas@whalegate.ndb.mysql.com> | 2007-03-23 17:07:33 +0100 |
commit | 140436564340841a8249cddfb8955004d90973c8 (patch) | |
tree | 0c9c80d79f98a808ff62d12a8d8c0614b8deff19 /ndb | |
parent | a80c9cced4c9f8201182aeae3f295dd90029a48e (diff) | |
download | mariadb-git-140436564340841a8249cddfb8955004d90973c8.tar.gz |
Bug #25275 SINGLE USER MODE prevents ALTER on non-ndb tables for other mysqld nodes
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
abort on timeout if in single user mode
Diffstat (limited to 'ndb')
-rw-r--r-- | ndb/src/kernel/blocks/dbtc/DbtcMain.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp index 61f25141907..b6496018b80 100644 --- a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +++ b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp @@ -6246,6 +6246,7 @@ void Dbtc::timeOutLoopStartLab(Signal* signal, Uint32 api_con_ptr) Uint32 api_timer= getApiConTimer(api_con_ptr); jam(); if (api_timer != 0) { + Uint32 error= ZTIME_OUT_ERROR; time_out_value= time_out_param + (api_con_ptr & mask_value); if (unlikely(old_mask_value)) // abort during single user mode { @@ -6259,12 +6260,16 @@ void Dbtc::timeOutLoopStartLab(Signal* signal, Uint32 api_con_ptr) time_out_value= old_time_out_param + (api_con_ptr & old_mask_value); } + else + { + error= ZCLUSTER_IN_SINGLEUSER_MODE; + } } time_passed= tc_timer - api_timer; if (time_passed > time_out_value) { jam(); - timeOutFoundLab(signal, api_con_ptr, ZTIME_OUT_ERROR); + timeOutFoundLab(signal, api_con_ptr, error); api_con_ptr++; break; } @@ -6304,7 +6309,8 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) << " code: " << errCode); switch (apiConnectptr.p->apiConnectstate) { case CS_STARTED: - if(apiConnectptr.p->lqhkeyreqrec == apiConnectptr.p->lqhkeyconfrec){ + if(apiConnectptr.p->lqhkeyreqrec == apiConnectptr.p->lqhkeyconfrec && + errCode != ZCLUSTER_IN_SINGLEUSER_MODE){ jam(); /* We are waiting for application to continue the transaction. In this |