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

EJB race condition can cause client to be in awaitResponse while server is done

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • EJB
    • 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
    • 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

      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.

              tadamski@redhat.com Tomasz Adamski
              rhn-engineering-lgao Lin Gao
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

                Created:
                Updated:
                Resolved: