Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

possible race condition during shutdown: zmq aborts and dumps core

Aberta
#1,569 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Ativa
Stack de tecnologia
jupyter, jupyter-notebook, python
Domínio
backend, networking

Direção de pesquisa

Begin with the linked tests/python/ipnbdoctest.py harness and the ipykernel_launcher shutdown path; inspect the supplied GDB backtraces, especially the ZeroMQ thread frames. Re-run parallel notebook verification on a loaded Arch Linux setup and confirm that shutdown no longer leaves a core dump.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

I'm using a test harness to replay notebooks and veryify that they produce the expected output.
This is part of my test suite, which runs in parallel, so I have multiple notebooks being verified at the same time.

Even if the test suite is successful, every now and then it will leave a coredump behind.
This core dump seems to be showing a race condition during the shutdown of ipykernel.

I can't reproduce it reliably, there is just one computer I use for CI/CD where the coredump appears more often. It is possible that this might only happen if the machine is highly loaded

The following issue was observed on Arch linux with the following packages:

  • python 3.14.7-1
  • python-pyzmq 27.2.0-1
  • zeromq 4.3.5-3
  • python-ipykernel 7.3.0-1
  • python-jupyter-client 8.10.0-1
  • python-tornado 6.5.10-1
  • python-traitlets 5.16.1-1
  • python-jupyter-core 5.9.1-2
  • ipython 9.17.1-1
% file core.106510
core.106510: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from '/usr/sbin/python -m ipykernel_launcher -f /tmp/tmpc308sbu3.json --HistoryManage', real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: '/usr/sbin/python', platform: 'x86_64

