yglukhov / nimpy

Nim - Python bridge
MIT License
1.44k stars 62 forks source link

Using pyImport creates tons of thread and potentially a fork ? #237

Closed Clonkk closed 2 years ago

Clonkk commented 2 years ago

I recently swapped to Ubuntu and evenr since I noticed that any program that uses pyImport create lots of threads (that are eventually closed) and somehow a fork ?

Here's code that reproduce :

import nimpy
when isMainModule:
  echo "Hello world"
  echo "------------------------------------------------"
  let np = pyImport("numpy")
  echo np.zeros([2, 2])
  echo "------------------------------------------------"

Compiled with nim cpp --stacktrace:on --debugger=native testfile.nim

Ran program with GDB here's the output :

GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./tensortest...
(gdb) r
Starting program: /home/rcaillaud/Workspace/playground/benchme/tensortest 
Hello world
------------------------------------------------
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff37a6700 (LWP 94583)]
[New Thread 0x7ffff0fa5700 (LWP 94584)]
[New Thread 0x7ffff07a4700 (LWP 94585)]
[New Thread 0x7fffedfa3700 (LWP 94586)]
[New Thread 0x7fffe97a2700 (LWP 94587)]
[New Thread 0x7fffe6fa1700 (LWP 94588)]
[New Thread 0x7fffe47a0700 (LWP 94589)]
[New Thread 0x7fffe1f9f700 (LWP 94590)]
[New Thread 0x7fffdf79e700 (LWP 94591)]
[New Thread 0x7fffdcf9d700 (LWP 94592)]
[New Thread 0x7fffda79c700 (LWP 94593)]
[Thread 0x7fffda79c700 (LWP 94593) exited]
[Thread 0x7fffdcf9d700 (LWP 94592) exited]
[Thread 0x7fffdf79e700 (LWP 94591) exited]
[Thread 0x7fffe1f9f700 (LWP 94590) exited]
[Thread 0x7fffe47a0700 (LWP 94589) exited]
[Thread 0x7fffe6fa1700 (LWP 94588) exited]
[Thread 0x7fffe97a2700 (LWP 94587) exited]
[Thread 0x7fffedfa3700 (LWP 94586) exited]
[Thread 0x7ffff07a4700 (LWP 94585) exited]
[Thread 0x7ffff0fa5700 (LWP 94584) exited]
[Thread 0x7ffff37a6700 (LWP 94583) exited]
[Detaching after fork from child process 94594]
[[0. 0.]
 [0. 0.]]
------------------------------------------------
[Inferior 1 (process 94579) exited normally]

1) I don't understand why so many threads are created then destroyed (it seems it's as many as the core the CPU)

2) I don't understand why it creates a fork (as noted by the message [Detaching after fork from child process 94594])

yglukhov commented 2 years ago

nimpy doesn't spawn any threads nor forks iirc. Try breaking on pthread_create and see the stack trace.

Clonkk commented 2 years ago

It gives me this stacktrace :

