[ https://issues.apache.org/jira/browse/THRIFT-2156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13819485#comment-13819485 ]
Jens Geyer edited comment on THRIFT-2156 at 11/11/13 10:08 PM: --------------------------------------------------------------- Hi [~bmeerkoetter], I had some problems applying the patch, it may need a rebasing. Next, I think you missed one occurrence: {code} // retrieve bind info if (port_ == 0 && retries <= retryLimit_) { struct sockaddr sa; socklen_t len = sizeof(sa); std::memset(&sa, 0, len); if (::getsockname(serverSocket_, &sa, &len) < 0) { int errno_copy = errno; GlobalOutput.perror("TServerSocket::getPort() getsockname() ", errno_copy); } else { ... more code ... {code} IMHO the "int" before "errno_copy = errno;" should be removed here as well, otherwise the errno will be forgotten immediately after printing it into the GlobalOutput. Correct? was (Author: jensg): Hi [~bmeerkoetter], I had some problems applying the patch, it may need a rebasing. Next, I think you missed one occurrence: {code} // retrieve bind info if (port_ == 0 && retries <= retryLimit_) { struct sockaddr sa; socklen_t len = sizeof(sa); std::memset(&sa, 0, len); if (::getsockname(serverSocket_, &sa, &len) < 0) { int errno_copy = errno; GlobalOutput.perror("TServerSocket::getPort() getsockname() ", errno_copy); } else { ... more code ... {code} IMHO the {int} should be removed here as well, otherwise the errno will be forgotten immediately after printing it into the GlobalOutput. > TServerSocket::listen() is throwing exceptions with misleading information > -------------------------------------------------------------------------- > > Key: THRIFT-2156 > URL: https://issues.apache.org/jira/browse/THRIFT-2156 > Project: Thrift > Issue Type: Bug > Components: C++ - Library > Affects Versions: 0.9 > Reporter: Frank Meerkoetter > Priority: Minor > Attachments: errno_copy.patch > > > Due to a problem with bind() an exception was thrown. > The text was: > "Could not bind: Transport endpoint is not connected" > which doesn't make sense. > It turned out that errno had been overwritten. > The correct text would have been: > "Could not bind: Address already in use" -- This message was sent by Atlassian JIRA (v6.1#6144)