commit 25a2d94974c7befd13f90e52b61e297c31ae52e9

simo idra at samba.org
Thu Sep 16 10:26:30 MDT 2010


On Wed, 2010-09-15 at 22:39 +0200, Björn Jacke wrote:
> On 2010-09-15 at 16:17 -0400 simo sent off:
> > lp_printcap_cache_time() is used at a higher level for the automatic
> > reload, I am not sure it is correct to check it here too. This
> function
> > is meant to avoid rapid firing refreshes but not to delay them for
> very
> > long times.
> 
> es, it was used in smbd/process.c - but just because there was no
> other level
> of caching available. The caching of rintcap per client was broken by
> design,
> see bug 6448 for that. This is exactly the place where
> lp_printcap_cache_time
> should be placed, it should be obsolete in smbd/process.c then.
> Without using
> printcap cahe time at this place a large print server will pull all
> printers
> every second which isn't fun if you have a cups server with hundreds
> of
> printer. ;-)

Ok, jelmer asking questions on IRC reminded me in what case using
lp_printcap_cache_time() interferes with correct behavior here :-)

When you send a SIGHUP on purpose, we force a reload of all information
(configuration and printers list).
If we unconditionally check for lp_printcap_cache_time() here then we
won't respect the request to forcibly reload.

The 1 second delay I checked there was to avoid that all processes will
cause separate reloads, but was short enough that it allowed a reload of
printers when we were asked.


Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>



More information about the samba-technical mailing list