#0  __pthread_create_2_1 (newthread=0x7ffff5cd5300 <blas_threads>, attr=0x0, start_routine=0x7ffff412bfb0 <blas_thread_server>, arg=0x0) at pthread_create.c:625
#1  0x00007ffff412c397 in blas_thread_init () from /usr/local/lib/python3.8/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-2d23e62b.3.17.so
#2  0x00007ffff3f0607f in gotoblas_init () from /usr/local/lib/python3.8/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-2d23e62b.3.17.so
#3  0x00007ffff7fe0b8a in ?? () from /lib64/ld-linux-x86-64.so.2
#4  0x00007ffff7fe0c91 in ?? () from /lib64/ld-linux-x86-64.so.2
#5  0x00007ffff7d1e915 in _dl_catch_exception () from /usr/lib/x86_64-linux-gnu/libc.so.6
#6  0x00007ffff7fe50bf in ?? () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff7d1e8b8 in _dl_catch_exception () from /usr/lib/x86_64-linux-gnu/libc.so.6
#8  0x00007ffff7fe45fa in ?? () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff7fab34c in ?? () from /usr/lib/x86_64-linux-gnu/libdl.so.2
#10 0x00007ffff7d1e8b8 in _dl_catch_exception () from /usr/lib/x86_64-linux-gnu/libc.so.6
#11 0x00007ffff7d1e983 in _dl_catch_error () from /usr/lib/x86_64-linux-gnu/libc.so.6
#12 0x00007ffff7fabb59 in ?? () from /usr/lib/x86_64-linux-gnu/libdl.so.2
#13 0x00007ffff7fab3da in dlopen () from /usr/lib/x86_64-linux-gnu/libdl.so.2
#14 0x00007ffff7601833 in _PyImport_FindSharedFuncptr () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#15 0x00007ffff7638050 in _PyImport_LoadDynamicModuleWithSpec () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#16 0x00007ffff763a105 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#17 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#18 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#19 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#20 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#21 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#22 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#23 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#24 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#25 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#26 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#27 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#28 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#29 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#30 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#31 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#32 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#33 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#34 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#35 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#36 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#37 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#38 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#39 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#40 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#41 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#42 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#43 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#44 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#45 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#46 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#47 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#48 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#49 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#50 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#51 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#52 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#53 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#54 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#55 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#56 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#57 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#58 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#59 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#60 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#61 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#62 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#63 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#64 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#65 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#66 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#67 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#68 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#69 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#70 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#71 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#72 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#73 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#74 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#75 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#76 0x00007ffff7519e6a in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#77 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#78 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#79 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#80 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#81 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#82 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#83 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#84 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#85 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#86 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#87 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#88 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#89 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#90 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#91 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#92 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#93 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#94 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#95 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#96 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#97 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#98 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#99 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#100 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#101 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#102 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#103 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#104 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#105 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#106 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#107 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
--Type <RET> for more, q to quit, c to continue without paging--
#108 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#109 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#110 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#111 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#112 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#113 0x00007ffff7519e6a in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#114 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#115 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#116 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#117 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#118 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#119 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#120 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#121 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#122 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#123 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#124 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#125 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#126 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#127 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#128 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#129 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#130 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#131 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#132 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#133 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#134 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#135 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#136 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#137 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#138 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#139 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#140 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#141 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#142 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#143 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#144 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#145 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#146 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#147 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#148 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#149 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#150 0x00007ffff7519e6a in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#151 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#152 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#153 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#154 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#155 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#156 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#157 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#158 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#159 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#160 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#161 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
--Type <RET> for more, q to quit, c to continue without paging--
#162 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#163 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#164 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#165 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#166 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#167 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#168 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#169 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#170 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#171 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#172 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#173 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#174 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#175 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#176 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#177 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#178 0x00007ffff7739afb in _PyObject_MakeTpCall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#179 0x00007ffff7739f82 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#180 0x00007ffff773b15f in PyObject_CallFunction () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#181 0x00007ffff7636c80 in PyImport_Import () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#182 0x00007ffff7636e7e in PyImport_ImportModule () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#183 0x0000555555582905 in pyImport_OOZOOZlocalwsZnimpyZnimpy_1397 (moduleName=0x555555587442 "numpy") at /home/rcaillaud/Workspace/localws/nimpy/nimpy.nim:934
#184 0x00005555555842f0 in NimMainModule () at /home/rcaillaud/Workspace/playground/benchme/tensortest.nim:43
#185 0x0000555555584d13 in NimMainInner () at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2234
#186 0x00005555555841c0 in NimMain () at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2242
#187 0x00005555555841f7 in main (argc=<optimized out>, args=<optimized out>, env=<optimized out>) at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2249

So it looks like it's internal to libpython.The threads looks to be BLAS related (which would make sense since I import numpy) but the fork that appears to be created worries more.

yglukhov commented 2 years ago

Yep, looks like it's BLAS, which is used by numpy indeed. You can debug fork in the same way.

Clonkk commented 2 years ago

It goes direactly to libpython -> libc;

