1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

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
This commit is contained in:
unknown
2004-08-02 10:57:09 +02:00
parent 01f1d5e283
commit 2524f9cf73

View File

@ -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);