[ https://forge.continuent.org/jira/browse/SEQUOIA-910?page=comments#action_13675 ]
Guillaume Smet commented on SEQUOIA-910: ---------------------------------------- Gérard is using ConnectorJ 5.0.4. Driver.connect() effectively always throws a SQLException. The problem is not there. I dig a bit further and it seems that the problem is in getTransactionIsolation() which is used by Sequoia to "ping" the recovery log connection (see RecoveryLog.checkDatabaseConnection()). There's a try but no catch to wrap the eventual exception into a SQLException. The code in mysql-connector-java-5.0.4/src/com/mysql/jdbc/Connection.java looks like: public int getTransactionIsolation() throws SQLException { try { blabla if no valid resultset throws a SQLException } finally { blabla } so if the connection is dead, the ConnectException is not catched. This is obviously wrong so I suppose we should open a bug in MySQL's tracker. Comments? That said, I still think that we should find a way to fix this problem directly in Sequoia. > Undetected recovery log failure causes a major problem in replication > --------------------------------------------------------------------- > > Key: SEQUOIA-910 > URL: https://forge.continuent.org/jira/browse/SEQUOIA-910 > Project: Sequoia > Type: Bug > Components: Core > Versions: Sequoia 3.0 > Reporter: Guillaume Smet > > > This is a followup of the thread > https://forge.continuent.org/pipermail/sequoia/2007-February/004683.html on > sequoia list. > In RecoveryLog.getDatabaseConnection(), Sequoia catches RuntimeException and > SQLException but not others. In the case of RuntimeException and > SQLException, a problem to establish the connection is correctly handled > (inserts in the recovery log are postponed) but not in the case of a > ConnectException for instance. > In the case reported by Gérard Bunel, the MySQL server hosting the recovery > log is shutdown and it throws a java.net.ConnectException. Write queries are > not logged in this recovery log and the failure of the recovery log is not > detected by Sequoia. This leads to a synchronisation problem when restarting > the recovery log and enabling the backend as the recovery logs of both > controllers are not identical. > IMHO we should catch every Exception instead of just SQLException in the last > catch of getDatabaseConnection(). > Thoughts? -- 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 Sequoia@lists.forge.continuent.org https://forge.continuent.org/mailman/listinfo/sequoia