Bug 145 - NSD doesn't support multiple AXFR simultaneously
NSD doesn't support multiple AXFR simultaneously
Product: NSD
Classification: Unclassified
Component: NSD Code
All All
: P2 normal
Assigned To: NSD team
Depends on:
  Show dependency treegraph
Reported: 2006-09-14 21:19 CEST by Cesar henrique Keiti Kuroiwa
Modified: 2006-09-27 11:23 CEST (History)
0 users

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Cesar henrique Keiti Kuroiwa 2006-09-14 21:19:44 CEST
NSD 3.0.1, when working as a slave server for two different zones, was
unable  to  perform AXFR  transfer  for both  zones.   As  soon as  it
finishes  transfering  the  first   (and  smaller)  zone,  the  server
apparently  receives a  signal and  reloads, reporting  several errors
afterwards and not completing the transfer for the second (and bigger)
zone. Below is a portion of the log extracted:

[1158256625] nsd[9692]: notice: nsd started (NSD 3.0.1), pid 9692
[1158256626] nsd[9692]: warning: signal received, reloading...
[1158256627] nsd[9695]: info: memory churn is 815240 bytes wasted
[1158256627] nsd[9693]: info: Zone org.br serial 0 is updated to 2006091437.
[1158256636] nsd[9695]: warning: signal received, reloading...
[1158256636] nsd[9697]: info: error processing diff file
[1158256636] nsd[9697]: error: unable to load the diff file: No such file or
[1158256636] nsd[9695]: error: handle_reload_cmd: reload closed cmd channel
[1158256636] nsd[9695]: warning: Reload process 9697 failed with status 256,
+continuing with old database

These results could be observed using either Bind 9.3.2 or an internal
dns server implementation as master for the zones.
After being manually restarted, NSD continues to work normally when receiving only one AXFR or multiple IXFR transfers.
Comment 1 Wouter Wijngaards 2006-09-15 10:00:37 CEST
Could you re-run with (--enable-checking used for ./configure) and nsd -L 1 as an option to produce debug log messages? These will give (loads and loads) of messages, also for the reload process and why its failing.

Somehow your diff file got corrupted it seems.

Am I correct in saying that nsd gave an error on reload. Then you stopped and started it again, and it started fine *including the AXFR transfer* that reload  barfed on? Since the routine used for loading the zone is the same, I am very interested in that fact :-)

Since the log file is very big, could you email me directly with a compressed file? (wouter@nlnetlabs.nl)

NSD was designed to do these transfers while reloading finished transfers. To do that it writes the transfers it is doing to the end of the diff file. And the reader reads from the diff file.
Comment 2 Wouter Wijngaards 2006-09-27 11:23:19 CEST
I have fixed the bug. You need a fast and slow zone transfer to trigger it.
You have this bug if your log file says: 
   unknown part ... len ...
   error processing diff file
during the reloads of your simultaneous zone transfer.

The fix is in svn, and will be in release 3.0.2.