[ https://forge.continuent.org/jira/browse/SEQUOIA-1007?page=comments#action_14159 ]
Stephane Giron commented on SEQUOIA-1007: ----------------------------------------- Just a quick comment... I may be wrong, but I think that this part of the code is mono-threaded, so there should not be any synchronization issue.... I will try to check. > 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
