[jira] Commented: (ZOOKEEPER-645) Bug in WriteLock recipe implementation?

2010-09-08 Thread Tim Robertson (JIRA)

[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907331#action_12907331
 ] 

Tim Robertson commented on ZOOKEEPER-645:
-

I have applied the patch but still see that locks generated by subsequent 
clients are not respected by the first client and it is always able to get the 
lock  

> Bug in WriteLock recipe implementation?
> ---
>
> Key: ZOOKEEPER-645
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-645
> Project: Zookeeper
>  Issue Type: Bug
>  Components: recipes
>Affects Versions: 3.2.2
> Environment: 3.2.2 java 1.6.0_12
>Reporter: Jaakko Laine
>Assignee: Mahadev konar
>Priority: Minor
> Fix For: 3.4.0
>
> Attachments: 645-fix-findPrefixInChildren.patch
>
>
> Not sure, but there seem to be two issues in the example WriteLock:
> (1) ZNodeName is sorted according to session ID first, and then according to 
> znode sequence number. This might cause starvation as lower session IDs 
> always get priority. WriteLock is not thread-safe in the first place, so 
> having session ID involved in compare operation does not seem to make sense.
> (2) if findPrefixInChildren finds previous ID, it should add dir in front of 
> the ID

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



[jira] Commented: (ZOOKEEPER-645) Bug in WriteLock recipe implementation?

2010-01-27 Thread Robert Crocombe (JIRA)

[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805736#action_12805736
 ] 

Robert Crocombe commented on ZOOKEEPER-645:
---

I can address point (1) in the original comment: having the session ID breaks 
the lock recipe.  It looks like the session ID was added per:

https://issues.apache.org/jira/browse/ZOOKEEPER-78?focusedCommentId=12615305&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12615305

but the sorting via ZNodeName is worse than starvation: it causes clients with 
low session IDs not to see that clients with higher session IDs have acquired 
the lock which causes the function to return true: so you could theoretically 
have as many lock owners as clients as long as they acquire the lock in 
descending session ID order.

I fixed this in a local branch by replacing ZNodeName with a different class 
that ignores the session ID when sorting.  My test for WriteLockTest became:
{noformat}
/*
* Test that the bug which makes it possible to acquire a lock in two
* different sessions simultaneously is fixed. Bug occurs because 
including
* session ID in node name results in sorting in
* LockZooKeeperOperation.execute() such that low session ID clients do 
not
* see that higher session ID clients already have the lock.
*/
   @Test
   public void testSessionOrderingBugFix() throws Exception {
   // session IDs are presumably assigned in order, but perform 
some checks
   final ZooKeeper zooA = createClient();
   final ZooKeeper zooB = createClient();

   final ZooKeeper lowZoo = zooA.getSessionId() < 
zooB.getSessionId() ? zooA
   : zooB;
   final ZooKeeper highZoo = zooA.getSessionId() < 
zooB.getSessionId() ? zooB
   : zooA;

   final WriteLock highLock = new WriteLock(highZoo, dir, null);
   final WriteLock lowLock = new WriteLock(lowZoo, dir, null);

   boolean highLocked = highLock.lock();
   assertTrue(highLocked);

   // If the bug is present, this attempt to lock will succeed.
   boolean lowLocked = lowLock.lock();
   assertFalse(lowLocked);

   assertTrue(highLock.isOwner());
   assertFalse(lowLock.isOwner());
   }
{noformat}

> Bug in WriteLock recipe implementation?
> ---
>
> Key: ZOOKEEPER-645
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-645
> Project: Zookeeper
>  Issue Type: Bug
>  Components: recipes
>Affects Versions: 3.2.2
> Environment: 3.2.2 java 1.6.0_12
>Reporter: Jaakko Laine
>Assignee: Jaakko Laine
>Priority: Minor
> Fix For: 3.3.0
>
> Attachments: 645-fix-findPrefixInChildren.patch
>
>
> Not sure, but there seem to be two issues in the example WriteLock:
> (1) ZNodeName is sorted according to session ID first, and then according to 
> znode sequence number. This might cause starvation as lower session IDs 
> always get priority. WriteLock is not thread-safe in the first place, so 
> having session ID involved in compare operation does not seem to make sense.
> (2) if findPrefixInChildren finds previous ID, it should add dir in front of 
> the ID

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



[jira] Commented: (ZOOKEEPER-645) Bug in WriteLock recipe implementation?

2010-01-15 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800888#action_12800888
 ] 

Hadoop QA commented on ZOOKEEPER-645:
-

-1 overall.  Here are the results of testing the latest attachment 
  
http://issues.apache.org/jira/secure/attachment/12430357/645-fix-findPrefixInChildren.patch
  against trunk revision 899383.

+1 @author.  The patch does not contain any @author tags.

-1 tests included.  The patch doesn't appear to include any new or modified 
tests.
Please justify why no tests are needed for this patch.

+1 javadoc.  The javadoc tool did not generate any warning messages.

+1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

+1 findbugs.  The patch does not introduce any new Findbugs warnings.

+1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

+1 core tests.  The patch passed core unit tests.

+1 contrib tests.  The patch passed contrib unit tests.

Test results: 
http://hudson.zones.apache.org/hudson/job/Zookeeper-Patch-h8.grid.sp2.yahoo.net/103/testReport/
Findbugs warnings: 
http://hudson.zones.apache.org/hudson/job/Zookeeper-Patch-h8.grid.sp2.yahoo.net/103/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
http://hudson.zones.apache.org/hudson/job/Zookeeper-Patch-h8.grid.sp2.yahoo.net/103/console

This message is automatically generated.

> Bug in WriteLock recipe implementation?
> ---
>
> Key: ZOOKEEPER-645
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-645
> Project: Zookeeper
>  Issue Type: Bug
>  Components: recipes
>Affects Versions: 3.2.2
> Environment: 3.2.2 java 1.6.0_12
>Reporter: Jaakko Laine
>Assignee: Jaakko Laine
>Priority: Minor
> Fix For: 3.3.0
>
> Attachments: 645-fix-findPrefixInChildren.patch
>
>
> Not sure, but there seem to be two issues in the example WriteLock:
> (1) ZNodeName is sorted according to session ID first, and then according to 
> znode sequence number. This might cause starvation as lower session IDs 
> always get priority. WriteLock is not thread-safe in the first place, so 
> having session ID involved in compare operation does not seem to make sense.
> (2) if findPrefixInChildren finds previous ID, it should add dir in front of 
> the ID

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



[jira] Commented: (ZOOKEEPER-645) Bug in WriteLock recipe implementation?

2010-01-15 Thread Mahadev konar (JIRA)

[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800862#action_12800862
 ] 

Mahadev konar commented on ZOOKEEPER-645:
-

sure am doing it right now.

> Bug in WriteLock recipe implementation?
> ---
>
> Key: ZOOKEEPER-645
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-645
> Project: Zookeeper
>  Issue Type: Bug
>  Components: recipes
>Affects Versions: 3.2.2
> Environment: 3.2.2 java 1.6.0_12
>Reporter: Jaakko Laine
>Assignee: Jaakko Laine
>Priority: Minor
> Fix For: 3.3.0
>
> Attachments: 645-fix-findPrefixInChildren.patch
>
>
> Not sure, but there seem to be two issues in the example WriteLock:
> (1) ZNodeName is sorted according to session ID first, and then according to 
> znode sequence number. This might cause starvation as lower session IDs 
> always get priority. WriteLock is not thread-safe in the first place, so 
> having session ID involved in compare operation does not seem to make sense.
> (2) if findPrefixInChildren finds previous ID, it should add dir in front of 
> the ID

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