curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cameron McKenzie (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (CURATOR-344) SharedValue watcher should limit work to valid data change events
Date Wed, 31 Aug 2016 01:03:21 GMT

     [ https://issues.apache.org/jira/browse/CURATOR-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Cameron McKenzie closed CURATOR-344.
------------------------------------

> SharedValue watcher should limit work to valid data change events 
> ------------------------------------------------------------------
>
>                 Key: CURATOR-344
>                 URL: https://issues.apache.org/jira/browse/CURATOR-344
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 3.2.0
>            Reporter: Gary Tully
>             Fix For: 2.11.0, 3.2.1
>
>
> With a RetryNTimes retry policy and a disconnect. The event thread can get blocked on
retries from the SharedValue watcher readValue, blocking other listeners from getting the
SUSPENDED event till retry completes.
> Seems the watcher should limit work and notifications to valid change events and ignore
a disconnect. The ConnectionStateListener already handles those.
> Sample thread stack that blocks other listeners:
> {code}main-EventThread" daemon prio=10 tid=0x00007f95d009f000 nid=0x3429 waiting on condition
[0x00007f959d6d5000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
> 	at java.lang.Thread.sleep(Native Method)
> 	at java.lang.Thread.sleep(Thread.java:340)
> 	at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:360)
> 	at org.apache.curator.RetryLoop$1.sleepFor(RetryLoop.java:74)
> 	at org.apache.curator.retry.SleepingRetry.allowRetry(SleepingRetry.java:46)
> 	at org.apache.curator.retry.RetryNTimes.allowRetry(RetryNTimes.java:24)
> 	at org.apache.curator.RetryLoop.takeException(RetryLoop.java:188)
> 	at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:112)
> 	at org.apache.curator.framework.imps.GetDataBuilderImpl.pathInForeground(GetDataBuilderImpl.java:287)
> 	at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:279)
> 	at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:41)
> 	at org.apache.curator.framework.recipes.shared.SharedValue.readValue(SharedValue.java:192)
> 	- locked <0x000000074326fb50> (a org.apache.curator.framework.recipes.shared.SharedValue)
> 	at org.apache.curator.framework.recipes.shared.SharedValue.access$100(SharedValue.java:42)
> 	at org.apache.curator.framework.recipes.shared.SharedValue$1.process(SharedValue.java:58)
> 	at org.apache.curator.framework.imps.NamespaceWatcher.process(NamespaceWatcher.java:67)
> 	at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
> 	at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505){code}



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

Mime
View raw message