fopen fails under load on Solaris, HUP doesn't work
Hi all, I'm running version 1.6.0rc3 of syslog-ng on Solaris 2.6 and I have a problem where a HUP signal is not correctly processed due to limitations in the Solaris stdio library. I've traced this down to the use of fopen in make_syslog_config() in cfgfile.c. When the server is under load (several hundred TCP connections from clients), the HUP is not processed because fopen() does not work when it receives a file descriptor from open() above 255. The fopen() fails and the rest of the actions to be performed on a HUP are skipped. I see that the fopen is used because of the fread and fwrite calls in cfg-lex.c. Is there any way that lex/flex could be configured to use read/write instead of fread/fwrite, and the call to fopen in cfgfile.c replaced with open? I really don't want to restart syslog-ng every time I need to rotate logs, as the overhead is too high. I'd much rather just HUP so that I can keep the client TCP connections alive via the keep-alive option. Thank you, Ryan Moon rmoon@gocougs.wsu.edu
participants (1)
-
Ryan Moon