It seems there is a problem somewhere releasing a resource so that the jupyter kernel can die. This manifests itself both in a PR to ipykernel and a PR to jupyter_client. I wonder if it has something to do with pyzmq?
If someone who understands the different layers could take a look that would be greatly appreciated.