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

A JSF application breaks with TimeoutException: ISPN000299: Unable to acquire lock after 15 seconds

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Major
    • None
    • 7.0.7.GA
    • Clustering, EJB
    • None
    • User Experience
    • Hide

      Replication steps :

      • start EAP 7.0.8 (the latest 7.0.x version) with standalone-ha profile;
      • build the application and deploy the WAR on EAP;
      • point your browser to: http://localhost:8080/jboss-tasks-jsf/prova.jsf
      • click on the button "Call to listener...";
      • the browser will wait for 15 secs, then an error page will be showed.
      Show
      Replication steps : start EAP 7.0.8 (the latest 7.0.x version) with standalone-ha profile; build the application and deploy the WAR on EAP; point your browser to: http://localhost:8080/jboss-tasks-jsf/prova.jsf click on the button "Call to listener..."; the browser will wait for 15 secs, then an error page will be showed.

    Description

      Customer has an application based on JSF and they use stateful EJB as backing beans @Conversation and @SessionScoped.
      they have a JSF phase listener which lookups UserTransaction and:

      • begin the transaction before phase restore view
      • commit/rollback the transaction after the phase invoke application.
        When activate a listener on a backing bean that is a stateful EJB following issue is observed as below:
        ~~~~~~~~
        17:19:24,502 INFO [stdout] (default task-3) Phase listener - phase id: RESTORE_VIEW 1
        17:19:39,509 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (default task-3) ISPN000136: Error executing command GetKeyValueCommand, writing keys []: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 15 seconds for key UnknownSessionID [5469565469705770525353525252565556506951495750565665555168696866] and requestor GlobalTransaction:<plohia>:9:local. Lock is held by GlobalTransaction:<plohia>:6:local
        at org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.lock(DefaultLockManager.java:238)
        at org.infinispan.interceptors.locking.AbstractLockingInterceptor.lockAndRecord(AbstractLockingInterceptor.java:192)
        at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.checkPendingAndLockKey(AbstractTxLockingInterceptor.java:192)
        at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockOrRegisterBackupLock(AbstractTxLockingInterceptor.java:115)
        at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitDataReadCommand(PessimisticLockingInterceptor.java:70)
        at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitGetKeyValueCommand(AbstractLockingInterceptor.java:79)
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
        at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:345)
        at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:330)
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
        at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
        at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
        at org.infinispan.statetransfer.StateTransferInterceptor.visitReadCommand(StateTransferInterceptor.java:176)
        at org.infinispan.statetransfer.StateTransferInterceptor.visitGetKeyValueCommand(StateTransferInterceptor.java:153)
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
        at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
        at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:79)
        at org.infinispan.commands.AbstractVisitor.visitGetKeyValueC
        ~~~~~~~~

      Replication steps :

      • start EAP 7.0.8 (the latest 7.0.x version) with standalone-ha profile;
      • build the application and deploy the WAR on EAP;
      • point your browser to: http://localhost:8080/jboss-tasks-jsf/prova.jsf
      • click on the button "Call to listener...";
      • the browser will wait for 15 secs, then an error page will be showed.

      Note:
      The same application on EAP 7.0.0 (to 7.0.6) works fine. The application breaks in EAP 7.0.7 and 7.0.8.

      Attachments

        Issue Links

          Activity

            People

              rhn-support-iweiss Ingo Weiss
              rhn-support-plohia Pranab Lohia (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: