Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-4844

When Wildfly EJB timer finishes, the transaction is not fully committed.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 10.0.0.Alpha6
    • 8.2.0.Final
    • EJB
    • None
    • Ubuntu and Mac

      When a Singleton EJB timer finishes, if the next run has already started but waiting on the write lock of Singleton EJB, the next run won't see the changes committed by the current run. So I assume when the EJB timers finishes, the transaction is not fully committed, or it's the next run that starts too early.

      Here is a test case that should be able to reproduce the issue we are facing.
      https://github.com/xiaodong-xie/wildfly-singleton-timer

      Here is my analysis of this issue:

      The CMTTxInterceptor is applied before ContainerManagedConcurrencyInterceptor.

      So when waiting for the write lock of EJBReadWriteLock, we've already started the transaction, which IMHO is earlier than necessary.

              sdouglas1@redhat.com Stuart Douglas (Inactive)
              xiexiaodong Xiaodong Xie (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: