It happened again.....
But first a little summary of what I did to prevent (what happened again)
o I disabled the pinger.exe helper because I don't need it
o I installed a test binary which should fix these problems:
1 - Windows handles are inherited from child helpers, this is wrong
2 - UDP based helpers don't detects properly Squid shutdown and not
terminate itself.
o I changed the fs from ufs to awin32
Well....yesterday evening it happened again:
Squid started the storeDirWriteCleanLogs function and got a problem after that:
2003/08/14 20:23:34| storeDirWriteCleanLogs: Starting...
2003/08/14 20:23:34| WARNING: Closing open FD 10
2003/08/14 20:23:35| 65536 entries written so far.
2003/08/14 20:23:37| 131072 entries written so far.
2003/08/14 20:23:39| 196608 entries written so far.
2003/08/14 20:23:41| 262144 entries written so far.
2003/08/14 20:23:43| 327680 entries written so far.
2003/08/14 20:23:47| 393216 entries written so far.
2003/08/14 20:23:56| 458752 entries written so far.
2003/08/14 20:24:02| Finished. Wrote 524285 entries.
2003/08/14 20:24:02| Took 28.0 seconds (18703.8 entries/sec).
FATAL: logfileWrite: c:/squid/log/store.log: (13) Permission denied
Squid Cache (Version 2.5.STABLE3-NT-CVS): Terminated abnormally.
Well - I saved the FD information a couple of hours before it happened:
File Type Tout Nread * Nwrite * Remote Address Description
---- ------ ---- -------- -------- --------------------- ------------------------------
0 Log 0 0 0 stdin
1 Log 0 0 0 stdout
2 Log 0 0 0 stderr
3 Log 0 0 0 c:/squid/log/cache.log
4 File 0 0 578059 c:/squid/log/access.log
5 File 0 0 580474 c:/squid/log/store.log
7 Socket 0 0 0 127.0.0.1.3245 unlinkd -> squid
8 Socket 0 0 0 .0 unlinkd.exe(2328) CHILD socket
9 Socket 0 28046 8924 .0 DNS Socket
10 Socket 0 0* 0 .0 HTTP Socket
12 Socket 1 7068* 2211 204.53.201.75.1475 Waiting for next request
13 Socket 0 0* 0 .0 ICP Socket
14 Socket 0 0* 0 .0 HTCP Socket
15 Socket 0 0* 0 .0 SNMP Port
16 File 0 0 26016 e:/cache/swap.state
Well...if Squid is supposed to close the store.log right after it starts the
storeDirWriteCleanLogs function then it obviously got confused with the file
descriptors.
What can I do to fix this problem? So far I only found some kind of workaround:
I rotate the logfiles more often because everytime I rotate the logfiles squid starts
the
storeDirWriteCleanlogs function but when I rotate the logfiles this function works and
I
don�t get any permission denied errors. The error only occurs when squid starts this
function
without rotating the logfiles.
thanks for your help,
Markus Wagner