#0  0x00007ffff7ca1070 in fork () from /usr/lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff75c12bf in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#2  0x00007ffff7739667 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#3  0x00007ffff7739afb in _PyObject_MakeTpCall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#4  0x00007ffff7505df3 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#5  0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#6  0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#7  0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#8  0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#9  0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#10 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#11 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#12 0x00007ffff773b379 in _PyObject_FastCallDict () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#13 0x00007ffff773b4fd in _PyObject_Call_Prepend () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#14 0x00007ffff76d4d27 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#15 0x00007ffff76da199 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#16 0x00007ffff7739964 in PyObject_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#17 0x00007ffff750ba7a in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#18 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#19 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#20 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#21 0x00007ffff750ba7a in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#22 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#23 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#24 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#25 0x00007ffff750a713 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#26 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#27 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#28 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#29 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#30 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#31 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#32 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#33 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#34 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#35 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#36 0x00007ffff77282b4 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#37 0x00007ffff7718776 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#38 0x00007ffff7750d0d in PySequence_List () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#39 0x00007ffff77511c2 in PySequence_Fast () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#40 0x00007ffff76b074d in PyUnicode_Join () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#41 0x00007ffff773208d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#42 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#43 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#44 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#45 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#46 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#47 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#48 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#49 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#50 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#51 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#52 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#53 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
--Type <RET> for more, q to quit, c to continue without paging--c
#54 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#55 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#56 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#57 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#58 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#59 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#60 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#61 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#62 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#63 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#64 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#65 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#66 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#67 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#68 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#69 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#70 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#71 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#72 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#73 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#74 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#75 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#76 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#77 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#78 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#79 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#80 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#81 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#82 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#83 0x00007ffff7519e6a in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#84 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#85 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#86 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#87 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#88 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#89 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#90 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#91 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#92 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#93 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#94 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#95 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#96 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#97 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#98 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#99 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#100 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#101 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#102 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#103 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#104 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#105 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#106 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#107 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#108 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#109 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#110 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#111 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#112 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#113 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#114 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#115 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#116 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#117 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#118 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#119 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#120 0x00007ffff7519e6a in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#121 0x00007ffff750d941 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#122 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#123 0x00007ffff765c252 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#124 0x00007ffff765c63f in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#125 0x00007ffff7660c81 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#126 0x00007ffff76f0527 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#127 0x00007ffff7739810 in PyVectorcall_Call () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#128 0x00007ffff750ef48 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#129 0x00007ffff765becb in _PyEval_EvalCodeWithName () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#130 0x00007ffff77390f4 in _PyFunction_Vectorcall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#131 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#132 0x00007ffff750def6 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#133 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#134 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#135 0x00007ffff7507018 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#136 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#137 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#138 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#139 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#140 0x00007ffff7505d6d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#141 0x00007ffff750746d in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#142 0x00007ffff751106b in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#143 0x00007ffff773a0c8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#144 0x00007ffff773a320 in _PyObject_CallMethodIdObjArgs () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#145 0x00007ffff7519c1e in PyImport_ImportModuleLevelObject () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#146 0x00007ffff765f04e in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#147 0x00007ffff7739718 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#148 0x00007ffff7739afb in _PyObject_MakeTpCall () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#149 0x00007ffff7739f82 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#150 0x00007ffff773b15f in PyObject_CallFunction () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#151 0x00007ffff7636c80 in PyImport_Import () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#152 0x00007ffff7636e7e in PyImport_ImportModule () from /usr/lib/x86_64-linux-gnu/libpython3.8.so
#153 0x0000555555582905 in pyImport_OOZOOZlocalwsZnimpyZnimpy_1397 (moduleName=0x555555587442 "numpy") at /home/rcaillaud/Workspace/localws/nimpy/nimpy.nim:934
#154 0x00005555555842f0 in NimMainModule () at /home/rcaillaud/Workspace/playground/benchme/tensortest.nim:43
#155 0x0000555555584d13 in NimMainInner () at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2234
#156 0x00005555555841c0 in NimMain () at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2242
#157 0x00005555555841f7 in main (argc=<optimized out>, args=<optimized out>, env=<optimized out>) at /home/rcaillaud/.choosenim/toolchains/nim-1.6.0/lib/system.nim:2249

Which doesn't make sense since I don't create any fork

yglukhov commented 2 years ago

It's happening in pyImport("numpy"), so I guess numpy does that. You could also debug python -c "import numpy" and see if it happens. In any case, I doubt I can be of any help here.