[Opendnssec-user] ods-signerd 1.4.0a1 running out of memory and crashing on null context
Paul Wouters
paul at nohats.ca
Mon May 21 21:11:12 UTC 2012
Looks like ods-signerd ran out of memory after a few days
/var/log/messages-20120520:May 21 00:27:15 signer02 kernel: [58267] 630 58267 1990597 795193 2 0 0 ods-signerd
/var/log/messages-20120520:May 21 00:27:15 signer02 kernel: Out of memory: Kill process 58267 (ods-signerd) score 599 or sacrifice child
/var/log/messages-20120520:May 21 00:27:15 signer02 kernel: Killed process 58267, UID 630, (ods-signerd) total-vm:7962388kB, anon-rss:3180692kB, file-rss:80kB
This is for a 1M test zone, no optout, on a machine with 8GB of RAM.
This is using 1.4.0a1 with the delete rrset/nsec3 patch applied.
It has signed this zone repeatedly before, so my guess is that there is
a leak causing this to happen over the course of a few days. I have
added smoe memory statistics logging to confirm this.
On restarting the signer I got :
ods-signerd: signer/rrset.c:667: rrset_sign: assertion ctx failed
(note that the machine is using ldns 1.6.13rc1)
(gdb) bt full
#0 0x0000003988232885 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x0000003988234065 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x0000000000418016 in ods_fatal_exit (format=<value optimized out>)
at shared/log.c:368
args = {{gp_offset = 40, fp_offset = 48,
overflow_arg_area = 0x7fffeebfcde0,
reg_save_area = 0x7fffeebfcd20}}
#3 0x000000000041fd5e in rrset_sign (ctx=0x0, rrset=0x7fffe800d3c0,
signtime=1337631628) at signer/rrset.c:667
zone = 0x0
newsigs = 0
reusedsigs = 0
rrsig = 0x0
rr_list = 0x0
signature = 0x0
locator = 0x0
inception = 0
expiration = 0
i = 0
domain = 0x0
dstatus = LDNS_RR_TYPE_FIRST
#4 0x00000000004119e1 in worker_drudge (worker=0x880c10)
at daemon/worker.c:659
engine = 0x857480
zone = 0x85ca80
status = <value optimized out>
ctx = 0x0
task = <value optimized out>
rrset = 0x7fffe800d3c0
superior = 0x88a7f0
#5 worker_start (worker=0x880c10) at daemon/worker.c:704
__func__ = "worker_start"
#6 0x000000000040d6c1 in worker_thread_start (arg=<value optimized out>)
at daemon/engine.c:366
worker = 0x880c10
#7 0x00000039886077f1 in start_thread () from /lib64/libpthread.so.0
More information about the Opendnssec-user
mailing list