Skip to content

Commit

Permalink
Remove redundant logging of read errors in IOStream.
Browse files Browse the repository at this point in the history
The logging in read_from_fd is generally redundant with logging at
higher levels - the error would be logged again in _handle_read,
or propagated from _try_inline_read.

Closes #632.
  • Loading branch information
bdarnell committed Nov 19, 2012
1 parent 1a5b337 commit 26078cd
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
2 changes: 0 additions & 2 deletions tornado/iostream.py
Expand Up @@ -399,8 +399,6 @@ def _read_to_buffer(self):
# be available on self.error for apps that care).
self.close()
return
gen_log.warning("Read error on %d: %s",
self.fileno(), e)
self.close()
raise
if chunk is None:
Expand Down
33 changes: 33 additions & 0 deletions tornado/test/iostream_test.py
Expand Up @@ -390,6 +390,39 @@ def test_close_callback_with_pending_read(self):
server.close()
client.close()

def test_inline_read_error(self):
# An error on an inline read is raised without logging (on the
# assumption that it will eventually be noticed or logged further
# up the stack).
server, client = self.make_iostream_pair()
try:
os.close(server.socket.fileno())
with self.assertRaises(socket.error):
server.read_bytes(1, lambda data: None)
finally:
server.close()
client.close()

def test_async_read_error_logging(self):
# Socket errors on asynchronous reads should be logged (but only
# once).
server, client = self.make_iostream_pair()
server.set_close_callback(self.stop)
try:
# Start a read that will be fullfilled asynchronously.
server.read_bytes(1, lambda data: None)
client.write(b('a'))
# Stub out read_from_fd to make it fail.
def fake_read_from_fd():
os.close(server.socket.fileno())
server.__class__.read_from_fd(server)
server.read_from_fd = fake_read_from_fd
# This log message is from _handle_read (not read_from_fd).
with ExpectLog(gen_log, "error on read"):
self.wait()
finally:
server.close()
client.close()

class TestIOStreamWebHTTP(TestIOStreamWebMixin, AsyncHTTPTestCase):
def _make_client_iostream(self):
Expand Down

0 comments on commit 26078cd

Please sign in to comment.