[JBoss JIRA] Created: (JBREM-794) LeasePinger.addClient() should not create a new LeaseTimerTask if none currently exists
by Ron Sigal (JIRA)
LeasePinger.addClient() should not create a new LeaseTimerTask if none currently exists
---------------------------------------------------------------------------------------
Key: JBREM-794
URL: http://jira.jboss.com/jira/browse/JBREM-794
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.2.0.SP4, 2.2.1.GA, 2.4.0.Beta1 (Pinto)
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.2.2.GA, 2.4.0.Beta1 (Pinto)
When org.jboss.remoting.LeasePinger.addClient() adds a new org.jboss.remoting.Client with a shorter ping period, it restarts the LeaseTimerTask. However, org.jboss.remoting.MicroRemoteClientInvoker.establishLease() calls LeasePinger.addClient() before it calls LeasePinger.startPing(). LeasePinger incorrectly creates a LeaseTimerTask in addClient() and then creates a second one in startPing().
LeasePinger.addClient() should be changed so that it starts a new LeaseTimerTask only if one already exists.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[JBoss JIRA] Created: (JBREM-784) Use separate maps for control sockets and ordinary sockets in BisocketClientInvoker
by Ron Sigal (JIRA)
Use separate maps for control sockets and ordinary sockets in BisocketClientInvoker
-----------------------------------------------------------------------------------
Key: JBREM-784
URL: http://jira.jboss.com/jira/browse/JBREM-784
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.2.0.SP4, 2.2.1.GA
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.2.1.SP1, 2.2.0.SP4_CP02, 2.4.0.Beta1 (Pinto)
A race condition can cause control sockets and ordinary sockets to be confused with each other. In particular, in some runs of the JBossMessaging test org.jboss.test.messaging.jms.stress.SeveralClientsStressTest, it was observed that a connection that the client side took to be a control connection was used as an ordinary connection by the server side. The result was that org.jboss.remoting.transport.bisocket.BisocketServerInvoker.ControlConnectionThread.run() received unrecognized command.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[JBoss JIRA] Created: (JBREM-782) Remove network i/o from synch block in ServerInvokerCallbackHandler.getCallbackHandler()
by Ron Sigal (JIRA)
Remove network i/o from synch block in ServerInvokerCallbackHandler.getCallbackHandler()
----------------------------------------------------------------------------------------
Key: JBREM-782
URL: http://jira.jboss.com/jira/browse/JBREM-782
Project: JBoss Remoting
Issue Type: Task
Security Level: Public (Everyone can see)
Affects Versions: 2.2.0.SP4, 2.2.1.SP1, 2.2.0.SP4_CP02, 2.4.0.Beta1 (Pinto)
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.2.1.SP1, 2.2.0.SP4_CP02, 2.4.0.Beta1 (Pinto)
org.jboss.remoting.ServerInvoker.getCallbackHandler() has a call to the org.jboss.remoting.callback.ServerInvokerCallbackHandler() constructor inside a synchronization block., ServerInvokerCallbackHandler creates an org.jboss.remoting.Client, which creates a client invoker, and, depending on the transport, the call to Client.connect() might involve network i/o.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[JBoss JIRA] Created: (JBREM-775) MicroSocketClientInvoker.initPool() should omit pool from log message
by Ron Sigal (JIRA)
MicroSocketClientInvoker.initPool() should omit pool from log message
---------------------------------------------------------------------
Key: JBREM-775
URL: http://jira.jboss.com/jira/browse/JBREM-775
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.4.0.Beta1 (Pinto)
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.4.0.Beta1 (Pinto)
Clebert Suconic reports a ConcurrentModificationException:
Producer:3 01:00:42,861 INFO [SeveralClientsStressTest$Producer] Sending Exception
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:617)
at java.util.LinkedList$ListItr.next(LinkedList.java:552)
at java.util.AbstractCollection.toString(AbstractCollection.java:453)
at java.lang.String.valueOf(String.java:2577)
at java.lang.StringBuffer.append(StringBuffer.java:220)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.initPool(MicroSocketClientInvoker.java:715)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.handleConnect(MicroSocketClientInvoker.java:450)
at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.handleConnect(BisocketClientInvoker.java:269)
at org.jboss.remoting.MicroRemoteClientInvoker.connect(MicroRemoteClientInvoker.java:242)
at org.jboss.remoting.ConnectionValidator.start(ConnectionValidator.java:301)
at org.jboss.remoting.ConnectionValidator.addConnectionListener(ConnectionValidator.java:228)
at org.jboss.remoting.Client.addConnectionListener(Client.java:367)
at org.jboss.remoting.Client.addConnectionListener(Client.java:339)
at org.jboss.jms.client.remoting.JMSRemotingConnection.addConnectionListener(JMSRemotingConnection.java:379)
at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:103)
at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect0.invoke(StateCreationAspect0.java)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N3019492359065420858.java)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:205)
at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:87)
at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:82)
at org.jboss.test.messaging.jms.stress.SeveralClientsStressTest$Producer.run(SeveralClientsStressTest.java:324)
thrown in the line
log.debug(this + " using pool (" + pool + ") already defined for " + address);
in org.jboss.remoting.transport.socket.MicroSocketClientInvoker.initPool(). pool is a java.util.LinkedList, and LinkedList.toString() iterates through the list elements. These elements can be shared by multiple client invokers, and apparently another invoker modified the list while the log statement was running.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[JBoss JIRA] Created: (JBREM-774) BisocketClientInvoker.replaceControlSocket() should close previous control socket
by Ron Sigal (JIRA)
BisocketClientInvoker.replaceControlSocket() should close previous control socket
---------------------------------------------------------------------------------
Key: JBREM-774
URL: http://jira.jboss.com/jira/browse/JBREM-774
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.4.0.Beta1 (Pinto)
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.4.0.Beta1 (Pinto)
If cpu overload or network congestion causes a control connection PING to get delayed, the client side org.jboss.remoting.transport.bisocket.Bisocket.BisocketServerInvoker.ControlMonitorTimerTask will tell the server side BisocketServerInvoker.SecondaryServerSocketThread to replace the control socket.
If org.jboss.remoting.transport.bisocket.Bisocket.BisocketClientInvoker.replaceControlSocket() does not close the old control socket, and if the client is still alive, the client side BisocketServerInvoker.ControlConnectionThread will be blocked trying to read from an old control connection, which is no longer in use on the server side.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months