You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Jim Hurley (JIRA)" <ji...@apache.org> on 2007/07/27 23:40:53 UTC
[jira] Created: (RIVER-140) JoinManager synchronization strategy
should be reviewed, documented, and fixed where appropriate
JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate
------------------------------------------------------------------------------------------------
Key: RIVER-140
URL: https://issues.apache.org/jira/browse/RIVER-140
Project: River
Issue Type: Improvement
Components: net_jini_lookup
Affects Versions: jtsk_2.1
Reporter: Jim Hurley
Priority: Minor
Bugtraq ID [6219134|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219134]
To help avoid possible race conditions or even deadlock, the synchronization
strategy employed by the JoinManager should be reviewed and documented.
Having some idea of how the threads and tasks interact, and how (and
why) access to shared data is controlled, should help with future
maintenance of JoinManager.
Synchronization-related bugs discovered while addressing this bug should
be filed and addressed separately.
See the comments section for a list of the objects on which the JoinManager
currently synchronizes.
Comments
All objects on which JoinManager synchronizes:
Object Scope of Object
------------------ -----------------------------------------------------
ProxyReg.taskList each proxyReg stored in joinSet has its own taskList
joinSet JoinManager
JoinManager (this) JoinManager
taskMgr JoinManager and taskMgr (and wakeupMgr?)
wakeupMgr JoinManager and wakeupMgr
ProxyReg.this each proxyReg stored in joinSet has its own taskList
ProxyReg.fail() syncs on 'this'. Not sure if this is right. Should file a
bug to investigate it.
Also, may be able to simplify things by syncing on joinSet in the places
where JoinManager itself is sync'd on (which is done only when trying to
determine if the JoinManager has been terminated).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (RIVER-140) JoinManager synchronization strategy
should be reviewed, documented, and fixed where appropriate
Posted by "Jim Hurley (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/RIVER-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516104 ]
Jim Hurley commented on RIVER-140:
----------------------------------
Suggested Fix
Just after the class declaration of the JoinManager, is an "Implementation Note". This might be a candidate location for a description of theJoinManager's synchronization strategy.
> JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate
> ------------------------------------------------------------------------------------------------
>
> Key: RIVER-140
> URL: https://issues.apache.org/jira/browse/RIVER-140
> Project: River
> Issue Type: Improvement
> Components: net_jini_lookup
> Affects Versions: jtsk_2.1
> Reporter: Jim Hurley
> Priority: Minor
>
> Bugtraq ID [6219134|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219134]
> To help avoid possible race conditions or even deadlock, the synchronization
> strategy employed by the JoinManager should be reviewed and documented.
> Having some idea of how the threads and tasks interact, and how (and
> why) access to shared data is controlled, should help with future
> maintenance of JoinManager.
> Synchronization-related bugs discovered while addressing this bug should
> be filed and addressed separately.
> See the comments section for a list of the objects on which the JoinManager
> currently synchronizes.
> Comments
> All objects on which JoinManager synchronizes:
> Object Scope of Object
> ------------------ -----------------------------------------------------
> ProxyReg.taskList each proxyReg stored in joinSet has its own taskList
> joinSet JoinManager
> JoinManager (this) JoinManager
> taskMgr JoinManager and taskMgr (and wakeupMgr?)
> wakeupMgr JoinManager and wakeupMgr
> ProxyReg.this each proxyReg stored in joinSet has its own taskList
> ProxyReg.fail() syncs on 'this'. Not sure if this is right. Should file a
> bug to investigate it.
> Also, may be able to simplify things by syncing on joinSet in the places
> where JoinManager itself is sync'd on (which is done only when trying to
> determine if the JoinManager has been terminated).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.