From: Thomas E. <tho...@sl...> - 2005-01-13 19:59:58
|
Hi An issue with prefparsed using all the CPU when configured for "Method 4" was mentioned in post by Tim Wuyts at the end of November. No resolution was ever posted as far as I can tell. Now, I am coming across the same problem. I did try Yves' suggestion to replace the last argument in the select() call with NULL, but it had no effect. I have far less services checks than the Tim, only about 120. The host is a 3GHz P4 with 1GB of RAM running RHEL3u4. Nagios is version 2.0b1, plugins v1.4-beta1 and perfparse is 0.104.8 I ran perfparsed with strace and it appears to be running fine for a few rounds of events. Then some type of error message is starting to appear in the message buffer: "Command xxx unknown. Type 'help' for help." It then quickly gets into self degenerating loop trying to deal with the error message by putting out more of them. When writing into a file instead of a pipe, I never see these messages. Below is a short extract of the 'strace' once it got into trouble, it gets very large very quickly. If more of the strace can be of any help I can post a larger section. thanks, Thomas --- strace ../bin/perfparsed --- ... select(5, [4], NULL, NULL, NULL) = 1 (in [4]) rt_sigprocmask(SIG_BLOCK, [INT PIPE TERM], [], 8) = 0 read(4, "and \'Comma", 10) = 10 read(4, "nd\' unknow", 10) = 10 read(4, "n.\nType \'h", 10) = 10 write(4, "Command \'", 9) = 9 write(4, "Command", 7) = 7 write(4, "\' unknown.\nType \'help\' for help."..., 33) = -1 EAGAIN (Resource temporarily unavailable) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 utime("/usr/local/nagios/var/storage_modules.status", NULL) = 0 time(NULL) = 1105566327 time(NULL) = 1105566327 waitpid(-1, NULL, WNOHANG) = -1 ECHILD (No child processes) select(5, [4], NULL, NULL, NULL) = 1 (in [4]) rt_sigprocmask(SIG_BLOCK, [INT PIPE TERM], [], 8) = 0 read(4, "elp\' for h", 10) = 10 read(4, "elp.\nComma", 10) = 10 write(4, "Command \'", 9) = 9 write(4, "Type", 4) = 4 write(4, "\' unknown.\nType \'help\' for help."..., 33) = -1 EAGAIN (Resource temporarily unavailable) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 utime("/usr/local/nagios/var/storage_modules.status", NULL) = 0 time(NULL) = 1105566327 time(NULL) = 1105566327 waitpid(-1, NULL, WNOHANG) = -1 ECHILD (No child processes) select(5, [4], NULL, NULL, NULL) = 1 (in [4]) rt_sigprocmask(SIG_BLOCK, [INT PIPE TERM], [], 8) = 0 read(4, "nd \'TypeCo", 10) = 10 read(4, "mmand \'Com", 10) = 10 read(4, "mand\' unkn", 10) = 10 read(4, "own.\nType ", 10) = 10 write(4, "Command \'", 9) = 9 write(4, "Command", 7) = 7 write(4, "\' unknown.\nType \'help\' for help."..., 33) = 33 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 utime("/usr/local/nagios/var/storage_modules.status", NULL) = 0 time(NULL) = 1105566327 time(NULL) = 1105566327 waitpid(-1, NULL, WNOHANG) = -1 ECHILD (No child processes) select(5, [4], NULL, NULL, NULL) = 1 (in [4]) rt_sigprocmask(SIG_BLOCK, [INT PIPE TERM], [], 8) = 0 read(4, "\'help\' for", 10) = 10 read(4, " help.\nCom", 10) = 10 write(4, "Command \'", 9) = 9 write(4, "Type", 4) = 4 write(4, "\' unknown.\nType \'help\' for help."..., 33) = -1 EAGAIN (Resource temporarily unavailable) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 utime("/usr/local/nagios/var/storage_modules.status", NULL) = 0 time(NULL) = 1105566327 time(NULL) = 1105566327 waitpid(-1, NULL, WNOHANG) = -1 ECHILD (No child processes) select(5, [4], NULL, NULL, NULL) = 1 (in [4]) ... |