On Tue, 2007-12-04 at 19:32 +0100, Martin Ervius wrote:
I had done a 'make clean' before, but I think I found the problem when looking through the config parameters.
Instead of my config file, I used the example one and it didn't segfault. I narrowed it down to the 'destination' parameters which seem to need a variable like ($HOST or $FACILITY) in the destination file (havent tried this version with other destinations than files).
In my config I had destination path names like '/var/log/tcp.log'. When I changed that to '/var/log/$HOST_tcp.log' it didn't die anymore. Can you reproduce this behaviour? Apparently It doesn't matter where a variable is present on each line, but it needs one on every destination.
I proceeded with testing the SIGHUP problem and as far as I can see your patch works perfectly. I tested as I had done before and there was no loss of logs. I even stress tested a bit by sending 10 HUP's per second while syslog-ng received five million rows (@25000 rows/sec) from another server. Everything still worked fine :)
Thanks for narrowing this down. It was a possible NULL deref that I've fixed now. I've committed the patch to mainline, and I've also pushed it to our git repository. http://git.balabit.hu/?p=bazsi/syslog-ng-2.0.git;a=summary -- Bazsi