You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Zhihong Zhang (JIRA)" <ji...@apache.org> on 2015/06/18 23:32:02 UTC

[jira] [Created] (CURATOR-224) Locking Not Working with DistributedIdQueue

Zhihong Zhang created CURATOR-224:
-------------------------------------

             Summary: Locking Not Working with DistributedIdQueue
                 Key: CURATOR-224
                 URL: https://issues.apache.org/jira/browse/CURATOR-224
             Project: Apache Curator
          Issue Type: Bug
          Components: Apache, Framework
    Affects Versions: 2.8.0
         Environment: Windows 7/Java 8
            Reporter: Zhihong Zhang
            Priority: Blocker
             Fix For: awaiting-response


The locking doesn't work with DistributedIdQeue.

    2015-06-18 17:19:47.859  INFO 18244 --- [    TaskCache-0] com.pixia.gi.zookeeper.TaskLockingQueue  : Path cache event: path=/task_queue/queue-|7qb89wjddu|0000000001, type=CHILD_REMOVED
    2015-06-18 17:19:47.864  INFO 18244 --- [    TaskCache-0] com.pixia.gi.zookeeper.TaskLockingQueue  : Path cache event: path=/task_queue/queue-0000000005, type=CHILD_ADDED

When the DistributedQueue does the requeue, it recreates a new node path without the ID. The bug is in following code block,

            if ( requeue )
            {
                client.inTransaction()
                    .delete().forPath(itemPath)
                    .and()
                    .create().withMode(CreateMode.PERSISTENT_SEQUENTIAL).forPath(makeItemPath(), bytes)
                    .and()
                    .commit();
            }

Should replace makeItemPath() with itemPath.




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