I can reproduce the problem (2) and it looks like an upstream bug of CUPS.
For actually reproducing it you do not need to rotate all your log files. It is enough to do the following:
Edit /etc/cups/cupsd.conf, so that you have a line
BrowseAddress 192.168.1.255:631
The IP address must be the broadcast address of your local network, see "Bcast:" entry in the output of "ifconfig". Comment out (Preceed with a "#") any other "BrowseAddress" line. Change the "LogLevel" line to be
LogLevel debug
Now there are two methods to restart CUPS. Whenever you do
sudo /etc/init.d/cupsys restart
the CUPS daemon is actually stopped and restarted. In this case the above configuration works well and you printers continue to get broadcasted. Check with "lpstat -p" on a Linux or Mac client or with "avahi-browse -k -t -v -r -a" on any machine in your network (including the CUPS server).
But whenever you do
sudo /etc/init.d/cupsys force-reload
and that is what logrotate does, the CUPS daemon gets simply a HUP signal (like "sudo killall -HUP cupsd") and in this mode the above configuration fails with the error which you have seen in your error_log.
To work around this bug, use either
BrowseAddress @LOCAL
in case your printers should be advertised on all your local networks or in the case that you have only one local network or lines like
BrowseAddress @IF(eth0)
for each of the interfaces to which the printers should be advertised for the case they should be available only in selected networks. Do a full restart of the CUPS daemon after editing cupsd.conf:
I can reproduce the problem (2) and it looks like an upstream bug of CUPS.
For actually reproducing it you do not need to rotate all your log files. It is enough to do the following:
Edit /etc/cups/ cupsd.conf, so that you have a line
BrowseAddress 192.168.1.255:631
The IP address must be the broadcast address of your local network, see "Bcast:" entry in the output of "ifconfig". Comment out (Preceed with a "#") any other "BrowseAddress" line. Change the "LogLevel" line to be
LogLevel debug
Now there are two methods to restart CUPS. Whenever you do
sudo /etc/init.d/cupsys restart
the CUPS daemon is actually stopped and restarted. In this case the above configuration works well and you printers continue to get broadcasted. Check with "lpstat -p" on a Linux or Mac client or with "avahi-browse -k -t -v -r -a" on any machine in your network (including the CUPS server).
But whenever you do
sudo /etc/init.d/cupsys force-reload
and that is what logrotate does, the CUPS daemon gets simply a HUP signal (like "sudo killall -HUP cupsd") and in this mode the above configuration fails with the error which you have seen in your error_log.
To work around this bug, use either
BrowseAddress @LOCAL
in case your printers should be advertised on all your local networks or in the case that you have only one local network or lines like
BrowseAddress @IF(eth0)
for each of the interfaces to which the printers should be advertised for the case they should be available only in selected networks. Do a full restart of the CUPS daemon after editing cupsd.conf:
sudo /etc/init.d/cupsys restart