[jboss-jira] [JBoss JIRA] (JBNAME-59) HA-JNDI java.rmi.UnmarshallException doesn't failover
Dennis Reed (JIRA)
jira-events at lists.jboss.org
Thu Apr 26 17:03:18 EDT 2012
[ https://issues.jboss.org/browse/JBNAME-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dennis Reed updated JBNAME-59:
------------------------------
Steps to Reproduce:
Use the attached byteman script.
JAVA_OPTS=-javaagent:$BYTEMAN_HOME/lib/byteman.jar=script:/path/to/pauseHARMIServerImplinvoke.btm
(This script just pauses at the right spot to make it easier to trigger the bug.
Without the script, just restart one member of the cluster repeatedly while hitting HA-JNDI until the
timing is just right to trigger it).
>From a standalone client configured with jndi.properties to hit HA-JNDI, run:
InitialContext context = new InitialContext()
context.lookup ( ... );
Stop the server while it's paused.
was:See JBPAPP-6447
> HA-JNDI java.rmi.UnmarshallException doesn't failover
> -----------------------------------------------------
>
> Key: JBNAME-59
> URL: https://issues.jboss.org/browse/JBNAME-59
> Project: JBoss Naming
> Issue Type: Bug
> Components: jnpserver
> Affects Versions: 5.0.3.GA
> Reporter: Dennis Reed
> Assignee: Dennis Reed
>
> During intensive HA-JNDI failover testing (constantly running "new InitialContext().lookup(...)"
> while starting and stopping JBoss instances, sometimes an HA-JNDI lookup just before the server goes down is
> throwing an exception without trying to fail over to the other HA-JNDI instance:
> ...
> Caused by: javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
> java.net.SocketException: Connection reset]
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:863)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710)
> at javax.naming.InitialContext.lookup(InitialContext.java:351)
> at xxx.CustomCode (CustomCode.java:XXX)
> ... 25 more
> Caused by: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
> java.net.SocketException: Connection reset
> at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:203)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
> at org.jboss.ha.framework.server.HARMIServerImpl_Stub.invoke(Unknown Source)
> at org.jboss.ha.framework.interfaces.HARMIClient.invokeRemote(HARMIClient.java:225)
> at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:327)
> at $Proxy4.lookup(Unknown Source)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:750)
> ... 28 more
> Caused by: java.net.SocketException: Connection reset
> at java.net.SocketInputStream.read(SocketInputStream.java:168)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
> at java.io.DataInputStream.readByte(DataInputStream.java:241)
> at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:189)
> ... 34 more
> Also a similar exception:
> Caused by: java.net.SocketException: socket write error: Connection reset by peer.
> at jrockit.net.SocketNativeIO.writeBytesPinned(Native Method)
> at jrockit.net.SocketNativeIO.socketWrite(SocketNativeIO.java:73)
> at java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java)
> at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> at java.net.SocketOutputStream.write(SocketOutputStream.java:137)
> at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
> at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
> at java.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1632)
> at java.io.ObjectOutputStream.flush(ObjectOutputStream.java:667)
> at sun.rmi.transport.StreamRemoteCall.releaseOutputStream(StreamRemoteCall.java:92)
> at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:188)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
> at org.jboss.ha.framework.server.HARMIServerImpl_Stub.invoke(Unknown Source)
> at org.jboss.ha.framework.interfaces.HARMIClient.invokeRemote(HARMIClient.java:225)
> at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:327)
> at $Proxy4.lookup(Unknown Source)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:750)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710)
> at javax.naming.InitialContext.lookup(InitialContext.java:351)
> ...
> Also
> javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
> java.io.EOFException]
> ...
> Root cause is that java.rmi.UnmarshallException is not caught as an exception eligible for failover.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list