I've got back in the country and I've started doing more work on this. I've 
found answers to these questions before I found these questions. The 
squid-users mailing list is a bit busier than I expected and I only found this 
message by chance. 

I've thrown truss at the problem and I now have a much clearer idea of what is 
going on.

>>> Henrik Nordstrom <[EMAIL PROTECTED]> 06/25/05 9:25 AM >>>
>On Mon, 20 Jun 2005, Lloyd Parkes wrote:
>> Only one of the two squid processes runs as 'squid' the parent still 
>> runs as 'root'
>This is the way it should be.

I agree. I can see that the command line squid is trying to signal the child 
squid that is running as squid and not the parent that is running as root.

>I would suspect you are running a nightly snapshot or STABLE10 patched 
>with the chroot -k patch, and that there maybe is problems with this 
>patch.

You are entirely correct. I've had a lot of luck in the past with adding 
patches from squid-cache.org to STABLE releases of squid, so I threw in all the 
patches (six of them). 

I noticed that my test machine worked fine, so I ran "truss 
/usr/local/squid/sbin/squid -k reconfigure 2> truss.out" on each machine and 
compared the output. The production machine was doing completely different 
stuff from my test machine. I quickly confirmed that I had different binaries 
on the two machines (bad me). 

Both squids read in the config file, but with the chroot patch, the config file 
gets 'activated'. I'm guessing it's the call to configDoConfigure() that does 
it. Later on squid calls setuid(squid) which sets the real, effective and saves 
user id to squid. It then tries to send the signal to the child squid. 
Unfortunately the child squid is running as
     USER    RUSER   PID  PPID  PGID   SID COMMAND
    squid     root   768   766   766   766 (squid) -sDYf 
/usr/local/squid/etc/squid.conf

and the real user id of the two processes need to match if the signal is to be 
delivered. 

This is all on Solaris 9, but other systems should be broadly similar.

I can fix this by simply not using any of the extra patches. Hopefully this 
info will help with any future work on the chroot patch. 

Cheers,
Lloyd

Reply via email to