Bug#968816: tilix: Library load failed (librsvg-2.so.2): ... Illegal instruction
Bernhard Übelacker
bernhardu at mailbox.org
Sun Aug 23 21:55:15 BST 2020
Dear Maintainer,
my d knowledge is very limited, but it looks like a d runtime library
tries to do some destructor calls at process exit.
Unfortunately that tries to get a mutex lock, but that fails with
EOWNERDEAD, therefore then hits the assert(0) in maybe [1].
If that assert(0) just translates in d to a "ud2" instruction.
But this happens just if the build-depending library librsvg2 is not found.
Looks like that build dependency does not translate to a binary package
dependency, maybe because it gets dynamically loaded?
Kind regards,
Bernhard
[1] https://sources.debian.org/src/ldc/1:1.21.0-1/runtime/druntime/src/rt/monitor_.d/#L213
(gdb) disassemble _D2rt8monitor_9lockMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv
Dump of assembler code for function _D2rt8monitor_9lockMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv:
0xb6cd2dd0 <+0>: push %ebx
0xb6cd2dd1 <+1>: sub $0x8,%esp
0xb6cd2dd4 <+4>: call 0xb6cd2dd9 <_D2rt8monitor_9lockMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv+9>
0xb6cd2dd9 <+9>: pop %ebx
0xb6cd2dda <+10>: mov %eax,(%esp)
0xb6cd2ddd <+13>: add $0x54227,%ebx
0xb6cd2de3 <+19>: call 0xb6c86b60 <pthread_mutex_lock at plt>
0xb6cd2de8 <+24>: test %eax,%eax
0xb6cd2dea <+26>: jne 0xb6cd2df1 <_D2rt8monitor_9lockMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv+33>
0xb6cd2dec <+28>: add $0x8,%esp
0xb6cd2def <+31>: pop %ebx
0xb6cd2df0 <+32>: ret
=> 0xb6cd2df1 <+33>: ud2
End of assembler dump.
(gdb)
0xb6c045de 467 return EOWNERDEAD;
1: x/i $pc
=> 0xb6c045de <__pthread_mutex_lock_full+446>: ja 0xb6c044f0 <__pthread_mutex_lock_full+208>
(gdb) bt
#0 0xb6c045de in __pthread_mutex_lock_full (mutex=0xb6d2f480 <_D2rt9critical_3gcsOSQtQs18D_CRITICAL_SECTION+4>) at ../nptl/pthread_mutex_lock.c:467
#1 0xb6cd2de8 in _D2rt8monitor_9lockMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#2 0xb6cc8641 in _d_criticalenter () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#3 0xb6cd6ca6 in _staticDtor_L376_C1 () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#4 0xb6cd2344 in rt.minfo.ModuleGroup.runTlsDtors() () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#5 0xb6cd4a44 in _d_dso_registry () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#6 0xb6c886e2 in ldc.register_dso () from /usr/lib/i386-linux-gnu/libdruntime-ldc-shared.so.91
#7 0xb7fe626a in _dl_fini () at dl-fini.c:138
#8 0xb6a4880e in __run_exit_handlers (status=1, listp=0xb6bf63fc <__exit_funcs>, run_list_atexit=true, run_dtors=true) at exit.c:108
#9 0xb6a489e1 in __GI_exit (status=1) at exit.c:139
#10 0xb6a2fe02 in __libc_start_main (main=0x4f1230 <main>, argc=1, argv=0xbffff6e4, init=0x5f2c60 <__libc_csu_init>, fini=0x5f2cc0 <__libc_csu_fini>, rtld_fini=0xb7fe6080 <_dl_fini>, stack_end=0xbffff6dc) at ../csu/libc-start.c:342
#11 0x004e3061 in _start ()
More information about the pkg-gnome-maintainers
mailing list