Uploaded image for project: 'River (Retired)'
  1. River (Retired)
  2. RIVER-140

JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • jtsk_2.1
    • River_3.0.0
    • net_jini_lookup
    • None
    • 6219134

    Description

      Bugtraq 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).

      Attachments

        Activity

          People

            Unassigned Unassigned
            jhurley Jim Hurley
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: