Closed glassfishrobot closed 14 years ago
@glassfishrobot Commented Reported by shreedhar_ganapathy
@glassfishrobot Commented shreedhar_ganapathy said: Fix checked in per CVS check messages : https://shoal.dev.java.net/servlets/ReadMsg?list=cvs&msgNo=631 https://shoal.dev.java.net/servlets/ReadMsg?list=cvs&msgNo=632
getPeerID() now consults a instanceToPeerID hashtable for pre existence of the peer id for a given instanceName token string. If not creates it and adds to hash table. The hash table is cleared during NetworkManager.stop()
@glassfishrobot Commented shreedhar_ganapathy said: Sheetal has already integrated this fix into Shoal branch for Sailfin 0.5 (SGCS 1.0).
@glassfishrobot Commented Was assigned to shreedhar_ganapathy
@glassfishrobot Commented This issue was imported from java.net JIRA SHOAL-70
@glassfishrobot Commented Marked as fixed on Wednesday, June 23rd 2010, 4:11:06 am
When sending messages, the call to GroupCommunicationProviderImpl.sendMessage() with a specified target member token, checks to see if this member continues to exist in the ClusterViewManager's ClusterView. This check is done by getting the memberToken String's corresponding peer id by calling clusterManager.getID(targetMemberIdentityToken)
This results in call to NetworkManager.getPeerID() each time. Multiple calls to NetworkManager.getPeerID() passing in the exact same parameter for instanceName returns a different Jxta UUID over a period of time.
This is a problem in itself as the consistent hashing algorithm is expected to guarantee exact same uuid generation for a given constant seed.
Using Leehui's MultiThreadMessageSender test, it is easy to see this problem as it reports frequently that a target instance is no longer in the group while sending a message as the call has resulted in a new uuid that does not exist in the cluster view manager for that known target member token.
To work around this issue, calls to getPeerID should return a cached PeerID which was originally generated during the first call to establish the Peer in the PeerGroup.
Environment
Operating System: All Platform: Windows
Affected Versions
[current]