[jboss-jira] [JBoss JIRA] Updated: (JBMESSAGING-908) MySQL on Linux fails to load server after failover
Tim Fox (JIRA)
jira-events at lists.jboss.org
Thu Jul 19 05:51:47 EDT 2007
[ http://jira.jboss.com/jira/browse/JBMESSAGING-908?page=all ]
Tim Fox updated JBMESSAGING-908:
--------------------------------
Fix Version/s: 1.4.0.CR2
(was: 1.4.0.CR1)
Priority: Major (was: Critical)
As well as adding a FK constraint in the db config we need to make sure the message table appeara before the message ref table in the default ddl in JDBCPersistenceManager and that the insert/delete order is correct in JDBCPersistenceManager - this is non trivial.
Especially tricky for 2PC. We should also consider removing the storage of channel count in the database. Remember the only time a single message is referenced more than once is with a topic - we never share between nodes so storing in memory should be ok.
> MySQL on Linux fails to load server after failover
> --------------------------------------------------
>
> Key: JBMESSAGING-908
> URL: http://jira.jboss.com/jira/browse/JBMESSAGING-908
> Project: JBoss Messaging
> Issue Type: Bug
> Reporter: Tim Fox
> Assigned To: Tim Fox
> Fix For: 1.4.0.CR2
>
>
> Sometimes, after failover occurs and a server is restarted, the server start fails with:
> java.lang.IllegalStateException: Did not load correct number of messages, wanted:1 but got:0
> at org.jboss.messaging.core.PagingChannelSupport.processReferences(PagingChannelSupport.java:591)
> at org.jboss.messaging.core.PagingChannelSupport.doLoad(PagingChannelSupport.java:518)
> at org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue.mergeIn(LocalClusteredQueue.java:243)
> at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.performFailover(DefaultClusteredPostOffice.java:2169)
> at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.nodeLeft(DefaultClusteredPostOffice.java:2031)
> at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice.access$1800(DefaultClusteredPostOffice.java:98)
> at org.jboss.messaging.core.plugin.postoffice.cluster.DefaultClusteredPostOffice$HandleViewAcceptedRunnable.run(DefaultClusteredPostOffice.java:2400)
> at EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(QueuedExecutor.java:89)
> at java.lang.Thread.run(Thread.java:595
> or similar.
> Analysing logs it seems this is because when the server crashed previously it did so and partially committed a transaction, i.e inserted the ref but not the message.
> My suspicion is that this is because the MySQL configuration being used is setup to use the non transaction myISAAM storage which has no transaction support. But this needs to be verified.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list