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@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 ()

Reply via email to