Update returns FORMERR: ran out of space

Mark Andrews marka at isc.org
Wed Feb 24 23:02:45 UTC 2010


In message <20100224091831.GA3183 at nic.fr>, Stephane Bortzmeyer writes:
> On Wed, Feb 24, 2010 at 11:32:35AM +1100,
>  Mark Andrews <marka at isc.org> wrote 
>  a message of 35 lines which said:
> 
> > Turn the debugging up to 3. 
> 
> With 'severity debug 30', all I get is:
> 
> 24-Feb-2010 10:17:01.047 update: debug 8: client ::1#45986: updating zone 'to
> to.fr/IN': prerequisites are OK
> 24-Feb-2010 10:17:01.047 update: debug 8: client ::1#45986: updating zone 'to
> to.fr/IN': update section prescan OK
> 24-Feb-2010 10:17:01.047 update: info: client ::1#45986: updating zone 'toto.
> fr/IN': adding an RR at 'toto.fr' DNSKEY
> 24-Feb-2010 10:17:01.048 update: debug 3: client ::1#45986: updating zone 'to
> to.fr/IN': checking for NSEC3PARAM changes
> 24-Feb-2010 10:17:01.057 update: error: client ::1#45986: updating zone 'toto
> .fr/IN': RRSIG/NSEC/NSEC3 update failed: ran out of space
> 24-Feb-2010 10:17:01.057 update: debug 8: client ::1#45986: updating zone 'to
> to.fr/IN': rolling back
> 
> I log 'dnssec' events:
> 
> logging {
>       channel debugging {
>          file "/tmp/bind-dnssec.log" versions 2 size 5m;
>      	 severity debug 30;
> 	 print-time yes;
>          print-severity yes;
>          print-category yes;
>        };
>   category update {
>     debugging;
>   };
>   category dnssec {
>     debugging;
>   };
> };
> 
> 
> But I do not see them in the log.

You won't see DNSSEC events as DNSSEC basically covers validation.

Try this patch.  It resets the scratch space 'data' used by
dns_dnssec_sign().

Index: bin/named/update.c
===================================================================
RCS file: /proj/cvs/prod/bind9/bin/named/update.c,v
retrieving revision 1.176.4.3
diff -u -r1.176.4.3 update.c
--- bin/named/update.c	30 Dec 2009 03:55:03 -0000	1.176.4.3
+++ bin/named/update.c	24 Feb 2010 22:58:21 -0000
@@ -1941,6 +1941,7 @@
 		CHECK(update_one_rr(db, ver, diff, DNS_DIFFOP_ADDRESIGN, name,
 				    rdataset.ttl, &sig_rdata));
 		dns_rdata_reset(&sig_rdata);
+		isc_buffer_init(&buffer, data, sizeof(data));
 		added_sig = ISC_TRUE;
 	}
 	if (!added_sig) {
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org



More information about the bind-users mailing list