[syslog-ng]Syslog Logging Delay

Brian E. Seppanen seppy@chartermi.net
Fri, 30 Mar 2001 10:44:21 -0500 (EST)


On Fri, 30 Mar 2001, Balazs Scheidler wrote:

> if you have the full strace log from startup, you should see where syslog-ng
> opens fd #3 by examining the return values from open() or socket(). If you
> don't, you could still check /proc/<pid>/fd/ directory where the symlink
> named #3 points to, or use lsof -p <pid>

You learn something new every day.  That explains so much that I didn't
understand about proc earlier...  I had no idea those numeric directories
correlated with pids, it just escaped me.  Thanks,

It seems to do it on fd3 regardless of what it correlates too.  Earlier
this was set as a filter to match on a specific entry.  lsof -p indicates
that it is now associated with /proc/kmsg.  I've removed the specific
filter.  In fact I've cleaned up a lot of unnecessary junk.  However, it
still seems to block on that file descriptor read at various times.  It
normally restarts though.  However, last night I killed the strace,
cleaned up my config and thought I'd be okay and restarted it in verbose
mode.  I left it running in verbose mode, and at 6:30 a.m. it was doing
idle garbage collection every second.  I had 900 objects alive, and then
it just stopped.  No more logging.  Process still running, no more
garbage collection, nothing.   The possibility remains that I missread
the strace output earlier  and that /proc/kmesg has always been
associated with fd3, and there could be some problems with reading for
kernel messages at certain points... It would make more sense that
/proc/kmesg would be assocatied with a low number file descriptor than a
specific filter, so I'm leaning toward that theory.

Is it possible for me to run syslog and syslog-ng concurrently?  I'm
thinking what I could do as a workaround and test case is run syslog to
capture kernel messages only, and leave syslog-ng to log everything else.

I also noticed that when I HUPped the process, while stracing, debugging
and verbose I get tons of these messages.  And they repeat a lot and
frequently.  These are some examples.


) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (43)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (41)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (42)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (43)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (44)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (42)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (43)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (44)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (45)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (43)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (44)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (45)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (46)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (44)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (45)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (46)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (47)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (45)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (46)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (47)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (48)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (46)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (47)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (48)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (49)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (47)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (48)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (49)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (50)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (48)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (49)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (50)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (51)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (49)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (50)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (51)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (52)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (50)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (51)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (52)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (53)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (51)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (52)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (53)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (54)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (52)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (53)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (54)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (55)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (53)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (54)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (55)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (56)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (54)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (55)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (56)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (57)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (55)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (56)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (57)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (58)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (56)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (57)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (58)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (59)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (57)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (58)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (59)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (60)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (58)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (59)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (60)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (61)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (59)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (60)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (61)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (62)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (60)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (61)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (62)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (63)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (61)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (62)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (63)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (64)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (62)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (63)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (64)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (65)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (63)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (64)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (65)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (66)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (64)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (65)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (66)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (67)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (65)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (66)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (67)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (68)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (66)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (67)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (68)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (69)
) = 58
write(2, "gc_mark: Marking object of class"..., 55gc_mark: Marking object
of class 'log_connection' (67)
) = 55
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (68)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (69)
) = 58
write(2, "gc_mark: Marking object of class"..., 58gc_mark: Marking object
of class 'log_endpoint_info' (70)
) = 58

Thanks,

Brian Seppanen
Charter Communications
Regional Data Center				906-228-4226 ext 23
Marquette, MI					seppy@chartermi.net