Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Migrated to another ITS
    • Affects Version/s: EAP 6.0.0
    • Fix Version/s: TBD EAP 6
    • Component/s: Remoting
    • Labels:
      None

      Description

      I was trying to investigate when and why the remote client does not connect up to the cluster. So far I found two cases when the client stops working and which are (I think at least) reproducible.

      In the first case the client stops working without any exception and it was needed to kill the cliend hardly. The output seems like:

      Jun 15, 2012 12:47:06 AM org.xnio.Xnio <clinit>
      INFO: XNIO Version 3.0.4.GA
      Jun 15, 2012 12:47:06 AM org.xnio.nio.NioXnio <clinit>
      INFO: XNIO NIO Implementation Version 3.0.4.GA
      Jun 15, 2012 12:47:06 AM org.jboss.remoting3.EndpointImpl <clinit>
      INFO: JBoss Remoting version 3.2.8.GA
      Jun 15, 2012 12:47:07 AM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
      INFO: EJBCLIENT000017: Received server version 1 and marshalling strategies [river]
      Jun 15, 2012 12:47:07 AM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
      INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@13e58d4, receiver=Remoting connection EJB receiver [connection=Remoting connection <2acc65>,channel=jboss.ejb,nodename=ibm-x365500]} on channel Channel ID e3278064 (outbound) of Remoting connection 00b9e45a to /192.168.56.102:4447
      

      Steps to reproduce:
      1) Run 2 jboss eap CR1 servers on two different machines. The client is on third one. The different machines are important because when I run two jboss servers on just one machine then all works fine.
      (As well it happened to me that this problem occurs during first remote calls to server after the jboss server is started).
      2) Run client that has property file similar to:
      https://github.com/ochaloup/testing/blob/bee1666aa780244112d1a0312c5e2827171f87b6/myejbclient/src/jboss-ejb-client.properties.erroreous
      The important is that the connection that is defined first on line:

      remote.connections=two,one
      

      has to have defined SASL_DISALLOWED_MECHANISM property like:

      remote.connection.one.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS=JBOSS-LOCAL-USER
      

      This is a little strange that this sasl parameter has some influence on remoting client when none of the nodes is on the same machine as the client runs. Because when you remove that line with sasl from the property file than the remote client starts to work without problem.
      This error occurs either when server does have remoting connector authentication switched off or when it's switched on and the passwords have to be used.
      Then when the client is not killed and you want to stop server the server waits for something and is frozen as well. It never finishes in stopping itself. You need to kill the client app and then the server ends.

      Run the client with the second problematic settings ends with:

      Jun 14, 2012 8:29:58 PM org.jboss.ejb.client.EJBClient <clinit>
      INFO: JBoss EJB Client version 1.0.10.Final
      Staying before while cycle
      Jun 14, 2012 8:29:58 PM org.xnio.Xnio <clinit>
      INFO: XNIO Version 3.0.4.GA
      Jun 14, 2012 8:29:58 PM org.xnio.nio.NioXnio <clinit>
      INFO: XNIO NIO Implementation Version 3.0.4.GA
      Jun 14, 2012 8:29:58 PM org.jboss.remoting3.EndpointImpl <clinit>
      INFO: JBoss Remoting version 3.2.8.GA
      Jun 14, 2012 8:30:03 PM org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector setupEJBReceivers
      WARN: Could not register a EJB receiver for connection to 192.168.56.103:4447
      java.lang.RuntimeException: Operation failed with status WAITING
      	at org.jboss.ejb.client.remoting.IoFutureHelper.get(IoFutureHelper.java:93)
      	at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:119)
      	at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.<init>(ConfigBasedEJBClientContextSelector.java:76)
      	at org.jboss.ejb.client.EJBClientContext.<clinit>(EJBClientContext.java:77)
      	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
      	at $Proxy0.sayHello(Unknown Source)
      	at client.Client.main(Client.java:52)
      Jun 14, 2012 8:30:03 PM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
      INFO: EJBCLIENT000017: Received server version 1 and marshalling strategies [river]
      Jun 14, 2012 8:30:03 PM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
      INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1484a05, receiver=Remoting connection EJB receiver [connection=Remoting connection <bad8a8>,channel=jboss.ejb,nodename=server3]} on channel Channel ID a09b6dff (outbound) of Remoting connection 016c163f to /192.168.56.102:4447
      

      and the client is frozen and no action is possible to do with it (similar to the first case).
      Steps to reproduce:
      1) Run two servers on different nodes. I used a command similar to this one:

      ./standalone.sh -c standalone-ha.xml -Djboss.node.name=node-name -Djboss.bind.address=192.168.56.101 -Djboss.bind.address.management=192.168.56.101 -Djboss.bind.address.unsecure=192.168.56.101
      

      client is run on a third machine.
      2) Run remote ejb client with like this:

      https://github.com/ochaloup/testing/blob/bee1666aa780244112d1a0312c5e2827171f87b6/myejbclient/src/jboss-ejb-client.properties.erroreus2
      

      The important is to have an third server defined but this third server does not exit (there is no connection that the client could use for connecting for that server) and plus do not specify the sasl
      property to this third definition. When you define the sasl property then it seems that the connection to the server will be established without problem.

      When you follow the explanation of the steps then I hope it's reproducible. You can use for reproducing my testing app on:
      https://github.com/ochaloup/testing/tree/jndi-properties-variety/myejbclient
      https://github.com/ochaloup/testing/tree/jndi-properties-variety/myejb

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jaikiran Jaikiran Pai
                  Reporter:
                  ochaloup Ondrej Chaloupka
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: