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

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 10.0.0.Alpha6
    • 8.2.0.Final
    • EJB
    • None

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: