James Clampffer created HDFS-10311:
--------------------------------------

             Summary: libhdfs++: DatanodeConnection::Cancel should not delete 
the underlying socket
                 Key: HDFS-10311
                 URL: https://issues.apache.org/jira/browse/HDFS-10311
             Project: Hadoop HDFS
          Issue Type: Sub-task
            Reporter: James Clampffer
            Assignee: James Clampffer


DataNodeConnectionImpl calls reset on the unique_ptr that references the 
underlying asio::tcp::socket.  If this happens after the continuation pipeline 
checks the cancel state but before asio uses the socket it will segfault 
because unique_ptr::reset will explicitly change it's value to nullptr.

Cancel should only call shutdown() and close() on the socket but keep the 
instance of it alive.  The socket can probably also be turned into a member of 
DataNodeConnectionImpl to get rid of the unique pointer and simplify things a 
bit.  



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

Reply via email to