Paweł Janicki created THRIFT-3226: ------------------------------------- Summary: Fix TNamedPipeServer trapped in loop on accept Key: THRIFT-3226 URL: https://issues.apache.org/jira/browse/THRIFT-3226 Project: Thrift Issue Type: Bug Reporter: Paweł Janicki Priority: Critical
TNamedPipeServer can trap itself in infinite loop if the client closed Pipe before server instantiated TPipe object in NamedPipeServer::acceptImpl(). The accept loop waits for connected client on GetOverlappedResult(Pipe_.h , ..) then wraps the connected pipe client hande into TPipe object, opens another pipe handle to wait for next client nd returns the newly created pipe object. TPipe object may throw on c-tor. If so the new pipe instance for next client will not be created. If accept is called with no inital valid pipe handle it throws and restarts. It happens then forever with no possiblity to interrupt. To solve the issue, the case when TPipe throws should be handled. The failed connection should be dropped and new pipe created and wait for next client repeated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)