Hi, I've came across a weird bug in syslog-ng OSE 3.1.1, which is also present in 3.2.2: when I add a non-existant destination to syslog-ng config: [root@test-syslog-ng ~]# echo 'log { source(s_sys); filter(f_default); destination(d_nonexistent); };' >> /etc/syslog-ng/syslog-ng.conf it passes syntax checking ($SYSLOGNG_OPTIONS is basically --no-caps -p /pid/file/path - I need no-caps because this is virtual environment): [root@test-syslog-ng ~]# . /etc/sysconfig/syslog-ng && syslog-ng -s $SYSLOGNG_OPTIONS [root@test-syslog-ng ~]# echo $? 0 but after /etc/init.d/syslog-ng reload (HUP) this happens: Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Error in configuration, unresolved destination reference; destination='d_nonexistent' Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Error in configuration, unresolved destination reference; destination='d_nonexistent' Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Error initializing new configuration, reverting to old config; Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Error initializing new configuration, reverting to old config; Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Configuration reload request received, reloading configuration; Feb 18 14:17:40 test-syslog-ng syslog-ng[30198]: Configuration reload request received, reloading configuration; Afterwards, everything is logged twice(!) [root@test-syslog-ng ~]# R=$RANDOM; echo $R; logger -t test $R 578 [root@test-syslog-ng ~]# grep "test: $R" /var/log/messages Feb 18 14:38:28 test-syslog-ng test: 578 Feb 18 14:38:28 test-syslog-ng test: 578 [root@test-syslog-ng ~]# Another reload, and afterwards every message is logged 3 times: [root@test-syslog-ng ~]# service syslog-ng reload Reloading syslog-ng: [ OK ] [root@test-syslog-ng ~]# R=$RANDOM; echo $R; logger -t test $R 13143 [root@test-syslog-ng ~]# grep "test: $R" /var/log/messages Feb 18 14:39:57 test-syslog-ng test: 13143 Feb 18 14:39:57 test-syslog-ng test: 13143 Feb 18 14:39:57 test-syslog-ng test: 13143 [root@test-syslog-ng ~]# Can anyone confirm this behaviour? It's all fine if I stop syslog-ng and start it again (well, try to start): [root@test-syslog-ng ~]# service syslog-ng start Starting syslog-ng: Error in configuration, unresolved destination reference; destination='d_nonexistent' [FAILED] I see two bugs here: 1) syntax checking (-s) is, well, just syntax checking - but doesn't guarantee that config is valid. 2) after reloading configuration with unresolved destination N times, every message is logged 1+N times. My environment: CentOS5, syslog-ng (without any patches) built from my own .spec, which I made by adapting EPEL srpm (2.x) to 3.x. [root@test-syslog-ng ~]# syslog-ng -V syslog-ng 3.2.2 Installer-Version: 3.2.2 Revision: ssh+git://bazsi@git.balabit//var/scm/git/syslog-ng/syslog-ng-ose--mainline--3.2#master#1d3f396485eb47b1ff6aa18ac4f1c4cd51c0ea4c Compile-Date: Jan 26 2011 11:44:50 Enable-Threads: on Enable-Debug: off Enable-GProf: off Enable-Memtrace: off Enable-Sun-STREAMS: off Enable-IPv6: on Enable-Spoof-Source: on Enable-TCP-Wrapper: on Enable-SSL: on Enable-SQL: on Enable-Linux-Caps: on Enable-Pcre: off Enable-Pacct: off [root@test-syslog-ng ~]# Config file is pretty straightforward: [root@test-syslog-ng ~]# cat /etc/syslog-ng/syslog-ng.conf @version: 3.2 options { flush_lines (0); time_reopen (10); log_fifo_size (1000); long_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (yes); keep_hostname (yes); }; source s_sys { file ("/proc/kmsg" program_override("kernel") flags(no-multi-line)); unix-stream ("/dev/log" flags(no-multi-line)); internal(); # udp(ip(0.0.0.0) port(514) flags(no-multi-line)); }; destination d_cons { file("/dev/console" group("root")); }; destination d_mesg { file("/var/log/messages" group("root")); }; destination d_auth { file("/var/log/secure" group("root")); }; destination d_mail { file("/var/log/maillog" group("root") flush_lines(10)); }; destination d_spol { file("/var/log/spooler" group("root")); }; destination d_boot { file("/var/log/boot.log" group("root")); }; destination d_cron { file("/var/log/cron" group("root")); }; destination d_kern { file("/var/log/kern" group("root")); }; destination d_mlal { usertty("*"); }; # Facilities/levels filter f_kernel { facility(kern); }; filter f_default { level(info..emerg) and not (facility(mail) or facility(authpriv) or facility(cron)); }; filter f_auth { facility(authpriv); }; filter f_mail { facility(mail); }; filter f_emergency { level(emerg); }; filter f_news { facility(uucp) or (facility(news) and level(crit..emerg)); }; filter f_boot { facility(local7); }; filter f_cron { facility(cron); }; log { source(s_sys); filter(f_kernel); destination(d_kern); }; log { source(s_sys); filter(f_default); destination(d_mesg); }; log { source(s_sys); filter(f_auth); destination(d_auth); }; log { source(s_sys); filter(f_mail); destination(d_mail); }; log { source(s_sys); filter(f_emergency); destination(d_mlal); }; log { source(s_sys); filter(f_news); destination(d_spol); }; log { source(s_sys); filter(f_boot); destination(d_boot); }; log { source(s_sys); filter(f_cron); destination(d_cron); }; [root@test-syslog-ng ~]# Regards, -- Jakub Jankowski|shasta@toxcorp.com|http://toxcorp.com/ GPG: FCBF F03D 9ADB B768 8B92 BB52 0341 9037 A875 942D