curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip Searle (JIRA)" <>
Subject [jira] [Updated] (CURATOR-308) SimpleDistributedQueue::take() hangs if container nodes are removed
Date Mon, 14 Mar 2016 13:41:33 GMT


Philip Searle updated CURATOR-308:

Attached testcase demonstrating this issue. It creates two threads: one offering ten items
to a queue with a seven second delay between offers; the other takes them with a three second
delay. The ZooKeeper container check interval has been reduced to 1000 milliseconds.

The expected behaviour is for ten items to be offered and taken. The actual behaviour is that
the empty queue container node is removed after the first item is taken off the queue and
the subsequent call to take() blocks forever.

> SimpleDistributedQueue::take() hangs if container nodes are removed
> -------------------------------------------------------------------
>                 Key: CURATOR-308
>                 URL:
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 3.1.0
>         Environment: org.apache.curator:curator-recipes 3.1.0
> org.apache.curator:curator-test 3.1.0
>            Reporter: Philip Searle
>         Attachments:
> SimpleDistributedQueue creates the queue using container nodes if the ZooKeeper instance
supports this feature. If ZooKeeper runs the container node cleanup task while SimpleDistributedQueue::take()
is blocking, the call will not ever return.
> A similar issue occurs when calling poll(), resulting in it delaying until the timeout
has elapsed, even if a queue item was inserted after the container cleanup occurs.

This message was sent by Atlassian JIRA

View raw message