Commit 24ee9709 authored by joreland@mysql.com's avatar joreland@mysql.com

Fix testOIBasic

1) Close transaction whenever Con goes out of scope so that it don't leave open
   transactions in TC
2) Close transaction when starting a transaction wo/ closing first
3) Allow 499 as deadlock
4) Don't use buddy as: 1) no need 2) harder to read signal log
parent c95ef332
......@@ -624,6 +624,11 @@ struct Con {
Con() :
m_ndb(0), m_dic(0), m_tx(0), m_op(0),
m_scanop(0), m_indexscanop(0), m_resultset(0), m_scanmode(ScanNo), m_errtype(ErrNone) {}
~Con(){
if(m_tx) closeTransaction();
}
int connect();
void disconnect();
int startTransaction();
......@@ -674,7 +679,8 @@ Con::disconnect()
int
Con::startTransaction()
{
assert(m_ndb != 0 && m_tx == 0);
assert(m_ndb != 0);
if(m_tx) closeTransaction();
CHKCON((m_tx = m_ndb->startTransaction()) != 0, *this);
return 0;
}
......@@ -824,7 +830,7 @@ Con::printerror(NdbOut& out)
if (m_tx) {
if ((code = m_tx->getNdbError().code) != 0) {
LL0(++any << " con: error " << m_tx->getNdbError());
if (code == 266 || code == 274 || code == 296 || code == 297)
if (code == 266 || code == 274 || code == 296 || code == 297 || code == 499)
m_errtype = ErrDeadlock;
}
if (m_op && m_op->getNdbError().code != 0) {
......@@ -2295,7 +2301,7 @@ scanupdatetable(Par par)
// updating trans
Con con2;
con2.m_ndb = con.m_ndb;
CHK(con2.startBuddyTransaction(con) == 0);
CHK(con2.startTransaction(con) == 0);
while (1) {
int ret;
CHK((ret = con.nextScanResult()) == 0 || ret == 1);
......@@ -2341,7 +2347,7 @@ scanupdateindex(Par par, const ITab& itab, const BSet& bset)
// updating trans
Con con2;
con2.m_ndb = con.m_ndb;
CHK(con2.startBuddyTransaction(con) == 0);
CHK(con2.startTransaction(con) == 0);
while (1) {
int ret;
CHK((ret = con.nextScanResult()) == 0 || ret == 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment