[ 
https://issues.apache.org/jira/browse/HDFS-11436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16410459#comment-16410459
 ] 

Hudson commented on HDFS-11436:
-------------------------------

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #13869 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/13869/])
HDFS-11436: libhdfs++: Fix race condition in ScopedResolver.  (james.clampffer: 
rev 606d20c6c0678be0cc7d0163defceacd1ffe03ae)
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc


> libhdfs++: Fix race condition in ScopedResolver
> -----------------------------------------------
>
>                 Key: HDFS-11436
>                 URL: https://issues.apache.org/jira/browse/HDFS-11436
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: hdfs-client
>            Reporter: James Clampffer
>            Assignee: James Clampffer
>            Priority: Major
>         Attachments: HDFS-11436.HDFS-8707.000.patch
>
>
> ScopedResolver holds a shared_ptr to a std::promise to do async stuff while 
> the calling thread blocks.  The spec allows promise::set_value to unblock 
> future::wait immediately which causes future::get_value to race to read 
> whatever the promise contains before the state and value owned by the promise 
> is destroyed.  In this case even though the ScopedResolver holds a shared_ptr 
> to the promise which looks like it'd prevent this but it's possible for wait 
> to unblock fast enough for the destructor on ScopedResolver to be called 
> which ends up destroying the promise.  GCC's implementation of promises and 
> futures will hit this and will show up in valgrind as a bunch of invalid 
> reads if the timings are right to set up the race. 
> Simple fix right now is make sure the callback captures a shared_ptr to the 
> promise.  Longer term fix may be to make a class that encapsulates the 
> promise and future with a reference counting mechanism to prevent more of 
> these bugs and use that instead of the std lib versions.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to