Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Heisenbug: Unexpected error 9 on netlink descriptor 24 aborts, #584

Open
crrodriguez opened this issue Dec 23, 2024 · 5 comments
Open

Heisenbug: Unexpected error 9 on netlink descriptor 24 aborts, #584

crrodriguez opened this issue Dec 23, 2024 · 5 comments

Comments

@crrodriguez
Copy link
Contributor

sudo zypper ref
Repository 'Kernel builds for branch master (standard)' is up to date.
Repository 'GNU Compiler Collection container (openSUSE_Factory)' is up to date.
Retrieving repository 'Subproject with the future next releases (openSUSE_Tumbleweed)' metadata ---------------------------------------------------------------------------------------------------------------[/]Unexpected error 9 on netlink descriptor 24.
[1] 34651 IOT instruction sudo zypper ref

This is a sanity check in libc to prevent further corruption when the netlink sockets are changed by something else under the rug by some filedescriptor managment error elsewhere.
It is probably libcurl that steps into libc toes but it is hard to tell because I got no backtrace and no coredump stored.

@mlandres
Copy link
Member

mlandres commented Jan 8, 2025

The /var/log/zypper.log may reveal more. If you don't mind, please open a bugreport at https://bugzilla.suse.com. - component zypper or libzypp is fine - and attach the logfile there. That's the easiest was to get the curl maintainers involved as well. Thanks.

@crrodriguez
Copy link
Contributor Author

happened again ! unfortunately the log isnt that helpful either, I'll make sure I can get a coredump next time´it happens to trigger

35106 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} Error: signal 6
35107 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [hd]: (-3) /usr/lib64/libzypp.so.1735 : zypp::dumpBacktrace(std::ostream&)+0x37 [0x7f489270b
│ ef7]
35108 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [hd]: (-2) /usr/lib64/libzypp.so.1735 : +0x2ea53e [0x7f48926ea53e]
35109 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [hd]: (-1) /usr/lib64/libc.so.6 : +0x41e00 [0x7f4891a41e00]
35110 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} vvvvvvvvvv----------------------------------------
35111 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (0) /usr/lib64/libc.so.6 : +0x9b67c [0x7f4891a9b67c]
35112 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (1) /usr/lib64/libc.so.6 : gsignal+0x18 [0x7f4891a41cb6]
35113 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (2) /usr/lib64/libc.so.6 : abort+0x2a [0x7f4891a2938b]
35114 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (3) /usr/lib64/libc.so.6 : +0x2a199 [0x7f4891a2a199]
35115 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (4) /usr/lib64/libc.so.6 : +0x8e37b [0x7f4891a8e37b]
35116 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (5) /usr/lib64/libc.so.6 : __netlink_assert_response+0x113 [0x7f4891b338b1]
35117 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (6) /usr/lib64/libc.so.6 : +0x13304f [0x7f4891b3304f]
35118 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (7) /usr/lib64/libc.so.6 : getaddrinfo+0x11bf [0x7f4891b4c44d]
35119 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (8) /usr/lib64/libcurl.so.4 : +0x1f97c [0x7f489194d97c]
35120 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (9) /usr/lib64/libcurl.so.4 : +0x20c98 [0x7f489194ec98]
35121 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (10) /usr/lib64/libc.so.6 : +0x99846 [0x7f4891a99846]
35122 │ 2025-01-31 13:04:51 <5> tumbleweedvm(227889) [zypp] ZYppFactory.cc(backtraceHandler):58 {T:139949583709888} [bt]: (11) /usr/lib64/libc.so.6 : +0x11dccc [0x7f4891b1dccc]

It appears that curl tries to resolve a name and something screws up libc fds shortly after.

@jengelh
Copy link
Contributor

jengelh commented Feb 6, 2025

This can be something as simple as the wrong thread closing the wrong filedescriptor, and then opening a new fd for something unrelated, gaining the fd number previously closed; and then the thread where getaddrinfo (or some call like that) is running gets confused, rightfully so. Alas, I wish libc wouldn't terminate the program but just return an error.

IOW, running under strace -e open,openat,close might turn something up, if only a confirmation of exactly the close-open theory.

@UbiquitousPhoton
Copy link

UbiquitousPhoton commented Feb 7, 2025

Had this 100% reproducable during zypper -vvv dup --details —recommends , and ran with strace -e open,openat,close which promptly made the problem go away.

Unfortunately this only makes it more likely that its a multi-threaded race condition - the strace output to TTY no doubt had to go via a mutex lock to get the resource, and thus ... fixed the problem.

@UbiquitousPhoton
Copy link

Created https://bugzilla.suse.com/show_bug.cgi?id=1236912 - I have two core dumps, but nowhere to upload them currently. Will work on that, unless any suggestions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants