I'm a bit mysterified by this. Failed tests do seem to be reproducible (in debci) with this package pinned, but I can't work out how the traceback shown actually stems from jupyter_client.
This version is meant to already include compatibility fixes (https://github.com/dask/distributed/pull/5286) for jupyter_client 7. I'm wondering if this is something obscure like more filehandles or ports ending up being used and causing interference further down the line. Any ideas?