Here are the backtraces from the 8 threads (the abort() is in thread 1), followed by the python backtrace from thread 4 (closing

(gdb) thread apply all bt

Thread 8 (Thread 0x7362054056c0 (LWP 106691)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5e4b42 in read () from /usr/lib/libc.so.6
#2  0x000073620b9e1ff6 in read (__fd=<optimized out>, __buf=<optimized out>, __nbytes=<optimized out>, __fd=<optimized out>, __buf=<optimized out>, __nbytes=<optimized out>) at /usr/include/bits/unistd.h:32
#3  _Py_read (fd=39, buf=0x7361f4000ca0, count=1000) at Python/fileutils.c:1899
#4  0x000073620ba295ca in os_read_impl (module=<optimized out>, fd=39, length=1000) at ./Modules/posixmodule.c:11555
#5  os_read (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ./Modules/clinic/posixmodule.c.h:7718
#6  0x000073620b753fc1 in _PyObject_VectorcallTstate (kwnames=0x0, tstate=0x56ba579151c0, callable=0x73620b334180, args=0x7362054042a8, nargsf=<optimized out>) at ./Include/internal/pycore_call.h:177
#7  PyObject_Vectorcall (kwnames=0x0, callable=0x73620b334180, args=0x7362054042a8, nargsf=<optimized out>) at Objects/call.c:327
#8  _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x736204c011a8, throwflag=<optimized out>) at Python/generated_cases.c.h:1621
#9  0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba579151c0, frame=0x736204c011a8) at ./Include/internal/pycore_ceval.h:120
#10 _PyEval_Vector (locals=0x0, tstate=0x56ba579151c0, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#11 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#12 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba579151c0, callable=0x73620872d7a0, args=0x736205404498) at ./Include/internal/pycore_call.h:177
#13 _PyObject_VectorcallPrepend (tstate=0x56ba579151c0, callable=0x73620872d7a0, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#14 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#15 0x000073620b75f3f9 in PyObject_Call (callable=0x7362085ac2c0, args=0x73620bcd0370 <_PyRuntime+90640>, kwargs=<optimized out>) at Objects/call.c:373
#16 PyCFunction_Call (callable=0x7362085ac2c0, args=0x73620bcd0370 <_PyRuntime+90640>, kwargs=<optimized out>) at Objects/call.c:381
#17 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x736204c01128, throwflag=<optimized out>) at Python/generated_cases.c.h:2656
#18 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba579151c0, frame=0x736204c01128) at ./Include/internal/pycore_ceval.h:120
#19 _PyEval_Vector (locals=0x0, tstate=0x56ba579151c0, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#20 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#21 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba579151c0, callable=0x73620aede4b0, args=0x7362054048f8) at ./Include/internal/pycore_call.h:177
#22 _PyObject_VectorcallPrepend (tstate=0x56ba579151c0, callable=0x73620aede4b0, arg=<optimized out>, args=0x736205404bb8, nargsf=0, kwnames=0x0) at Objects/call.c:852
#23 method_vectorcall (method=<optimized out>, args=0x736205404bb8, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#24 0x000073620ba32c64 in _PyObject_VectorcallTstate (tstate=0x56ba579151c0, callable=0x7362085ac980, args=0x736205404bb8, nargsf=<optimized out>, kwnames=0x0) at ./Include/internal/pycore_call.h:177
#25 context_run (self=0x7362091f6180, args=0x736205404bb0, nargs=<optimized out>, kwnames=0x0) at Python/context.c:725
#26 0x000073620b75ba85 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x736204c01098, throwflag=<optimized out>) at Python/generated_cases.c.h:3746
#27 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba579151c0, frame=0x736204c01020) at ./Include/internal/pycore_ceval.h:120
#28 _PyEval_Vector (locals=0x0, tstate=0x56ba579151c0, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#29 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#30 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba579151c0, callable=0x73620aede560, args=0x736205404d98) at ./Include/internal/pycore_call.h:177
#31 _PyObject_VectorcallPrepend (tstate=0x56ba579151c0, callable=0x73620aede560, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#32 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#33 0x000073620ba32674 in thread_run (boot_raw=0x56ba5769d7d0) at ./Modules/_threadmodule.c:359
#34 0x000073620ba324ac in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:242
#35 0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#36 0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 7 (Thread 0x736205c066c0 (LWP 106689)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5f3cab in epoll_wait () from /usr/lib/libc.so.6
#2  0x000073620acb0474 in zmq::epoll_t::loop (this=0x7361fc004a10) at /usr/src/debug/zeromq/zeromq/src/epoll.cpp:157
#3  0x000073620ace0794 in thread_routine (arg_=0x7361fc004a68) at /usr/src/debug/zeromq/zeromq/src/thread.cpp:229
#4  0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#5  0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 6 (Thread 0x736204c006c0 (LWP 106692)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5e4b42 in read () from /usr/lib/libc.so.6
#2  0x000073620b9e1ff6 in read (__fd=<optimized out>, __buf=<optimized out>, __nbytes=<optimized out>, __fd=<optimized out>, __buf=<optimized out>, __nbytes=<optimized out>) at /usr/include/bits/unistd.h:32
#3  _Py_read (fd=42, buf=0x7361e8000ca0, count=1000) at Python/fileutils.c:1899
#4  0x000073620ba295ca in os_read_impl (module=<optimized out>, fd=42, length=1000) at ./Modules/posixmodule.c:11555
#5  os_read (module=<optimized out>, args=<optimized out>, nargs=<optimized out>) at ./Modules/clinic/posixmodule.c.h:7718
#6  0x000073620b753b64 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043fc1a8, throwflag=<optimized out>) at Python/generated_cases.c.h:2265
#7  0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba57915790, frame=0x7362043fc1a8) at ./Include/internal/pycore_ceval.h:120
#8  _PyEval_Vector (locals=0x0, tstate=0x56ba57915790, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#9  _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#10 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba57915790, callable=0x73620872d7a0, args=0x736204bff498) at ./Include/internal/pycore_call.h:177
#11 _PyObject_VectorcallPrepend (tstate=0x56ba57915790, callable=0x73620872d7a0, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#12 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#13 0x000073620b75f3f9 in PyObject_Call (callable=0x7362085acb00, args=0x73620bcd0370 <_PyRuntime+90640>, kwargs=<optimized out>) at Objects/call.c:373
#14 PyCFunction_Call (callable=0x7362085acb00, args=0x73620bcd0370 <_PyRuntime+90640>, kwargs=<optimized out>) at Objects/call.c:381
#15 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043fc128, throwflag=<optimized out>) at Python/generated_cases.c.h:2656
#16 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba57915790, frame=0x7362043fc128) at ./Include/internal/pycore_ceval.h:120
#17 _PyEval_Vector (locals=0x0, tstate=0x56ba57915790, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#18 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#19 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba57915790, callable=0x73620aede4b0, args=0x736204bff8f8) at ./Include/internal/pycore_call.h:177
#20 _PyObject_VectorcallPrepend (tstate=0x56ba57915790, callable=0x73620aede4b0, arg=<optimized out>, args=0x736204bffbb8, nargsf=0, kwnames=0x0) at Objects/call.c:852
#21 method_vectorcall (method=<optimized out>, args=0x736204bffbb8, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#22 0x000073620ba32c64 in _PyObject_VectorcallTstate (tstate=0x56ba57915790, callable=0x7362085accc0, args=0x736204bffbb8, nargsf=<optimized out>, kwnames=0x0) at ./Include/internal/pycore_call.h:177
#23 context_run (self=0x7362085acb80, args=0x736204bffbb0, nargs=<optimized out>, kwnames=0x0) at Python/context.c:725
#24 0x000073620b75ba85 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043fc098, throwflag=<optimized out>) at Python/generated_cases.c.h:3746
#25 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba57915790, frame=0x7362043fc020) at ./Include/internal/pycore_ceval.h:120
#26 _PyEval_Vector (locals=0x0, tstate=0x56ba57915790, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#27 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#28 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba57915790, callable=0x73620aede560, args=0x736204bffd98) at ./Include/internal/pycore_call.h:177
#29 _PyObject_VectorcallPrepend (tstate=0x56ba57915790, callable=0x73620aede560, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#30 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#31 0x000073620ba32674 in thread_run (boot_raw=0x56ba576943f0) at ./Modules/_threadmodule.c:359
#32 0x000073620ba324ac in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:242
#33 0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#34 0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7361eeffd6c0 (LWP 106702)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5b7aed in clock_nanosleep () from /usr/lib/libc.so.6
#2  0x000073620ba63e91 in pysleep (timeout=<optimized out>) at ./Modules/timemodule.c:2267
#3  time_sleep (self=<optimized out>, timeout_obj=<optimized out>) at ./Modules/timemodule.c:408
#4  0x000073620b75d6fd in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x736204132128, throwflag=<optimized out>) at Python/generated_cases.c.h:2487
#5  0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba57930b40, frame=0x736204132128) at ./Include/internal/pycore_ceval.h:120
#6  _PyEval_Vector (locals=0x0, tstate=0x56ba57930b40, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#7  _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#8  0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba57930b40, callable=0x7362086aa980, args=0x7361eeffc8f8) at ./Include/internal/pycore_call.h:177
#9  _PyObject_VectorcallPrepend (tstate=0x56ba57930b40, callable=0x7362086aa980, arg=<optimized out>, args=0x7361eeffcbb8, nargsf=0, kwnames=0x0) at Objects/call.c:852
#10 method_vectorcall (method=<optimized out>, args=0x7361eeffcbb8, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#11 0x000073620ba32c64 in _PyObject_VectorcallTstate (tstate=0x56ba57930b40, callable=0x736204351b40, args=0x7361eeffcbb8, nargsf=<optimized out>, kwnames=0x0) at ./Include/internal/pycore_call.h:177
#12 context_run (self=0x736204353940, args=0x7361eeffcbb0, nargs=<optimized out>, kwnames=0x0) at Python/context.c:725
#13 0x000073620b75ba85 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x736204132098, throwflag=<optimized out>) at Python/generated_cases.c.h:3746
#14 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba57930b40, frame=0x736204132020) at ./Include/internal/pycore_ceval.h:120
#15 _PyEval_Vector (locals=0x0, tstate=0x56ba57930b40, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#16 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#17 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba57930b40, callable=0x73620aede560, args=0x7361eeffcd98) at ./Include/internal/pycore_call.h:177
#18 _PyObject_VectorcallPrepend (tstate=0x56ba57930b40, callable=0x73620aede560, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#19 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#20 0x000073620ba32674 in thread_run (boot_raw=0x56ba5795b1c0) at ./Modules/_threadmodule.c:359
#21 0x000073620ba324ac in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:242
#22 0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#23 0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 4 (Thread 0x73620b39af40 (LWP 106510)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5e4365 in poll () from /usr/lib/libc.so.6
#2  0x000073620acc9c78 in poll (__fds=0x7fffc94f0990, __nfds=1, __timeout=-1) at /usr/include/bits/poll2.h:44
#3  zmq::signaler_t::wait (this=0x56ba57887e48, timeout_=-1) at /usr/src/debug/zeromq/zeromq/src/signaler.cpp:219
#4  0x000073620acb2720 in zmq::mailbox_t::recv (this=0x56ba57887de0, cmd_=0x7fffc94f0a80, timeout_=<optimized out>) at /usr/src/debug/zeromq/zeromq/src/mailbox.cpp:54
#5  0x000073620ac9c0f8 in zmq::ctx_t::terminate (this=0x56ba57887cb0) at /usr/src/debug/zeromq/zeromq/src/ctx.cpp:182
#6  0x000073620acebe68 in zmq_ctx_term (ctx_=0x56ba57887cb0) at /usr/src/debug/zeromq/zeromq/src/zmq.cpp:135
#7  0x000073620ad3d053 in ?? () from /usr/lib/python3.14/site-packages/zmq/backend/cython/_zmq.cpython-314-x86_64-linux-gnu.so
#8  0x000073620b753fc1 in _PyObject_VectorcallTstate (kwnames=0x0, tstate=0x73620bd07280 <_PyRuntime+315680>, callable=0x73620b09e6d0, args=0x7fffc94f0e08, nargsf=<optimized out>) at ./Include/internal/pycore_call.h:177
#9  PyObject_Vectorcall (kwnames=0x0, callable=0x73620b09e6d0, args=0x7fffc94f0e08, nargsf=<optimized out>) at Objects/call.c:327
#10 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x73620b1d90b8, throwflag=<optimized out>) at Python/generated_cases.c.h:1621
#11 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x73620bd07280 <_PyRuntime+315680>, frame=0x73620b1d9020) at ./Include/internal/pycore_ceval.h:120
#12 _PyEval_Vector (locals=0x0, tstate=0x73620bd07280 <_PyRuntime+315680>, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#13 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#14 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x73620bd07280 <_PyRuntime+315680>, callable=0x7362086c1c70, args=0x7fffc94f0ff8) at ./Include/internal/pycore_call.h:177
#15 _PyObject_VectorcallPrepend (tstate=0x73620bd07280 <_PyRuntime+315680>, callable=0x7362086c1c70, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#16 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#17 0x000073620b9fe780 in atexit_callfuncs (state=0x73620bcd2e00 <_PyRuntime+101536>) at ./Modules/atexitmodule.c:128
#18 0x000073620b9d91f2 in _PyAtExit_Call (interp=0x73620bcd03e0 <_PyRuntime+90752>) at ./Modules/atexitmodule.c:151
#19 _Py_Finalize.constprop.0 (runtime=<optimized out>) at Python/pylifecycle.c:2048
#20 0x000073620b9a0096 in Py_RunMain () at Modules/main.c:841
#21 0x000073620b999efc in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:893
#22 0x000073620b4fa781 in ?? () from /usr/lib/libc.so.6
#23 0x000073620b4fa8b9 in __libc_start_main () from /usr/lib/libc.so.6
#24 0x000056ba438b4045 in _start ()

Thread 3 (Thread 0x7362084136c0 (LWP 106682)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5f3cab in epoll_wait () from /usr/lib/libc.so.6
#2  0x000073620acb0474 in zmq::epoll_t::loop (this=0x56ba57561140) at /usr/src/debug/zeromq/zeromq/src/epoll.cpp:157
#3  0x000073620ace0794 in thread_routine (arg_=0x56ba57561198) at /usr/src/debug/zeromq/zeromq/src/thread.cpp:229
#4  0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#5  0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 2 (Thread 0x736207c126c0 (LWP 106683)):
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5f3cab in epoll_wait () from /usr/lib/libc.so.6
#2  0x000073620acb0474 in zmq::epoll_t::loop (this=0x56ba578303f0) at /usr/src/debug/zeromq/zeromq/src/epoll.cpp:157
#3  0x000073620ace0794 in thread_routine (arg_=0x56ba57830448) at /usr/src/debug/zeromq/zeromq/src/thread.cpp:229
#4  0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#5  0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7361effff6c0 (LWP 106693)):
#0  0x000073620b56d17c in ?? () from /usr/lib/libc.so.6
#1  0x000073620b5115d0 in raise () from /usr/lib/libc.so.6
#2  0x000073620b4f8685 in abort () from /usr/lib/libc.so.6
#3  0x000073620aca78d4 in zmq::zmq_abort (errmsg_=<optimized out>) at /usr/src/debug/zeromq/zeromq/src/err.cpp:61
#4  0x000073620acc9d18 in zmq::signaler_t::wait (this=<optimized out>, timeout_=-1) at /usr/src/debug/zeromq/zeromq/src/signaler.cpp:238
#5  0x000073620acb2720 in zmq::mailbox_t::recv (this=0x7361e4001da0, cmd_=0x7361efffdc00, timeout_=<optimized out>) at /usr/src/debug/zeromq/zeromq/src/mailbox.cpp:54
#6  0x000073620acd6f4a in zmq::socket_base_t::process_commands (this=0x7361e4001640, timeout_=<optimized out>, throttle_=<optimized out>) at /usr/src/debug/zeromq/zeromq/src/socket_base.cpp:1478
#7  0x000073620accd6ce in zmq::socket_base_t::send (this=0x7361e4001640, msg_=0x7361efffdde0, flags_=<optimized out>) at /usr/src/debug/zeromq/zeromq/src/socket_base.cpp:1271
#8  0x000073620acecc45 in s_sendmsg (s_=0x7361e4001640, msg_=0x7361efffdde0, flags_=0) at /usr/src/debug/zeromq/zeromq/src/zmq.cpp:359
#9  zmq_msg_send (msg_=0x7361efffdde0, s_=0x7361e4001640, flags_=0) at /usr/src/debug/zeromq/zeromq/src/zmq.cpp:614
#10 0x000073620ad488e2 in ?? () from /usr/lib/python3.14/site-packages/zmq/backend/cython/_zmq.cpython-314-x86_64-linux-gnu.so
#11 0x000073620ad491a4 in ?? () from /usr/lib/python3.14/site-packages/zmq/backend/cython/_zmq.cpython-314-x86_64-linux-gnu.so
#12 0x000073620ad44e5c in ?? () from /usr/lib/python3.14/site-packages/zmq/backend/cython/_zmq.cpython-314-x86_64-linux-gnu.so
#13 0x000073620b89eecd in _PyObject_VectorcallTstate (tstate=0x56ba579174c0, callable=0x73620af26060, args=0x7361efffe258, nargsf=9223372036854775810, kwnames=0x73620ad9e520) at ./Include/internal/pycore_call.h:177
#14 PyObject_Vectorcall (callable=0x73620af26060, args=0x7361efffe258, nargsf=9223372036854775810, kwnames=0x73620ad9e520) at Objects/call.c:327
#15 0x000073620b75fef6 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043f8510, throwflag=throwflag@entry=0) at Python/generated_cases.c.h:2961
#16 0x000073620b912c90 in _PyEval_EvalFrame (tstate=<optimized out>, frame=0x736204305488, throwflag=0) at ./Include/internal/pycore_ceval.h:120
#17 gen_send_ex2 (gen=0x736204305440, arg=0x73620bc8f3a0 <_Py_NoneStruct>, presult=0x7361efffe3d0, exc=0, closing=0) at Objects/genobject.c:259
#18 0x000073620925a2c2 in task_step_impl (state=state@entry=0x736209c81c50, task=task@entry=0x73620432f230, exc=exc@entry=0x0) at ./Modules/_asynciomodule.c:3125
#19 0x000073620925afa6 in task_step (state=0x736209c81c50, task=0x73620432f230, exc=0x0) at ./Modules/_asynciomodule.c:3465
#20 0x000073620b89c9e9 in _PyObject_MakeTpCall (tstate=0x56ba579174c0, callable=0x7362042ffb20, args=0x7361ee642928, nargs=<optimized out>, keywords=0x0) at Objects/call.c:242
#21 0x000073620b7d7a6a in _PyObject_VectorcallTstate (tstate=0x56ba579174c0, callable=0x7362042ffb20, args=0x7361ee642928, nargsf=<optimized out>, kwnames=0x0) at ./Include/internal/pycore_call.h:175
#22 context_run (self=0x7362043245c0, args=0x7361ee642920, nargs=<optimized out>, kwnames=0x0) at Python/context.c:725
#23 0x000073620b75f3f9 in PyObject_Call (callable=0x7362089135b0, args=0x7361ee642900, kwargs=<optimized out>) at Objects/call.c:373
#24 PyCFunction_Call (callable=0x7362089135b0, args=0x7361ee642900, kwargs=<optimized out>) at Objects/call.c:381
#25 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043f8360, throwflag=<optimized out>) at Python/generated_cases.c.h:2656
#26 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba579174c0, frame=0x7362043f8128) at ./Include/internal/pycore_ceval.h:120
#27 _PyEval_Vector (locals=0x0, tstate=0x56ba579174c0, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#28 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#29 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba579174c0, callable=0x7362086fb8a0, args=0x7361efffe8f8) at ./Include/internal/pycore_call.h:177
#30 _PyObject_VectorcallPrepend (tstate=0x56ba579174c0, callable=0x7362086fb8a0, arg=<optimized out>, args=0x7361efffebb8, nargsf=0, kwnames=0x0) at Objects/call.c:852
#31 method_vectorcall (method=<optimized out>, args=0x7361efffebb8, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#32 0x000073620ba32c64 in _PyObject_VectorcallTstate (tstate=0x56ba579174c0, callable=0x7362085adf00, args=0x7361efffebb8, nargsf=<optimized out>, kwnames=0x0) at ./Include/internal/pycore_call.h:177
#33 context_run (self=0x7362085ade00, args=0x7361efffebb0, nargs=<optimized out>, kwnames=0x0) at Python/context.c:725
#34 0x000073620b75ba85 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=0x7362043f8098, throwflag=<optimized out>) at Python/generated_cases.c.h:3746
#35 0x000073620b8da78b in _PyEval_EvalFrame (throwflag=0, tstate=0x56ba579174c0, frame=0x7362043f8020) at ./Include/internal/pycore_ceval.h:120
#36 _PyEval_Vector (locals=0x0, tstate=0x56ba579174c0, func=<optimized out>, args=<optimized out>, argcount=1, kwnames=<optimized out>) at Python/ceval.c:2113
#37 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:413
#38 0x000073620b92b9ae in _PyObject_VectorcallTstate (nargsf=1, kwnames=0x0, tstate=0x56ba579174c0, callable=0x73620aede560, args=0x7361efffed98) at ./Include/internal/pycore_call.h:177
#39 _PyObject_VectorcallPrepend (tstate=0x56ba579174c0, callable=0x73620aede560, arg=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/call.c:852
#40 method_vectorcall (method=<optimized out>, args=0x73620bcd0390 <_PyRuntime+90672>, nargsf=0, kwnames=0x0) at Objects/classobject.c:54
#41 0x000073620ba32674 in thread_run (boot_raw=0x56ba5766a8d0) at ./Modules/_threadmodule.c:359
#42 0x000073620ba324ac in pythread_wrapper (arg=<optimized out>) at Python/thread_pthread.h:242
#43 0x000073620b56b0a2 in ?? () from /usr/lib/libc.so.6
#44 0x000073620b5f380c in ?? () from /usr/lib/libc.so.6

(gdb) thread 4
[Switching to thread 4 (Thread 0x73620b39af40 (LWP 106510))]
#0  0x000073620b573952 in ?? () from /usr/lib/libc.so.6
(gdb) py-bt
Traceback (most recent call first):
  File "/usr/lib/python3.14/site-packages/zmq/sugar/context.py", line 264, in term
    super().term()
  File "/usr/lib/python3.14/site-packages/ipykernel/kernelapp.py", line 456, in close
    self.heartbeat.context.term()

(gdb) thread 1
[Switching to thread 1 (Thread 0x7361effff6c0 (LWP 106693))]
(gdb) py-bt
Traceback (most recent call first):
  File "/usr/lib/python3.14/site-packages/zmq/sugar/socket.py", line 713, in send
    return super().send(data, flags=flags, copy=copy, track=track)
  File "/usr/lib/python3.14/site-packages/ipykernel/iostream.py", line 342, in schedule
    self._event_pipe.send(b"")
  File "/usr/lib/python3.14/site-packages/ipykernel/iostream.py", line 685, in flush
    self.pub_thread.schedule(self._flush)
  File "/usr/lib/python3.14/site-packages/ipykernel/kernelbase.py", line 384, in process_control
    sys.stderr.flush()
  File "/usr/lib/python3.14/site-packages/ipykernel/kernelbase.py", line 348, in dispatch_control
    await self.process_control(msg)
  File "/usr/lib/python3.14/asyncio/events.py", line 94, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/lib/python3.14/asyncio/base_events.py", line 2057, in _run_once
    handle._run()
  File "/usr/lib/python3.14/asyncio/base_events.py", line 678, in run_forever
    self._run_once()
  File "/usr/lib/python3.14/site-packages/tornado/platform/asyncio.py", line 211, in start
    self.asyncio_loop.run_forever()
  File "/usr/lib/python3.14/site-packages/ipykernel/thread.py", line 24, in run
    self.io_loop.start()
  File "/usr/lib/python3.14/threading.py", line 1082, in _bootstrap_inner
    self._context.run(self.run)
  File "/usr/lib/python3.14/threading.py", line 1044, in _bootstrap
    self._bootstrap_inner()

The line in thread 1 where zmq_assert fails is this:

#4  0x000073620acc9d18 in zmq::signaler_t::wait (this=<optimized out>, timeout_=-1) at /usr/src/debug/zeromq/zeromq/src/signaler.cpp:238                                                       
238         zmq_assert (pfd.revents & POLLIN);
Linguagem predominante
Python
Estrelas
734
Forks
412
Merge médio
1d 9h
PRs com merge (30d)
13

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ipython/ipykernel

Todas as issues de ipython/ipykernel

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.