Aleksandr Efimov has uploaded this change for review. ( http://gerrit.cloudera.org:8080/25016
Change subject: [net] preserve errno from failed recv() ...................................................................... [net] preserve errno from failed recv() Socket::Recv() calls GetPeerAddress() before saving errno. If the peer lookup also fails, it can replace the original receive error with its own error, such as ENOTCONN. Save errno before the peer lookup. Add a regression test that makes GetPeerAddress() overwrite errno and verifies that Recv() returns the original EAGAIN. The EOF path continues to report ESHUTDOWN. Testing: socket-test, all 7 tests pass. The new regression test fails with ENOTCONN instead of EAGAIN before the fix. Change-Id: I9196b35ee15d2111379a5a504745e83c831b640b --- M src/kudu/util/net/socket-test.cc M src/kudu/util/net/socket.cc 2 files changed, 29 insertions(+), 1 deletion(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/16/25016/1 -- To view, visit http://gerrit.cloudera.org:8080/25016 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9196b35ee15d2111379a5a504745e83c831b640b Gerrit-Change-Number: 25016 Gerrit-PatchSet: 1 Gerrit-Owner: Aleksandr Efimov <[email protected]>
