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