On 22 Mar 2025, at 01:38, Vadim Grinshpun via curl-library <[email protected]> wrote: > > A program that has been happily using libcurl for years > started crashing when we upgraded libcurl from 8.10.1 to 8.11.1. > > I was hoping the good folks here might be able > to point me in the right direction; the crash is within a libcurl getaddrinfo > call. > A sample gdb stack trace is at the end of the email. > > - the OS is Ubuntu 22.04.5 LTS. > - there were no code changes in the program, just dependency updates > - the program is multi-threaded > > Based on the fact that 'getaddrinfo' is mentioned in the stack trace, I > wonder if this is somehow related > to a PR that was merged into 8.11.0: https://github.com/curl/curl/pull/15475 > > Thanks for any help! And let me know if any other information would be useful. > > -Vadim > > --snip-- > Program terminated with signal SIGABRT, Aborted. > #0 0x00007fbd93e96a7c in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6 > [Current thread is 1 (Thread 0x7fbd849fa640 (LWP 1673034))] > (gdb) where > [custom signal handler bits removed for brevity] > #5 0x00007fbd93e96a7c in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6 > #6 0x00007fbd93e42476 in raise () from /lib/x86_64-linux-gnu/libc.so.6 > #7 0x00007fbd93e287f3 in abort () from /lib/x86_64-linux-gnu/libc.so.6 > #8 0x00007fbd93e8945c in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > #9 0x00007fbd93e89770 in __libc_fatal () from /lib/x86_64-linux-gnu/libc.so.6 > #10 0x00007fbd93f446af in __netlink_assert_response () from > /lib/x86_64-linux-gnu/libc.so.6 > #11 0x00007fbd93f43e1e in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > #12 0x00007fbd93f0bd71 in getaddrinfo () from /lib/x86_64-linux-gnu/libc.so.6 > #13 0x0000556ae604a3d8 in Curl_getaddrinfo_ex (nodename=<optimized out>, > servname=servname@entry=0x7fbd849f5cfc "443", > hints=hints@entry=0x7fbd91248b50, > result=result@entry=0x7fbd91248b48) at curl_addrinfo.c:121 > #14 0x0000556ae603b73d in getaddrinfo_thread (arg=arg@entry=0x7fbd91248b18) > at asyn-thread.c:311 > #15 0x0000556ae604aaff in curl_thread_create_thunk (arg=<optimized out>) at > curl_threads.c:59 > #16 0x00007fbd93e94b43 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > #17 0x00007fbd93f26990 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
In my experience, this indicates that some other thread is accidentally closing the file descriptor that getaddrinfo uses internally to enumerate the interfaces. Typically, because of a double-close of an unrelated file descriptor. Maybe you can install the libc6-dbg package, to get some more information about the functions marked with "??" in the stack trace? That would make it easier to determine whether a close-race is the cause of the crash. -Dimitry -- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html
