Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

possible race condition during shutdown: zmq aborts and dumps core

未關閉
#1,569 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
活躍
技術堆疊
jupyter, jupyter-notebook, python

研究方向

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.

由索引模型根據 Issue 內容生成。

描述

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);
主要語言
Python
星號
734
分支
412
平均合併
1 天 9 小時
30 天內合併 PR
13

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

ipython/ipykernel 的其他 Issue

查看 ipython/ipykernel 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。