Uploaded image for project: 'JBoss Messaging'
  1. JBoss Messaging
  2. JBMESSAGING-908

MySQL on Linux fails to load server after failover

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • 1.4.0.CR2
    • None
    • None
    • Workaround Exists
    • Hide

      This work around will resync up your database so that you can continue to work. Problem is that you may loose some messages that have not been processed yet. The only ones you will loose are the ones that are out of sync. But this will get you processing again.

      delete from jbm_msg_ref where message_id not in (select message_id from jbm_msg);
      delete from jbm_msg where message_id not in (select message_id from jbm_msg_ref);

      Show
      This work around will resync up your database so that you can continue to work. Problem is that you may loose some messages that have not been processed yet. The only ones you will loose are the ones that are out of sync. But this will get you processing again. delete from jbm_msg_ref where message_id not in (select message_id from jbm_msg); delete from jbm_msg where message_id not in (select message_id from jbm_msg_ref);

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              timfox_jira Tim Fox (Inactive)
              timfox_jira Tim Fox (Inactive)
              Archiver:
              samahaja@redhat.com Sagar Mahajan

              Dates

                Created:
                Updated:
                Resolved:
                Archived: