Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-1750

Stuck server when stopped right after started if jdbc store for transaction logs is used

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 7.0.0.DR13 (Alpha)
    • Fix Version/s: 7.0.0.ER3
    • Component/s: Transactions
    • Labels:
      None
    • Target Release:
    • Steps to Reproduce:
      Hide
      1. Configure server to use jdbc object store (you can use the attached configuration)
        1. copy attached standalone-full.xml to $JBOSS_HOME/standalone/configuration
      2. Configure jdbc driver as module - you can use attached jdbc module with oracle driver
        1. cd $JBOSS_HOME
        2. unzip jdbc-module.zip
      3. Start server
        1. ./bin/standalone.sh -c standalone-full.xml
      4. Stop server by pressing CTRL+C immediatelly when you see message: INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: EAP 7.0.0.Alpha1 (WildFly Core 2.0.0.CR8) started in 8432ms - Started 305 of 535 services (331 services are lazy, passive or on-demand)
        1. you need to stop the server during recovery is in process. you can also wait for recovery being run and then stop the server. the period for waiting for recovery could be change from default 2min by adding parameter ./bin/standalone.sh -c standalone-full.xml -Dcom.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod=30
      Show
      Configure server to use jdbc object store (you can use the attached configuration) copy attached standalone-full.xml to $JBOSS_HOME/standalone/configuration Configure jdbc driver as module - you can use attached jdbc module with oracle driver cd $JBOSS_HOME unzip jdbc-module.zip Start server ./bin/standalone.sh -c standalone-full.xml Stop server by pressing CTRL+C immediatelly when you see message: INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: EAP 7.0.0.Alpha1 (WildFly Core 2.0.0.CR8) started in 8432ms - Started 305 of 535 services (331 services are lazy, passive or on-demand) you need to stop the server during recovery is in process. you can also wait for recovery being run and then stop the server. the period for waiting for recovery could be change from default 2min by adding parameter ./bin/standalone.sh -c standalone-full.xml -Dcom.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod=30

      Description

      It happens to me that when using jdbc object store for transactions with driver loaded as a module then if I start server and stopped it right after the start is finished I can see error [1] and server stay stuck. I need to run kill -9 to server finish.

      This seems to be connected with recovery processing. If I start server and not stopping it immediately after it was started then I do not experience this problem.
      But if leave server to run for some time and I decide to stop server at time when periodic recovery is in process (e.g. checking server.log activity by tail -F standalone/log/server.log then I experience the same problem.

      [1]

      WARN  [com.arjuna.ats.arjuna] (Periodic Recovery) ARJUNA012251: allObjUids caught exception: java.lang.IllegalStateException
        at org.jboss.msc.value.InjectedValue.getValue(InjectedValue.java:47)
        at org.jboss.as.naming.service.DefaultNamespaceContextSelectorService$1.getContext(DefaultNamespaceContextSelectorService.java:56)
        at org.jboss.as.naming.InitialContext$DefaultInitialContext.findContext(InitialContext.java:187)
        at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:233)
        at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193)
        at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189)
        at javax.naming.InitialContext.lookup(InitialContext.java:417)
        at javax.naming.InitialContext.lookup(InitialContext.java:417)
        at com.arjuna.ats.internal.arjuna.objectstore.jdbc.accessors.DataSourceJDBCAccess.getConnection(DataSourceJDBCAccess.java:53)
        at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCImple_driver.allObjUids(JDBCImple_driver.java:345)
        at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCStore.allObjUids(JDBCStore.java:166)
        at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCStore.allObjUids(JDBCStore.java:122)
        at com.arjuna.ats.arjuna.objectstore.ObjectStoreIterator.<init>(ObjectStoreIterator.java:53)
        at com.arjuna.ats.internal.jta.recovery.arjunacore.CommitMarkableResourceRecordRecoveryModule.periodicWorkFirstPass(CommitMarkableResourceRecordRecoveryModule.java:390)
        at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:747)
        at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:375)
      
      ERROR [stderr] (Periodic Recovery) Exception in thread "Periodic Recovery" java.lang.NullPointerException
      ERROR [stderr] (Periodic Recovery) 	at com.arjuna.ats.arjuna.recovery.TransactionStatusConnectionManager.getTransactionStatus(TransactionStatusConnectionManager.java:92)
      ERROR [stderr] (Periodic Recovery) 	at com.arjuna.ats.internal.jta.recovery.arjunacore.CommitMarkableResourceRecordRecoveryModule.periodicWorkFirstPass(CommitMarkableResourceRecordRecoveryModule.java:399)
      ERROR [stderr] (Periodic Recovery) 	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:747)
      ERROR [stderr] (Periodic Recovery) 	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:375)
      

        Gliffy Diagrams

          Attachments

          1. JBEAP-1750-with-tom-fix.server.log
            12 kB
          2. JBEAP-1750-with-tom-fix.stack-trace.log
            85 kB
          3. jdbc-module.zip
            3.32 MB
          4. jdbc-store-stuck-server.jstack
            19 kB
          5. server.log
            35 kB
          6. standalone-full.xml
            24 kB

            Issue Links

              Activity

                People

                • Assignee:
                  tomjenkinson Thomas Jenkinson
                  Reporter:
                  ochaloup Ondrej Chaloupka
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: