> On March 3, 2017, 1:20 a.m., Vadim Spector wrote:
> > sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/CounterWait.java
> > Lines 137 (patched)
> > <https://reviews.apache.org/r/57219/diff/4/?file=1653227#file1653227line137>
> >
> >     Hmm ... imagine the following sequence:
> >     
> >     1. Threads 1 and 2 concurrently call waitFor() with the same value, and 
> > both call waiters.put(eid).
> >     
> >     2. Thread 1 checks that the currentId is still less than the value, and 
> > proceeds to eid.waitFor().
> >     
> >     3. Update thread calls update(), increments currentId but does not yet 
> > call wakeup(newValue).
> >      
> >     4. Thread 2 checks currentId to be equal or greater than the value, and 
> > proceeds with waiters.remove(eid). Since ValueEvent.equals() is based on 
> > the value, not object identity, it may remove the wrong ValueEvent object 
> > added by thread 1.
> >     
> >     5. Update thread calls wakeup() but the ValueEvent object of thread 1 
> > is not in the queue.
> >     
> >     6. Thread 1 blocks on eid.waitFor() forever.
> >     
> >     Am I missing something?

I see what you mean, that's a good point - let me check this.


- Alexander


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57219/#review167778
-----------------------------------------------------------


On March 2, 2017, 5:26 a.m., Alexander Kolbasov wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57219/
> -----------------------------------------------------------
> 
> (Updated March 2, 2017, 5:26 a.m.)
> 
> 
> Review request for sentry, Misha Dmitriev, Lei Xu, Hao Hao, kalyan kumar 
> kalvagadda, Mat Crocker, Vamsee Yarlagadda, and Vadim Spector.
> 
> 
> Bugs: SENTRY-1601
>     https://issues.apache.org/jira/browse/SENTRY-1601
> 
> 
> Repository: sentry
> 
> 
> Description
> -------
> 
> SENTRY-1601 Implement HMS Notification barrier on the server side
> 
> 
> Diffs
> -----
> 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
>  b9272bc80ea473685b90f6c30dc8e0b0dff7b9a9 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryMetrics.java
>  3f7542c2b7bfacc99b5a2bed14f841d5ec89f6e1 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
>  30e91ae05af5350ea30f08e099d73feac94c120a 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/CounterWait.java
>  PRE-CREATION 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/HMSFollower.java
>  bdbb0cc3ff639bf2e5c3725e6ebf1cc641c01374 
>   
> sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/service/thrift/TestCounterWait.java
>  PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/57219/diff/4/
> 
> 
> Testing
> -------
> 
> The new CounterWait class has a unit test. End to end functionality will be 
> tested once HMS part is implemented.
> 
> 
> Thanks,
> 
> Alexander Kolbasov
> 
>

Reply via email to