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

[GSS](7.1.z) EJB client gets stuck in awaitResponse or AbstractHandleableCloseable when server is disconnected from network

XMLWordPrintable

    • The testcase using the wildfly-config.xml of https://issues.jboss.org/browse/JBEAP-13911 succeeds on Jenkins.
    • Workaround Exists
    • Hide

      Set timeouts and heartbeat via wildfly-config.xml:

      <configuration>
          <endpoint xmlns="urn:jboss-remoting:5.0">
              <connections>
                  <connection destination="remote+http://localhost:8080" read-timeout="11000" write-timeout="11000"
                              heartbeat-interval="1000"/>
              </connections>
          </endpoint>
      </configuration>
      
      Show
      Set timeouts and heartbeat via wildfly-config.xml: <configuration> <endpoint xmlns= "urn:jboss-remoting:5.0" > <connections> <connection destination= "remote+http: //localhost:8080" read-timeout= "11000" write-timeout= "11000" heartbeat-interval= "1000" /> </connections> </endpoint> </configuration>
    • Hide

      use a standalone client to connect an EJB
      let the EJB take a bit time
      cut the network or power connection of this server

      Show
      use a standalone client to connect an EJB let the EJB take a bit time cut the network or power connection of this server

      A client will be blocked if a network connection to the server is broken or the server machine has power loss.
      The time until the client can continue seems the network timeout.

      org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:413)

      This is normally avoided by set
      connect.options.org.xnio.Options.READ_TIMEOUT
      connect.options.org.xnio.Options.KEEP_ALIVE"
      connect.options.org.jboss.remoting3.RemotingOptions.HEARTBEAT_INTERVAL

      But the properties don't make a difference for EAP7 client.

      if the property invocation.timeout is set the invocation failed and the client might continue if there are more servers or a cluster view.
      But it will stuck on exit if the connection should be closed at org.jboss.remoting3.spi.AbstractHandleableCloseable.close(AbstractHandleableCloseable.java:190)

      This is the same even if the server connector has changed from http-remoting to remoting.

      If the client use the EAP6.4.14 jboss-client.jar the properties take effect and the client will fail imediately - for sure the server use the old connector protocol -

      this will be a huge drawback in failover scenarios

            dlloyd@redhat.com David Lloyd
            rhn-support-bmaxwell Brad Maxwell
            Jan Martiska Jan Martiska
            Jan Martiska Jan Martiska
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: