New submission from R. David Murray <rdmur...@bitdance.com>:

I'm working on a patch that updates smtpd, and when I ran the full test suite I 
got a hang in test_logging.  This means there's a bug in my update, but there 
is also a bug in the logging test.

But see below for another issue I noticed while investigating this, that is the 
real focus of this report.

This traceback occurs before the test hang:

test_basic (test.test_logging.SMTPHandlerTest) ... error: uncaptured python 
exception, closing channel <test.test_logging.TestSMTPChannel connected 
127.0.0.1:54226 at 0xb5773884> (<class 'AttributeError'>:TestSMTPChannel inst)
Traceback (most recent call last):
  File "/home/rdmurray/python/p33/Lib/logging/handlers.py", line 935, in emit
    smtp.sendmail(self.fromaddr, self.toaddrs, msg)
  File "/home/rdmurray/python/p33/Lib/smtplib.py", line 741, in sendmail
    self.ehlo_or_helo_if_needed()
  File "/home/rdmurray/python/p33/Lib/smtplib.py", line 550, in 
ehlo_or_helo_if_needed
    if not (200 <= self.ehlo()[0] <= 299):
  File "/home/rdmurray/python/p33/Lib/smtplib.py", line 417, in ehlo
    (code, msg) = self.getreply()
  File "/home/rdmurray/python/p33/Lib/smtplib.py", line 372, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
Logged from file , line 0

I think the event.wait() in the test should have a timeout; setting it to, say, 
5 lets the tests complete (with a failure) in this situation.

Now the real issue:

Looking at the smtp handler code, I notice that unlike the socket handler it 
doesn't provide any way to set the timeout.  This means it could potentially 
hang forever trying to log an event, which while not related to the above issue 
is something that I think should be fixed.

I've marked this as behavior, since the SMTP connection should probably get a 
reasonable default timeout even in bug fix releases, but in 3.3 you'll probably 
want to make it settable and perhaps shorten the default relative to what you 
use for the maint releases.

----------
components: Library (Lib)
keywords: easy
messages: 155858
nosy: r.david.murray, vinay.sajip
priority: normal
severity: normal
stage: needs patch
status: open
title: logging smtp handler (and test) timeout issue
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14314>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to