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