﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
36	"exception: ""ConnectionDone instance has no attribute 'getTraceback'"""	Brian Warner		"Sigh. The problem that broke 0.2.0 (discovered mere minutes after its
release) is still present in 0.2.1. One of the changes in 0.2.0 was to give
more information to pending remote method calls which fail because the
connection is lost: code was added to hand a relevant Failure object to these
calls so their errbacks would see ConnectionDone or ConnectionClosed with a
message like ""duplicate connection closed by remote end"" rather than
something more generic.

The bug is that connectionList is specified to take a Failure instance, but
in certain circumstances a bare Exception is passed in instead. When a bare
exception appears as the argument to errback(), the code which attempts to
extract a stack trace from the exception fails (that's what Failures are
for). I fixed some of these to release 0.2.1; apparently I didn't fix all of
them.

The symptom is an exception that looks like the following:
{{{
        --- <exception caught here> ---
          File ""/usr/lib/python2.4/site-packages/foolscap/eventual.py"", line 26, in _turn
            cb(*args, **kwargs)
          File ""/usr/lib/python2.4/site-packages/foolscap/call.py"", line 77, in fail
            stack = why.getTraceback()
        exceptions.AttributeError: ConnectionDone instance has no attribute 'getTraceback'
}}}

"	defect	closed	critical	0.2.2	negotiation	0.2.1	fixed		
