You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "John McClain (JIRA)" <ji...@apache.org> on 2007/07/27 22:15:53 UTC

[jira] Created: (RIVER-134) Norm expiration warning delivery can block on changes to another set

Norm expiration warning delivery can block on changes to another set
--------------------------------------------------------------------

                 Key: RIVER-134
                 URL: https://issues.apache.org/jira/browse/RIVER-134
             Project: River
          Issue Type: Improvement
          Components: com_sun_jini_norm
    Affects Versions: jtsk_2.0
            Reporter: John McClain
            Priority: Trivial


Bugtraq ID [4850666|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4850666] 

Norm's mechanism for delivering expiration warnings grabs the lock on
the lease set in question before queuing the warning for delivery.  The
locking is performed to insure that the set still exists before queuing
the event.  Since warning events are queued in a single thread, the
queuing process will block for all sets if the current set lock is held
for another operation, which includes operations that write changes to
the set to disk.  Norm would have better throughput if it instead queued
warning events without locking the sets, allowing the queuing to proceed
without blocking.  Note that the event delivery mechanism already checks
if the set still exists at the point it attempts to deliver the event.

Suggested Fix: 

Modify {{LeaseExpirationMgr.SendWarning.run}} to not synchronize on the
set or check that the set still exists.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.