Issue 31323: test_ssl: reference cycle between ThreadedEchoServer and its ConnectionHandler (original) (raw)

While testing bpo-31234 fix, I noticed that some test_ssl tests using ThreadedEchoServer create reference cycles with ConnectionHandler: ConnectionHandler fills ThreadedEchoServer.conn_errors with exceptions, but exceptions keep an alive traceback object which contains frame locals.

I tried to use traceback.clear_frames(), but this function is broken: see bpo-31321.

Attached PR works around the issue by storing errors are text rather than objects.

The PR prevents warnings about dangling threads.