Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Migrated to another ITS
-
EAP 6.0.0
-
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
Attachments
Issue Links
- relates to
-
JBPAPP6-1440 Remote EJB client sometimes does not connect up with the cluster
-
- Closed
-