So it seems that the error here was that Matthew's ISP was dropping port 25 connections, leading to an eventual timeout.
That said, we shouldn't be printing an exception on timeouts -- a proper error should be generated.
While Matthew was using an old version of bzr-pqm, it looks like the bzrlib.smtp_connection code will also fail to catch this error -- it only converts ECONNREFUSED to a BzrError.
Other error values that could easily be triggered by configuration problems include ETIMEDOT, EHOSTUNREACH and ENETUNREACH.
So it seems that the error here was that Matthew's ISP was dropping port 25 connections, leading to an eventual timeout.
That said, we shouldn't be printing an exception on timeouts -- a proper error should be generated.
While Matthew was using an old version of bzr-pqm, it looks like the bzrlib. smtp_connection code will also fail to catch this error -- it only converts ECONNREFUSED to a BzrError.
Other error values that could easily be triggered by configuration problems include ETIMEDOT, EHOSTUNREACH and ENETUNREACH.