Skip to content

libdl.so not found in search path and causes a crash #53291

@vadi2

Description

@vadi2

Description

Trying out the .NET 6 preview 4, I'm not able to run my application anymore due to a crash.

Configuration

  • .NET 6 preview 4 installed from snap
  • Ubuntu 20.04 LTS, x64

Regression?

Worked on .NET 5, so yes.

Other information

Running the app itself gives a segfault:

/media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/Hammer
Qt runtime not present in /media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/qt-runtime, using a default one
Segmentation fault (core dumped)

GDB shows that it's an issue with dlopen:

(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007f00526c334c in dlopen_doit (a=0x7ffecd916bd0) at dlopen.c:66
#2  0x00007f0062d8a1ef in _dl_catch_exception () from /snap/core18/current/lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f0062d8a27f in _dl_catch_error () from /snap/core18/current/lib/x86_64-linux-gnu/libc.so.6
#4  0x00007f00526c3b59 in _dlerror_run (operate=operate@entry=0x7f00526c32f0 <dlopen_doit>, args=args@entry=0x7ffecd916bd0) at dlerror.c:170
#5  0x00007f00526c33da in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#6  0x00007effe92c4895 in ?? ()
#7  0x00007ffecd916c10 in ?? ()
#8  0x00000000000b12b7 in ?? ()
#9  0x00007f0062aec3f0 in ?? () from /snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/libcoreclr.so
#10 0xffffffffffffffff in ?? ()
#11 0x00007effe9899598 in ?? ()

strace shows that it's trying to find libdl.so in all places except where it actually is (/lib/x86_64-linux-gnu/libdl.so.2):

openat(AT_FDCWD, "/home/vadi/.qmlnet-qt-runtimes/qt-5.15.1-7fc8b10-linux-x64/qt/lib/preload.txt", O_RDONLY|O_CLOEXEC) = 39
fstat(39, {st_mode=S_IFREG|0664, st_size=91, ...}) = 0
flock(39, LOCK_SH|LOCK_NB)              = 0
fadvise64(39, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
lseek(39, 0, SEEK_CUR)                  = 0
read(39, "libQt5QuickControls2.so.5\nlibQt5"..., 4096) = 91
read(39, "", 4096)                      = 0
flock(39, LOCK_UN)                      = 0
close(39)                               = 0
mprotect(0x7f5ac4185000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4185000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac4186000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4186000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac4179000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4179000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac3bb4000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac3bb4000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac3bb4000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0x7f5ac4187000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4187000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac4188000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4188000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac417a000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac417a000, 4096, MADV_DODUMP) = 0
mprotect(0x7f5ac4189000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac4189000, 4096, MADV_DODUMP) = 0
openat(AT_FDCWD, "/media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/runtimes/linux-x64/native/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/../../../usr/lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/../../../lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/core18/current/lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/core18/current/lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 39
fstat(39, {st_mode=S_IFREG|0644, st_size=113889, ...}) = 0
mmap(NULL, 113889, PROT_READ, MAP_PRIVATE, 39, 0) = 0x7f5b33bce000
close(39)                               = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/dl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
munmap(0x7f5b33bce000, 113889)          = 0
openat(AT_FDCWD, "/media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/runtimes/linux-x64/native/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/media/vadi/SSDer/Programs/Hammer/bin/Debug/net6.0/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/../../../usr/lib/x86_64-linux-gnu/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/dotnet-sdk/127/shared/Microsoft.NETCore.App/6.0.0-preview.4.21253.7/../../../lib/x86_64-linux-gnu/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/core18/current/lib/x86_64-linux-gnu/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/snap/core18/current/lib/x86_64-linux-gnu/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 39
fstat(39, {st_mode=S_IFREG|0644, st_size=113889, ...}) = 0
mmap(NULL, 113889, PROT_READ, MAP_PRIVATE, 39, 0) = 0x7f5b33bce000
close(39)                               = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so", O_RDONLY|O_CLOEXEC) = 39
read(39, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \22\0\0\0\0\0\0"..., 832) = 832
fstat(39, {st_mode=S_IFREG|0644, st_size=18816, ...}) = 0
mmap(NULL, 20752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 39, 0) = 0x7f5b33bc8000
mmap(0x7f5b33bc9000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 39, 0x1000) = 0x7f5b33bc9000
mmap(0x7f5b33bcb000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 39, 0x3000) = 0x7f5b33bcb000
mmap(0x7f5b33bcc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 39, 0x3000) = 0x7f5b33bcc000
close(39)                               = 0
mprotect(0x7f5b33bcc000, 4096, PROT_READ) = 0
munmap(0x7f5b33bce000, 113889)          = 0
futex(0x7f5b33bcd0c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mprotect(0x7f5ac417b000, 4096, PROT_READ|PROT_WRITE) = 0
madvise(0x7f5ac417b000, 4096, MADV_DODUMP) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
rt_sigprocmask(SIG_UNBLOCK, [RT_2], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [SEGV], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RT_2], NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f5b3e0a4980}, NULL, 8) = 0
unlink("/tmp/clr-debug-pipe-4901-4339-in") = 0
unlink("/tmp/clr-debug-pipe-4901-4339-out") = 0
unlink("/tmp/dotnet-diagnostic-4901-4339-socket") = 0
rt_sigreturn({mask=[]})                 = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

How to fix?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions