testing with syslog-ng 1.9.9
recently configured a pipe destination (config below)
log processing to the pipe occurs as expected - then get a segmentation fault
have seen it run perfectly for days, other times hours/minutes
Linux distribution is FC4 (also RHEL 3 and 4)
server has handled 500k-2M transactions daily over the past week (works fine when logging to file).
below if the info I've collected so far. Let me know if you need additional.
any ideas?
strace -p {pid} output:
time([1142745045]) = 1142745045
time([1142745045]) = 1142745045
gettimeofday({1142745045, 307328}, NULL) = 0
poll([{fd=6, events=POLLOUT, revents=POLLOUT}, {fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 3, 550317) = 1
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 625) = 625
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 625) = 625
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 625) = 625
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 625) = 625
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 625) = 625
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 585) = 585
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 746) = 746
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1279, ...}) =0
write(6, "INSERT INTO logs (\n host,\n "..., 644) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1142745045, 310203}, NULL) = 0
time(NULL) = 1142745045
time(NULL) = 1142745045
gettimeofday({1142745045, 310286}, NULL) = 0
time(NULL) = 1142745045
time(NULL) = 1142745045
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
kill(12488, SIGSEGV) = 0
sigreturn() = ? (mask now [])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
internal shows nothing out of the ordinary.
daemon in foreground w/debug:
Reducing stack by rule 2 (line 188), stmt ';' stmts -> stmts
Stack now 0 9 25
Entering state 74
Reducing stack by rule 2 (line 188), stmt ';' stmts -> stmts
Stack now 0
Entering state 8
Reducing stack by rule 1 (line 184), stmts -> start
Stack now 0
Entering state 7
Now at end of input.
Segmentation fault
Here is the config:
#-------------------------------------------------------------------------
options {
chain_hostnames(no); #default yes
keep_hostname(yes); #default no
create_dirs(no); #default
use_dns(no); #default yes
use_fqdn(no); #default
owner(root);
group(root);
perm(0600);
};
###############################################################################
# sources
source abs_udp514 {
udp(ip(0.0.0.0) port(514));
};
source abs_localhost {
internal();
};
###############################################################################
# destinations
destination abd_localhost {
file(
"/var/log/localhost.log"
);
};
destination abd_mysql {
pipe(
"/tmp/mysql.pipe"
template("INSERT INTO logs (
host,
facility,
priority,
datetime,
date,
time,
year,
month,
day,
hour,
min,
sec,
week,
unixtime,
tzoffset,
tz,
program,
msg
) VALUES (
'$HOST',
'$FACILITY',
'$PRIORITY',
'$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$YEAR-$MONTH-$DAY',
'$HOUR:$MIN:$SEC',
'$YEAR',
'$MONTH',
'$DAY',
'$HOUR',
'$MIN',
'$SEC',
'$WEEK',
'$UNIXTIME',
'$TZOFFSET',
'$TZ',
'$PROGRAM',
'$MSG');\n"
)
template_escape(yes)
);
};
###############################################################################
# logs
log {
source(abs_udp514);
destination(abd_mysql);
};
log {
source(abs_localhost);
destination(abd_localhost);
};
#
#-------------------------------------------------------------------------
Thanks,