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

[GSS](7.2.z) WFLY-10150 - EJB race condition can cause client to be in awaitResponse while server is done

    XMLWordPrintable

Details

    • -
    • Hide

      For use case of servlets invoking remote ejbs, specify a max-concurrent-requests filter such that it is about 10 less than the max number of EJB threads on the remote server.

      /profile=client/subsystem=undertow/configuration=filter/request-limit=mylimit:add(max-concurrent-requests=118)
      /profile=client/subsystem=undertow/server=default-server/host=default-host/filter-ref=mylimit:add()
      

      Another workaround is to specify the EJB thread pool size to be greater than the number of max concurrent client requests

      Show
      For use case of servlets invoking remote ejbs, specify a max-concurrent-requests filter such that it is about 10 less than the max number of EJB threads on the remote server. /profile=client/subsystem=undertow/configuration=filter/request-limit=mylimit:add(max-concurrent-requests=118) /profile=client/subsystem=undertow/server= default -server/host= default -host/filter-ref=mylimit:add() Another workaround is to specify the EJB thread pool size to be greater than the number of max concurrent client requests
    • Hide

      Reproducer attached will configure a domain mode with 2 server instances and a jmeter script will provide load.

      unzip -d $JBOSS_HOME/ reproducer-setup.zip
      cd $JBOSS_HOME/
      ./setup.sh .
      ./bin/domain.sh

      Start jmeter and open $JBOSS_HOME/testEJBIssue.jmx
      Click run
      tail -f domain/servers/server/log/server.log
      Once it stops logging, take thread dumps

      Show
      Reproducer attached will configure a domain mode with 2 server instances and a jmeter script will provide load. unzip -d $JBOSS_HOME/ reproducer-setup.zip cd $JBOSS_HOME/ ./setup.sh . ./bin/domain.sh Start jmeter and open $JBOSS_HOME/testEJBIssue.jmx Click run tail -f domain/servers/server/log/server.log Once it stops logging, take thread dumps

    Description

      With a client jboss server1 that has a client servlet that invokes a remote EJB on jboss server2 configured using server to server config in the standalone.xml/domain.xml outbound remoting connection, the client side can get stuck in awaitResponse while the server side has finished processing.

      Attachments

        1. logs.zip
          19 kB
        2. remote-protocol-thread-dumps.tar.xz
          15 kB
        3. reproducer.jar
          17 kB
        4. reproducer.jar
          25 kB
        5. reproducer-setup.zip
          33 kB
        6. run-reproducer.sh
          0.4 kB
        7. setup-remoting.cli
          1 kB
        8. thread-dumps.zip
          117 kB
        9. thread-pid-43020-date-2018-10-20-00-08-0.log
          50 kB

        Issue Links

          Activity

            People

              tadamski@redhat.com Tomasz Adamski
              rhn-support-bmaxwell Brad Maxwell
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: