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