[jboss-user] [Remoting] - Re: Race condition in ConnectionValidator

ron.sigal@jboss.com do-not-reply at jboss.com
Fri Apr 17 03:41:15 EDT 2009


Hi Tarek,

"thammoud" wrote : 
  | anonymous wrote : 
  |   | Make the tt (WaitOnConnectionCheckTimerTask) a class member (Must be volatile).
  |   | 
  | 
  | Did not mean a static. Sorry for the confusion.
  | 

My mistake.  Maybe I was thinking in C++?  :)

I think I can explain your first scenario, with the exception that I'm not sure I understand the timing of the stopping and restarting of the server.  I'm assuming that the sequence is:

1. ConnectionValidator pings successfully
2. Server goes down
3. Server comes back
4. ConnectionValidator pings successfully

and then JBossMessaging fails.

The ConnectionValidator was intended to detect that a connection exists to a server at a certain InvokerLocator.  It doesn't detect that the server that it pinged last time is the same as the one it pings this time.  So it's getting a "happy ping" at step 4.  But JBossMessaging isn't happy because the new server doesn't have the same state as the old server.

I think the solution is to turn the happy ping into an unhappy ping.  For example, the server could return its unique identity and the ConnectionValidator could compare to the previous result.

If, in fact, I'm interpreting your scenario correctly, then I'll create a JIRA issue for it.

-Ron

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226093#4226093

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226093



More information about the jboss-user mailing list