-
-
Notifications
You must be signed in to change notification settings - Fork 361
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
alloc_reg_obtain() core dump #728
Comments
Another server, another location. Very similar but not exactly the same backtrace.
|
The code turns out to perform a double alloc_reg_release when a serviced query create fails. That should happen only very sporadically. It matches the description and stack traces that you report. I fixed it in the commit, but I have not been able to test that it fixes these stack traces. I hope that it fixes the problem. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
Unbound allocator is storing variable to unallocated address.
To reproduce
I have not been able to reproduce this issue.
Expected behavior
No core dump when a dns name is queried.
System:
unbound -V
output:Version 1.16.0
Configure line: --enable-dnstap --disable-rpath --with-libevent --with-pidfile=/var/run/unbound.pid --prefix=/usr --sysconfdir=/etc
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 1.1.1n 15 Mar 2022
Linked modules: dns64 respip validator iterator
Additional information
This does not happen very often. My hunch is that memory allocator is
trying to store data to variable that another thread unallocated in a thread
race that should use locking, or something (sorry, I haven't followed how
unbound is implemented, maybe hazard pointers or RCU should be used or is
going wrong).
This is issue might be the same as #586
The text was updated successfully, but these errors were encountered: