SIGPIPE in beostat_get_cpu_percent()
Wade Hampton
wade.hampton at nsc1.net
Tue Oct 22 10:32:45 PDT 2002
G'day,
I have some simple code that makes C calls to the beostatus
library. It was sometimes crashing with a SIGPIPE (pipe
error). Running it in gdb resulted in trapping the error
and the traceback info below.
Basically, the code is periodically making beostat_get_cpu_percent
calls on a free node prior to scheduling on that node.
The traceback is something like the following:
__libc_write() () from /lib/i686/libc.so.6
__DTOR_END__ () from /usr/lib/libbeostat.so.0
beostat_get ()
beostat_get_stat_cpu
beostat_get_cpu_percent
The compter is a dual 2G XEON with Scyld 28CZ4.
The kernel is 2.4.17-0.18.18_Scyldsmp
beostatus-2.1.7-2_Scyld
libbeostat-0.3.3-1_Scyld
libbeostat-devel-0.3.3-1_Scyld
Any help would be most appreciated.
For now:
1) I'm trapping SIGPIPE
2) I'm checking for -1 on return of all beostatus calls and repeating the
call up to 10 times -- and terminating with error at that point.
Cheers,
--
Wade Hampton
More information about the Beowulf
mailing list