Recovery log stored in MySQL gets duplicate key errors following update failure
-------------------------------------------------------------------------------
Key: SEQUOIA-1007
URL: https://forge.continuent.org/jira/browse/SEQUOIA-1007
Project: Sequoia
Type: Bug
Components: Recovery Log
Versions: Sequoia 2.10
Environment: Tested on Linux with logs stored in MySQL.
Reporter: Robert Hodges
Priority: Critical
Fix For: sequoia 2.10.11
We have seen a number of cases where recovery logs stored in MySQL get strange
errors as if the connection were being altered or closed. This shows up
intermittently in tests of the commercial product and in Sequoia as well.
Here's a sample:
2007-11-21 07:57:18,284 ERROR sequoia.controller.recoverylog Failed to log
INSERT INTO ITEM
(ITEMID,SELLERID,DESCRIPTION,BID_PRICE,START_TIME,END_TIME,BID_COUNT) VALUES
('ITEM1-679', 'UID1-436',
'wBiLEQDxCgQI2gHf94MVR4Y6UI5TcGzub21yjHAzAfMnRBmanVow6rR1RzE2XorMkfeH4fjzBxHmytS0dIvBkjbdYZVVu4LmYnyr'
,'1560041.4', '2005-10-20', '2005-10-30', '0')
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations
allowed after statement closed.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Statement.checkClosed(Statement.java:380)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1297)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
at
org.continuent.sequoia.controller.recoverylog.events.LogRequestEvent.execute(LogRequestEvent.java:102)
at
org.continuent.sequoia.controller.recoverylog.LoggerThread.run(LoggerThread.java:700)
2007-11-21 07:57:18,399 ERROR sequoia.controller.recoverylog Failed to log
INSERT INTO ITEM
(ITEMID,SELLERID,DESCRIPTION,BID_PRICE,START_TIME,END_TIME,BID_COUNT) VALUES
('ITEM1-679', 'UID1-436',
'wBiLEQDxCgQI2gHf94MVR4Y6UI5TcGzub21yjHAzAfMnRBmanVow6rR1RzE2XorMkfeH4fjzBxHmytS0dIvBkjbdYZVVu4LmYnyr'
,'1560041.4', '2005-10-20', '2005-10-30', '0')
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate
entry '4669' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
at
org.continuent.sequoia.controller.recoverylog.events.LogRequestEvent.execute(LogRequestEvent.java:102)
at
org.continuent.sequoia.controller.recoverylog.LoggerThread.run(LoggerThread.java:700)
2007-11-21 07:57:18,404 ERROR sequoia.controller.recoverylog WARNING! Your
recovery log is probably corrupted, you should perform a restore log operation
2007-11-21 07:57:18,406 ERROR sequoia.controller.recoverylog Logger thread was
unable to log LogRequestEvent: Log entry: log id4669 (A) transactionId:0
requestId:5210 vlogin:user status: E sql:INSERT INTO ITEM
(ITEMID,SELLERID,DESCRIPTION,BID_PRICE,START_TIME,END_TIME,BID_COUNT) VALUES
('ITEM1-679', 'UID1-436',
'wBiLEQDxCgQI2gHf94MVR4Y6UI5TcGzub21yjHAzAfMnRBmanVow6rR1RzE2XorMkfeH4fjzBxHmytS0dIvBkjbdYZVVu4LmYnyr'
,'1560041.4', '2005-10-20', '2005-10-30', '0') params:null because of
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate
entry '4669' for key 1
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate
entry '4669' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
at
org.continuent.sequoia.controller.recoverylog.events.LogRequestEvent.execute(LogRequestEvent.java:102)
at
org.continuent.sequoia.controller.recoverylog.LoggerThread.run(LoggerThread.java:700)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia