Jeroen Massar
2014-Mar-10 11:47 UTC
[nsd-users] nsd4 not detecting changed included files when rebuilding database
Hi, nsd4 is trying to be too smart and thus when a 'reload' or even a 'restart' is issued the database is not being rebuild properly when one uses includes. It seems (I did for once not read the code ;) that nsd checks the filetime of the files as configured in a 'zone' statement, and based on the changetime of that file it then decided to rebuild the zone or not. Hence, if the primary file is not changed, but an included file has changed, the zone will not be rebuild. Quick work-around: touch *, and then a nsd-control reload It would great if the rebuilding logic would either always rebuild zones that contain includes, or possibly better, keep a 'include' list and then based on the actual files did a rebuild or not. I am not sure if it does that now or if it is possinle, but having a per-file 'compiled' version could work here too, then if there is a small include and another big include, only the small one will be reparsed/compiled while the big non-changed one does not have to be handled. Greets, Jeroen
W.C.A. Wijngaards
2014-Mar-10 12:24 UTC
[nsd-users] nsd4 not detecting changed included files when rebuilding database
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Jeroen, On 03/10/2014 12:47 PM, Jeroen Massar wrote:> Hi, > > nsd4 is trying to be too smart and thus when a 'reload' or even a > 'restart' is issued the database is not being rebuild properly when > one uses includes. > > It seems (I did for once not read the code ;) that nsd checks the > filetime of the files as configured in a 'zone' statement, and > based on the changetime of that file it then decided to rebuild the > zone or not. > > Hence, if the primary file is not changed, but an included file > has changed, the zone will not be rebuild. > > Quick work-around: touch *, and then a nsd-control reload > > It would great if the rebuilding logic would either always rebuild > zones that contain includes, or possibly better, keep a 'include' > list and then based on the actual files did a rebuild or not.Thank you for the description, that is certainly a feature that looks like a good idea. Not sure if we can keep track of the included-files in memory, but perhaps we can do that in a simple manner. Best regards, Wouter> I am not sure if it does that now or if it is possinle, but having > a per-file 'compiled' version could work here too, then if there is > a small include and another big include, only the small one will > be reparsed/compiled while the big non-changed one does not have to > be handled. > > Greets, Jeroen _______________________________________________ > nsd-users mailing list nsd-users at NLnetLabs.nl > http://open.nlnetlabs.nl/mailman/listinfo/nsd-users >-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJTHa8YAAoJEJ9vHC1+BF+N5N4P/0Js4vcJMD+7Qklwy3iONOqF pX1ggFW9xCGI2CUInD/BbJe1IWw0NtNoKUMz1llHPON3EORtHoUY1yA3NkPEb86j 6LIUInk4B3agIGqUF9sUlmMCyF+EhZV/rRqdbQtqoFx0WRUZ1tkkGB8+sx73PLfp Uaw5garcRGXpck5+h3rND4m+iISP0Rh05bo2hvHrWBM9cvTyn8DDCbh7HxPykvKx 7xBlqSpxQkL58bPcR/B1x2vvIMlKOX4h6WAk6XHa8FMSGCUEpvxqteFlWJ91+Xpl F4e9j000vp92YqPwQchnjqaiq57wh45IrmKEeU9uv8zJYMVFhQUW0zIblsM1M78/ jlroeef53bOM0I/vEXKicfMTk8YPFSqW6dk8ikWTr+tqHOTqJvjU0n/znrI9inmd QCSbuBD64f3mDr1r+ekP0WuU3urzoHHTpsV7k5cq1LS8R6XoDhFafF6tah+P6knC 2ra33roH8GGpPbynvfP7dlY9oahjeBScWAeqqwrc2mC/a/A4TWslCwXdW00bf/tV AyKF9hjsCmh8ypJZN5fu62GgkJ4dGcWB0xDXTZHEnKgHRQgceWiTHV8mNhFfySDD KfUrqqdWfsSObOJNYVLrG2aPYstRKXoexXIxI1XYBx0GFABTBoH4mJW4L0NTr75k E7Zt3AyjOeQKDDI+UrF7 =jYZV -----END PGP SIGNATURE-----