unbound crashes under high query load if num-threads > 1
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unbound (Debian) |
Fix Released
|
Unknown
|
|||
unbound (Ubuntu) |
Fix Released
|
High
|
Scott Kitterman | ||
Precise |
Won't Fix
|
High
|
Unassigned | ||
Quantal |
Won't Fix
|
High
|
Unassigned | ||
Raring |
Fix Released
|
High
|
Scott Kitterman |
Bug Description
$ gdb /usr/sbin/unbound core.28338
GNU gdb (Ubuntu/Linaro 7.4-2012.
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://
Reading symbols from /usr/sbin/
done.
[New LWP 28345]
[New LWP 28338]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_
Core was generated by `unbound'.
Program terminated with signal 11, Segmentation fault.
#0 RSA_new_method (engine=<optimized out>) at rsa_lib.c:191
191 rsa_lib.c: No such file or directory.
(gdb) bt
#0 RSA_new_method (engine=<optimized out>) at rsa_lib.c:191
#1 0x00007f7d1a04a0f4 in ldns_key_
#2 0x0000000000469aea in setup_key_digest (keylen=<optimized out>,
key=<optimized out>, digest_
evp_
#3 verify_canonrrset (reason=
key=<optimized out>, sigblock_
sigblock=
buf=
#4 dnskey_
ve=0x18f0310, now=1350983573, rrset=0x7f7d106
dnskey=
buf_
at validator/
#5 0x000000000043039c in dnskeyset_
sortree=
rrset=
at validator/
#6 dnskeyset_
dnskey=
at validator/
#7 0x0000000000432ea4 in val_verify_rrset (reason=
sigalg=
ve=0x18f0310, env=0x1920298) at validator/
#8 val_verify_
kkey=<optimized out>, reason=
#9 0x000000000042e9f8 in list_is_secure (reason=<optimized out>,
kkey=<optimized out>, num=<optimized out>, list=<optimized out>,
ve=<optimized out>, env=<optimized out>) at validator/
#10 nsec3_prove_nods (reason=
qinfo=
env=0x1920298) at validator/
#11 ds_response_
rcode=
at validator/
#12 process_
id=<optimized out>, rcode=<optimized out>, msg=<optimized out>,
qinfo=
#13 0x0000000000444d61 in val_inform_super (qstate=
super=
#14 0x000000000046191b in mesh_walk_supers (mesh=0x7f7d105
mstate=
#15 0x0000000000431724 in mesh_continue (ev=<synthetic pointer>,
s=<optimized out>, mstate=
at services/
#16 mesh_run (mesh=0x7f7d105
e=0x0) at services/
#17 0x0000000000431ed6 in worker_
arg=
at daemon/worker.c:283
#18 0x000000000041f34b in serviced_
error=0, c=0x7f7d1033d520, rep=0x7f7d177b1ca0)
at services/
#19 0x0000000000428d71 in serviced_
arg=
at services/
#20 0x000000000041bbd8 in outnet_
arg=
#21 outnet_udp_cb (c=0x7f7d1033d520, arg=0x7f7d100b2aa0,
error=
at services/
#22 0x0000000000418144 in comm_point_
event=
#23 0x00007f7d19ded94c in event_base_loop () from /usr/lib/
#24 0x000000000044db5c in comm_base_dispatch (b=<optimized out>)
at util/netevent.c:252
#25 0x000000000046944e in worker_work (worker=0x191eeb0)
at daemon/
#26 thread_start (arg=0x191eeb0) at daemon/daemon.c:386
#27 0x00007f7d19303e9a in start_thread ()
from /lib/x86_
#28 0x00007f7d19030cbd in clone () from /lib/x86_
#29 0x0000000000000000 in ?? ()
(gdb)
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: unbound 1.4.16-1
ProcVersionSign
Uname: Linux 3.2.0-24-generic x86_64
ApportVersion: 2.0.1-0ubuntu14
Architecture: amd64
Date: Tue Oct 23 09:16:53 2012
InstallationMedia: Ubuntu-Server 11.04 "Natty Narwhal" - Release amd64 (20110426)
ProcEnviron:
TERM=screen
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: unbound
UpgradeStatus: Upgraded to precise on 2012-04-27 (178 days ago)
mtime.conffile.
Changed in unbound (Debian): | |
status: | Unknown → Confirmed |
Changed in unbound (Ubuntu Precise): | |
milestone: | ubuntu-12.04.2 → ubuntu-12.04.3 |
Changed in unbound (Debian): | |
status: | Confirmed → Fix Released |
Some additional details:
- This bug is triggered only if "num-threads" setting in unbound.conf is higher than 1. Therefore a simple workaround is to reduce the amount of threads to 1 (which is the default).
- A description of the problem and a patch is available at https:/ /unbound. net/pipermail/ unbound- users/2012- September/ 002571. html (see the attachment at the end of that message). The patch does not apply cleanly against Unbound 1.4.16 but it is simple enough to fix it.
- The fix is committed in Unbound SVN repository at r2733. It will be included in the next Unbound version.
I am attaching a patch which applies cleanly against 1.4.16 to this bug.