curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shiliang Cao (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CURATOR-318) Threads may return different boolean values when entering same double barrier
Date Wed, 27 Apr 2016 09:29:12 GMT
Shiliang Cao created CURATOR-318:
------------------------------------

             Summary: Threads may return different boolean values when entering same double
barrier
                 Key: CURATOR-318
                 URL: https://issues.apache.org/jira/browse/CURATOR-318
             Project: Apache Curator
          Issue Type: Bug
          Components: Recipes
    Affects Versions: 2.10.0
            Reporter: Shiliang Cao
            Priority: Critical


To my understanding, when all threads are trying enter an barrier, they should all success
or fail, which means their return values should be the same.

But actually they may get different return values in this situation (reproduce steps):
0. Some preparing works such as running a zk server, basic curator connecting codes;
1. Prepare 3 threads: thread1/ thread2/ thread3;
2. Thread1 sleep 20 seconds then enter barrier, thread2 and thread3 try to enter barrier right
now, with timeout value set to 5 seconds;
3. Result: thread2 and thread3 returned false due to timeout as expected, but thread1 (the
sleeping one) just return true, which I think should be false too.

Possible root cause as I observed via zkCli:
When thread1 and thread2 enter methods returned, their path nodes remained, so when thread3
came, it just think other threads are still waiting, so it just created the ready node and
return with true.

If this is not by design, it should be a design defect.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message