[ https://issues.apache.org/jira/browse/THRIFT-1302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bryan Duxbury closed THRIFT-1302. --------------------------------- Resolution: Fixed Fix Version/s: 0.8 Assignee: Dave Watson Committed. > thrift: raise an exception if send() times out in > --------------------------------------------------- > > Key: THRIFT-1302 > URL: https://issues.apache.org/jira/browse/THRIFT-1302 > Project: Thrift > Issue Type: Improvement > Components: C++ - Library > Reporter: Dave Watson > Assignee: Dave Watson > Priority: Minor > Fix For: 0.8 > > Attachments: > 0022-thrift-raise-an-exception-if-send-times-out-in-TSock.patch > > > From 1f76284b5972ab01d6f6ac68f96024a8066a3b59 Mon Sep 17 00:00:00 2001 > From: Adam Simpkins <simpk...@fb.com> > Date: Fri, 16 Apr 2010 17:43:21 +0000 > Subject: [PATCH 22/33] thrift: raise an exception if send() times out in > TSocket::write() > Summary: > Previously, if send() timed out in TSocket::write(), it would sleep for > 50 microseconds and retry. This essentially made the timeout set with > setSendTimeout() useless. Now it raises a TTransportException on > timeout. > TNonblockingServer does use TSocket with the fd manually put in > non-blocking mode, and that could cause EWOULDBLOCK and EAGAIN to occur > during normal operation. However, it only uses write_partial() and > never write(), so it should be safe to have write() throw the exception. > Test Plan: > Used the client and server in thrift/tutorial/cpp/async/sort/ to test > sending a large message to the server. I set a 100ms timeout in the > client, and verified that it correctly times out now if the server > process is stopped. > I also ran [fb unittests] to try and verify that this doesn't negatively > affect any other code. > Revert Plan: > OK > --- > lib/cpp/src/transport/TSocket.cpp | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira