Bug #11607 | error 4350 on deletion | ||
---|---|---|---|
Submitted: | 28 Jun 2005 9:59 | Modified: | 8 Sep 2005 8:26 |
Reporter: | Arnd Kohlen | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S1 (Critical) |
Version: | Ver 14.11 Distrib 5.0.7-beta | OS: | Linux (Linux) |
Assigned to: | Stewart Smith | CPU Architecture: | Any |
[28 Jun 2005 9:59]
Arnd Kohlen
[12 Jul 2005 8:46]
Jonas Oreland
Please perform a "show warnings" when you get the error. There is most likely some other error occuring before 4350 /Jonas
[13 Jul 2005 15:19]
Arnd Kohlen
mysql> delete from t1; ERROR 1296: Got error 4350 'Transaction already aborted' from ndbcluster mysql> show warnings; +-------+------+--------------------------------------------------------------+ | Level | Code | Message | +-------+------+--------------------------------------------------------------+ | Error | 1296 | Got error 4350 'Transaction already aborted' from NDB | | Error | 1296 | Got error 4350 'Transaction already aborted' from ndbcluster | | Error | 1296 | Got error 4350 'Transaction already aborted' from NDB | +-------+------+--------------------------------------------------------------+ 3 rows in set (0.00 sec)
[22 Aug 2005 6:35]
Stewart Smith
On 5.0.12 bk Using this script to fill up the table: use DBI; $database= test; $user= 'root'; $password = ''; my $dsn = "DBI:mysql:database=$database;host=127.0.0.1;port=9306"; $dbh= DBI->connect($dsn, $user, $password); $sql= "insert into t1 values "; $sql.= "(NULL,'testnux1','192.168.201.178',unix_timestamp())," foreach(1..50); $sql.= "(NULL,'testnux1','192.168.201.178',unix_timestamp())"; $sth= $dbh->prepare($sql); $sth->execute foreach(1..10000);
[22 Aug 2005 6:39]
Stewart Smith
ndb_1_out.log: Dbdict: name=sys/def/SYSTAB_0,id=0 Dbdict: name=sys/def/NDB$EVENTS_0,id=1 Dbdict: name=test/def/t1,id=2 Dbdict: name=test/def/NDB$BLOB_2_3,id=3 Dbdict: name=test/def/2/PRIMARY,id=4 DBTC: [ H'0x00006c37 H'0x00100400] Time-out in state = CS_STARTED apiConnectptr.i = 33 - exec: 0 - place: 3808 -- Dbtc::printState -- Received from place = 7 apiConnectptr.i = 34 apiConnectstate = CS_STARTED ctcTimer = 108107 ndbapiBlockref = 0x80020004 Transid = 0x00008af9 0x00200400 apiTimer = 108107 counter = 0 lqhkeyconfrec = 12054 lqhkeyreqrec = 12055 abortState = 0 apiScanRec = 0 returncode = 0 tckeyrec = 0 returnsignal = 1 apiFailState = 0 DBLQH: transactionState = 21 DBLQH: scanState = 10 ndb_2_out.log: Dbdict: name=sys/def/SYSTAB_0,id=0 Dbdict: name=sys/def/NDB$EVENTS_0,id=1 Dbdict: name=test/def/t1,id=2 Dbdict: name=test/def/NDB$BLOB_2_3,id=3 Dbdict: name=test/def/2/PRIMARY,id=4 DBLQH: transactionState = 21 DBLQH: scanState = 10
[24 Aug 2005 7:21]
Stewart Smith
This only hides the "real" error if the error is received on a blob (in this case a text column). If we drop the text column, we get the correct error. mysql> alter table t1 drop column value3; Query OK, 17901 rows affected (1 min 8.59 sec) Records: 17901 Duplicates: 0 Warnings: 0 mysql> delete from t1 where value1='testnux1'; ERROR 1297 (HY000): Got temporary error 1217 'Out of operation records in local data manager (increase MaxNoOfLocalOperations)' from ndbcluster research into the problem: The signal: ---- Received - Signal ---------------- r.bn: 32769 "API", r.proc: 4, r.sigId: -1 gsn: 16 "TCROLLBACKREP" prio: 1 s.bn: 245 "DBTC", s.proc: 2, s.sigId: 781096 length: 4 trace: 1 #sec: 0 fragInf: 0 H'00000000 H'00000011 H'00100400 H'000000e9 sets theError in NdbTransaction::receiveTCROLLBACKREP( NdbApiSignal* aSignal) (NdbTransaction.cpp:1620) This is the correct error number (233 - out of operation records). It later is reset in NdbTransaction::executeAsynchPrepare /** * Reset error.code on execute */ if (theError.code != 0) DBUG_PRINT("enter", ("Resetting error %d on execute", theError.code)); theError.code = 0; From NdbTransaction::execute: /* * execute prepared ops in batches, as requested by blobs * - blob error does not terminate execution So we just need to propagate the real error.
[25 Aug 2005 6:12]
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/internals/28802
[25 Aug 2005 8:00]
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/internals/28808
[2 Sep 2005 9:10]
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/internals/29227
[8 Sep 2005 5:52]
Stewart Smith
Pushed to 5.0.13 and 4.1.15
[8 Sep 2005 8:26]
Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html Additional info: Bugfix documented for 4.1.15 and 5.0.13. Closed.