Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2024 11:53:57 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Alexander Leidinger <alexleidingerde@gmail.com>
Cc:        current@freebsd.org
Subject:   Re: segfault in ld-elf.so.1
Message-ID:  <ZcnqtY0dQoed9yjw@kib.kiev.ua>
In-Reply-To: <CAJg7qzFV2bY14tn1-wdpeBb5W1XeZ7v6bk3Qhf5A=hV98kSXFw@mail.gmail.com>
References:  <1707730081-90734-mlmmj-4d88f1fd@FreeBSD.org> <CAJg7qzFV2bY14tn1-wdpeBb5W1XeZ7v6bk3Qhf5A=hV98kSXFw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 12, 2024 at 10:35:56AM +0100, Alexander Leidinger wrote:
> Hi,
> 
> dovecot (and no other program I use on this machine... at least not that I
> notice it) segfaults in ld-elf.so.1 after an update from 2024-01-18-092730
> to 2024-02-10-144617 (and now 2024-02-11-212006 in the hope the issue would
> have been fixed by changes to libc/libsys since 2024-02-10-144617). The
> issue shows up when I try to do an IMAP login. A successful authentication
> starts the imap process which immediately segfaults.
> 
> I didn't recompile dovecot for the initial update, but I did now to rule
> out a regression in this area (and to get access via imap do my normal mail
> account).
> 
> 
> Backtrace:
The backtrace looks incomplete.  It might be the case of infinite recursion,
but I cannot claim it from the trace.

Does the program segfault if you run it manually?  If yes, please provide
me with the tarball of the binary and all required shared libs, including
base system libraries, from your machine.

> ---snip---
> (lldb) target create "/usr/local/libexec/dovecot/imap" --core
> "/var/run/dovecot/imap.core"
> Core file '/var/run/dovecot/imap.core' (x86_64) was loaded.
> * thread #1, name = 'imap', stop reason = signal SIGSEGV
>   * frame #0: 0x00004d3dfa2a4761 ld-elf.so.1`load_object [inlined]
> object_match_name(obj=0x000049a47c203408, name="") at rtld.c:5606:6
>     frame #1: 0x00004d3dfa2a4742 ld-elf.so.1`load_object(name="", fd_u=-1,
> refobj=0x000049a47c228008, flags=0) at rtld.c:2704:10
>     frame #2: 0x00004d3dfa2a3eaa ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3747:8
>     frame #3: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #4: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #5: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded011502e0, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #6: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded01150368, objlist=<unavailable>,
> dlp=0x00001ded011504b0) at rtld.c:4637:13
>     frame #7: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded01150470,
> donelist=0x00001ded011504b0) at rtld.c:4541:8
>     frame #8: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #9: 0x00004d3dfa2a4374 ld-elf.so.1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded01150988,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #10: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #11: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #12: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #13: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded01150a80, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #14: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded01150b08, objlist=<unavailable>,
> dlp=0x00001ded01150c50) at rtld.c:4637:13
>     frame #15: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded01150c10,
> donelist=0x00001ded01150c50) at rtld.c:4541:8
>     frame #16: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #17: 0x00004d3dfa2a4374 ld-elf.so.1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded01151128,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #18: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #19: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #20: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #21: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded01151220, obj=0x000049a47c228008) at
> rtldc:4735:6
>     frame #22: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded011512a8, objlist=<unavailable>,
> dlp=0x00001ded011513f0) at rtld.c:4637:13
>     frame #23: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded011513b0,
> donelist=0x00001ded011513f0) at rtld.c:4541:8
>     frame #24: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #25: 0x00004d3dfa2a4374 ld-elf.so.1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded011518c8,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #26: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #27: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #28: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #29: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded011519c0, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #30: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded01151a48, objlist=<unavailable>,
> dlp=0x00001ded01151b90) at rtld.c:4637:13
>     frame #31: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded01151b50,
> donelist=0x00001ded01151b90) at rtld.c:4541:8
>     frame #32: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #33: 0x00004d3dfa2a4374 ld-elf.so.1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded01152068,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #34: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #35: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #36: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #37: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded01152160, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #38: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded011521e8, objlist=<unavailable>,
> dlp=0x00001ded01152330) at rtld.c:4637:13
>     frame #39: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded011522f0,
> donelist=0x00001ded01152330) at rtld.c:4541:8
>     frame #40: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #41: 0x00004d3dfa2a4374 ld-elf.so.1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded01152808,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #42: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #43: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #44: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #45: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded01152900, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #46: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded01152988, objlist=<unavailable>,
> dlp=0x00001ded01152ad0) at rtld.c:4637:13
>     frame #47: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded01152a90,
> donelist=0x00001ded01152ad0) at rtld.c:4541:8
>     frame #48: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
>     frame #49: 0x00004d3dfa2a4374 ld-elf.so1`dlopen_object [inlined]
> distribute_static_tls(list=0x00001ded01152fa8,
> lockstate=0x00001ded0f98cb80) at rtld.c:5908:6
>     frame #50: 0x00004d3dfa2a4364 ld-elf.so.1`dlopen_object(name="", fd=-1,
> refobj=0x000049a47c228008, lo_flags=0, mode=1,
> lockstate=0x00001ded0f98cb80) at rtld.c:3831:6
>     frame #51: 0x00004d3dfa2a2274 ld-elf.so.1`symlook_obj [inlined]
> load_filtee1(obj=<unavailable>, needed=0x000049a47c2007c8,
> flags=<unavailable>, lockstate=<unavailable>) at rtld.c:2576:16
>     frame #52: 0x00004d3dfa2a2245 ld-elf.so.1`symlook_obj [inlined]
> load_filtees(obj=0x000049a47c228008, flags=0, lockstate=0x00001ded0f98cb80)
> at rtld.c:2589:2
>     frame #53: 0x00004d3dfa2a223e
> ld-elf.so.1`symlook_obj(req=0x00001ded011530a0, obj=0x000049a47c228008) at
> rtld.c:4735:6
>     frame #54: 0x00004d3dfa2a6992
> ld-elf.so.1`symlook_list(req=0x00001ded01153128, objlist=<unavailable>,
> dlp=0x00001ded01153270) at rtld.c:4637:13
>     frame #55: 0x00004d3dfa2a680b
> ld-elf.so.1`symlook_global(req=0x00001ded01153230,
> donelist=0x00001ded01153270) at rtld.c:4541:8
>     frame #56: 0x00004d3dfa2a6673
> ld-elf.so.1`get_program_var_addr(name=<unavailable>,
> lockstate=0x00001ded0f98cb80) at rtld.c:4483:9
> ---snip---
> 
> Bye,
> Alexander.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZcnqtY0dQoed9yjw>