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