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

Distributed workmanager does not execute work on other nodes than where the work was scheduled

    Details

    • Target Release:
    • Steps to Reproduce:
      Hide

      I'll attach a quick and dirty reproducer script. It downloads a fork of WFLY that contains a WIP DwmTest and runs it. If the test passes, go into testsuite/integration/basic/target/surefire-reports and have a look at the test logs. The statistics of where the work was scheduled and executed are logged there. If the test fails, rerun it - there are some Infinispan exceptions that I need to investigate.

      I'll also attach an ear containing the resource adapter that makes use of the dwm (the ear has been exported from DwmTest). To set up EAP properly for use with the dwmtest.ear, use:

      batch
      /subsystem=jca/distributed-workmanager=newdwm:add(name=newdwm)
      /subsystem=jca/distributed-workmanager=newdwm/short-running-threads=newdwm:add(queue-length=10,max-threads=10)
      /subsystem=jca/bootstrap-context=customContext1:add(name=customContext1,workmanager=newdwm)
      run-batch
      reload
      
      Show
      I'll attach a quick and dirty reproducer script. It downloads a fork of WFLY that contains a WIP DwmTest and runs it. If the test passes, go into testsuite/integration/basic/target/surefire-reports and have a look at the test logs. The statistics of where the work was scheduled and executed are logged there. If the test fails, rerun it - there are some Infinispan exceptions that I need to investigate. I'll also attach an ear containing the resource adapter that makes use of the dwm (the ear has been exported from DwmTest). To set up EAP properly for use with the dwmtest.ear , use: batch /subsystem=jca/distributed-workmanager=newdwm:add(name=newdwm) /subsystem=jca/distributed-workmanager=newdwm/ short -running-threads=newdwm:add(queue-length=10,max-threads=10) /subsystem=jca/bootstrap-context=customContext1:add(name=customContext1,workmanager=newdwm) run-batch reload

      Description

      Scenario: we have two EAP servers, both of them have a distributed workmanager set up. We try to schedule some work on one of the servers (via scheduleWork() and since we have a policy of ALWAYS, the work should be executed on a node different from the one where it was scheduled. However, it is always executed on the same node.

      This might be related to or even caused by JBEAP-9418.

      I think this is severe enough to warrant a beta blocker label - the DWM can be configured and you can pass work instances to it, but they will never be executed on remote nodes. In effect, policy options other than NEVER do not work. I'm raising the priority to blocker accordingly.

      This also blocks EAP7-495.

        Gliffy Diagrams

          Attachments

          1. dwmtest.ear
            50 kB
            Richard Janik
          2. reproducer.sh
            1.0 kB
            Richard Janik

            Issue Links

              Activity

                People

                • Assignee:
                  maeste Stefano Maestri
                  Reporter:
                  rjanik Richard Janik
                  Tester:
                  Richard Janik
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: