Strange occasional `RuntimeError: Event loop is closed` out of nowhere
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par ipykernel/iostream.py, en particulier _watch_pipe_fd, write, _schedule_flush et le chemin de scheduling du pub-thread indiqué dans la traceback. Comparez ce cycle de vie avec Kernel.do_execute et la gestion de stdout et stderr par l’interpréteur externe, puis examinez à quel moment la boucle asyncio est fermée. Le travail est terminé lorsqu’une race condition reproductible lors de l’arrêt est identifiée ou que le code utilisateur responsable est confirmé, et qu’un test de régression est ajouté si le problème se situe dans ipykernel.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I'm implementing a kernel by inheriting from ipykernel.kernelbase.Kernel, as described at Making simple Python wrapper kernels.
That generally works well, but I have a strange problem: Occasionally I get an exception RuntimeError: Event loop is closed:
Traceback (most recent call last):
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/ipykernel/iostream.py", line 390, in _watch_pipe_fd
self.write(bts.decode(errors='replace'))
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/ipykernel/iostream.py", line 664, in write
self._schedule_flush()
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/ipykernel/iostream.py", line 561, in _schedule_flush
self.pub_thread.schedule(_schedule_in_thread)
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/ipykernel/iostream.py", line 269, in schedule
f()
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/ipykernel/iostream.py", line 559, in _schedule_in_thread
self._io_loop.call_later(self.flush_interval, self._flush)
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/tornado/ioloop.py", line 597, in call_later
return self.call_at(self.time() + delay, callback, *args, **kwargs)
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/site-packages/tornado/platform/asyncio.py", line 206, in call_at
return self.asyncio_loop.call_later(
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/asyncio/base_events.py", line 721, in call_later
timer = self.call_at(self.time() + delay, callback, *args,
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/asyncio/base_events.py", line 732, in call_at
self._check_closed()
File "/home/ca/Store/micromamba/envs/std/lib/python3.10/asyncio/base_events.py", line 515, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
The traceback does not go back to my code, so I'm not certain whether I did something wrong, or there is a bug in ipykernel.kernelbase? I am unable to reproduce the error, in the exact same situation it sometimes happens and sometimes doesn't.
I found two other issues which mention this exception, but they are about UI events (#825) or parallelization (#534), both of which I do not use. I inherited from ipykernel.kernelbase.Kernel and implemented do_execute, which sends code to an external interpreter and sends its stdout and stderr via self.send_response.
- Langage dominant
- Python
- Étoiles
- 734
- Forks
- 411
- Merge moyen
- 1 j 11 h
- PR mergées (30 j)
- 12
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ipython/ipykernel
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
ipython/ipykernel#1554 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Interrupt on swallowed `KeyboardInterrupt` exceptions (`SIGINT`) when pressing twice (within 5 seconds)Peut-être à nouveau libre @Carreau l’a pris il y a 33 jours, et aucune pull request n’est ouverte. Ouverte
ipython/ipykernel#1550 · 1 commentaire · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de ipython/ipykernel
Issues similaires
-
ACK_WAITING HELP_WANTED UPDATE_CS
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
OWASP/CheatSheetSeries#2458 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
BasedHardware/omi#19711 ·
Les mainteneurs répondent en général sous 1 jour
-
Qwen3_5MoeModel no longer returns router_logits, breaking aux loss with output_router_logits=TrueOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
huggingface/transformers#49172 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
vllm-project/vllm-metal#885 ·
Les mainteneurs répondent en général sous 1 jour