Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: Apache 2.2.5 / 2.2.6 piped log-file problem |
|
Author |
|
Ol'man
Joined: 12 Sep 2007 Posts: 1 Location: Rostock, Baltic coast, EU, Planet Earth
|
Posted: Wed 12 Sep '07 14:54 Post subject: Apache 2.2.5 / 2.2.6 piped log-file problem |
|
|
I just have test-installed httpd-2.2.6-p2-win32-x86-ssl vs. httpd-2.2.5-win32-x86-ssl (both the binaries from AL) with special attention to the well-known piped log-file problem (ErrorLog/CustomLog with rotatelogs et. al. )
Had to find out that 2.2.5 threw me back to the annoying situation that Apache
- could not start as service when a piped ErrorLog directive goes within default server. and
- zombied rotatelog.exe processes are hanging around after stopping Apache (apparently, there are already zombies - one for each piped log file - just after starting the service, and their number doubles upon stopping).
Piped CustomLog/ErrorLog directives within VirtualHosts are ok., CustomLog within default server writes "Error in my_thread_global_end(): 1 threads didn't exit" into the log file.
2.2.6 seemed to have this solved, however, it still reveals that every piped logger appears twice (each under a cmd.exe shell).
And here go some of my thoughts, regarding a possible (?) future solution of this messy things (I am not a programmer, so I can't judge ultimatively if the following aims are feasible):
Wouldn't it be better if
a) there were only one sub-process for each log file (aren't they vulnerable to be inter-locking each other?)
b) the piping to rotatelogs.exe et. al. could be done w/o invoking them through cmd.exe (which eats valuable ressources)
??
Since at least rotatelogs.exe (and surely other tools, like cronolog, are too) reveals to be a genuine windows executable, b) should be possible somehow.
Maybe some problems within apache code result from different behaviour of cmd.exe under different Windows versions, and that's one more good reason to get rid of it?
I know that the developers primarily want to do similar things with similar methods on each supported platform, but the whole piping thing, however, appears to be far away from being compatible between *ix/Windows. For example, under Windows it was never sufficient to specify the process we are piping to with relative path ("|bin/rotatelogs.exe...") like proposed in the docs (which confuses me everytime I have to switch between the platforms). I think this is basically due to the way Windows presents an environment to services, which may differ too fundamentally from *ix. And that may, in turn, lead towards to a more Windows-ish, thus straight-forward solution of the affected code parts.
Any thoughts?
(time for a great thank you to the AL team for taking care of all this stuff) |
|
Back to top |
|
admin Site Admin
Joined: 15 Oct 2005 Posts: 692
|
|
Back to top |
|
|
|
|
|
|