#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007fe77bdb7859 in __GI_abort () at abort.c:79
#2 0x00007fe77bdb7729 in __assert_fail_base (fmt=0x7fe77bf4d588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7fe7798749aa "result == 0", file=0x7fe779873f98 "built1.10/include/mutexPosixImpl.I", line=120, function=<optimised out>) at assert.c:92
#3 0x00007fe77bdc8f36 in __GI___assert_fail (assertion=0x7fe7798749aa "result == 0", file=0x7fe779873f98 "built1.10/include/mutexPosixImpl.I", line=120, function=0x7fe77987e000 "void ReMutexPosixImpl::unlock()") at assert.c:101
#4 0x00007fe779055d62 in () at /usr/local/lib/python3.8/dist-packages/panda3d/libpanda.so.1.10
#5 0x00007fe77907b9c0 in GeomVertexArrayDataHandle::~GeomVertexArrayDataHandle() () at /usr/local/lib/python3.8/dist-packages/panda3d/libpanda.so.1.10
#6 0x00007fe77a7dc58a in () at /usr/local/lib/python3.8/dist-packages/panda3d/core.cpython-38-x86_64-linux-gnu.so
#7 0x00007fe77a8ed530 in () at /usr/local/lib/python3.8/dist-packages/panda3d/core.cpython-38-x86_64-linux-gnu.so
#8 0x00000000005d3234 in ()
#9 0x00000000005a73ed in ()
#10 0x00000000005eca2b in ()
#11 0x00000000005d3234 in ()
#12 0x00000000005a44d2 in ()
#13 0x00000000004ef5d8 in ()
#14 0x00000000005fc677 in ()
#15 0x000000000053bcaa in _PyObject_GC_New ()
#16 0x00000000005d1792 in ()
#17 0x00000000005c11d6 in PyObject_SetAttr ()
#18 0x000000000056b9aa in _PyEval_EvalFrameDefault ()
--Type <RET> for more, q to quit, c to continue without paging--c
#19 0x000000000056955a in _PyEval_EvalCodeWithName ()
#20 0x00000000005f7323 in _PyFunction_Vectorcall ()
#21 0x000000000059c654 in ()
#22 0x00000000005a7bf7 in ()
#23 0x00000000005f3f3e in PyObject_Call ()
#24 0x000000000056ca92 in _PyEval_EvalFrameDefault ()
#25 0x00000000005f7146 in _PyFunction_Vectorcall ()
#26 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#27 0x00000000005f7146 in _PyFunction_Vectorcall ()
#28 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#29 0x000000000056955a in _PyEval_EvalCodeWithName ()
#30 0x00000000005f7323 in _PyFunction_Vectorcall ()
#31 0x000000000059c6f0 in ()
#32 0x00000000005f463f in _PyObject_MakeTpCall ()
#33 0x0000000000570dac in _PyEval_EvalFrameDefault ()
#34 0x00000000005f7146 in _PyFunction_Vectorcall ()
#35 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#36 0x00000000005f7146 in _PyFunction_Vectorcall ()
#37 0x000000000059c95d in ()
#38 0x00000000005f463f in _PyObject_MakeTpCall ()
#39 0x00000000005704b9 in _PyEval_EvalFrameDefault ()
#40 0x000000000056955a in _PyEval_EvalCodeWithName ()
#41 0x000000000050a2c0 in ()
#42 0x000000000056c451 in _PyEval_EvalFrameDefault ()
#43 0x000000000056955a in _PyEval_EvalCodeWithName ()
#44 0x00000000005f7323 in _PyFunction_Vectorcall ()
#45 0x00000000004f4e7c in ()
#46 0x00000000005ee7f4 in ()
#47 0x00000000005f463f in _PyObject_MakeTpCall ()
#48 0x00000000005704b9 in _PyEval_EvalFrameDefault ()
#49 0x000000000056955a in _PyEval_EvalCodeWithName ()
#50 0x00000000005f7323 in _PyFunction_Vectorcall ()
#51 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#52 0x00000000005f7146 in _PyFunction_Vectorcall ()
#53 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#54 0x000000000056955a in _PyEval_EvalCodeWithName ()
#55 0x00000000005f7323 in _PyFunction_Vectorcall ()
#56 0x00000000005f3d42 in PyObject_Call ()
#57 0x000000000056ca92 in _PyEval_EvalFrameDefault ()
#58 0x00000000005f7146 in _PyFunction_Vectorcall ()
#59 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#60 0x00000000005f7146 in _PyFunction_Vectorcall ()
#61 0x000000000056b399 in _PyEval_EvalFrameDefault ()
#62 0x00000000005f7146 in _PyFunction_Vectorcall ()
#63 0x000000000050a24c in ()
#64 0x00000000005f3d42 in PyObject_Call ()
#65 0x000000000065561c in ()
#66 0x00000000006750c8 in ()
#67 0x00007fe77bd78609 in start_thread (arg=<optimised out>) at pthread_create.c:477
#68 0x00007fe77beb4293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Looks like a garbage collection issue when a mesh is destroyed (only classes containing GeomVertexArrayData). The issue might be with using the standard threading module instead of direct.stdpy.
Still an issue since by default we still use the standard threading model, but using direct.stdpyseems to fix the issue at the price of very sluggish performance.
Error
Core Dump
Looks like a garbage collection issue when a mesh is destroyed (only classes containing
GeomVertexArrayData
). The issue might be with using the standard threading module instead ofdirect.stdpy
.