[Gc] SIGPWR

Hans Boehm Hans.Boehm@hp.com
Tue, 7 Oct 2003 21:06:10 -0700 (PDT)


SIGPWR is also used.  The collector installs proper handlers for these.
It sounds like the application is replacing the handler?  I would look
at an strace log to check that.

If you can't avoid the call to replace the handler, perhaps you
can intercept sigaction() and ignore calls affecting those two signals?

Hans

On Tue, 7 Oct 2003, Giuseppe Attardi wrote:

> Is it true also for SIGPWR?
> It is not just an issue with the debugger: it is generated
> and kills the application even without the debugger.
>
> I have no way to avoid redirect-malloc since
> allocation is done with strdup and new that do not
> expose a malloc() invocation.
>
> -- Beppe
>
> ----- Original Message -----
> From: "Boehm, Hans" <hans_boehm@hp.com>
> To: "'Giuseppe Attardi'" <attardi@di.unipi.it>; <gc@napali.hpl.hp.com>
> Sent: Friday, October 03, 2003 1:58 AM
> Subject: [inbox] RE: [Gc] SIGPWR
>
>
> > You should ignore those, and tell your debugger to simply pass them
> through
> > and let the program handle them.
> >
> > In its default configuration under Linux, with threads enabled, the
> collector
> > sends and catches those signals to stop and restart threads during a
> collection.
> >
> > However, you are likely to have problems with the combination of
> redirect-malloc
> > and threads.  Dealing with that is on my list.  The problem is that with
> redirect-malloc
> > the collecting allocator tends to get invoked during startup of the
> pthreads system.
> > But it calls into pthreads for locks, etc.  If you can do the malloc
> redirection with
> > macros instead (so that the system startup code sees the system malloc),
> things would
> > be far easier.
> >
> > Hans
> >
> > > -----Original Message-----
> > > From: Giuseppe Attardi [mailto:attardi@di.unipi.it]
> > > Sent: Thursday, October 02, 2003 3:09 PM
> > > To: gc@napali.hpl.hp.com
> > > Subject: [Gc] SIGPWR
> > >
> > >
> > > I am trying to use the gc as a leak detector for a multithreaded
> > > application,
> > > on Linux RH 7.3 with gcc 2.96.
> > > I have configured it with
> > >
> > >
> > > configure --enable-full-debug --enable-redirect-malloc
> > > --enable-threads=pthr
> > > eads
> > >
> > > and linked the program with .libs/libgc.a.
> > > The program gets first
> > >
> > > signal SIGPWR, Power fail/restart
> > >
> > > and then
> > >
> > > signal SIGXCPU, CPU time limit exceeded
> > >
> > > What can I do?
> > >
> > > -- Beppe
> > >
> > > _______________________________________________
> > > Gc mailing list
> > > Gc@linux.hpl.hp.com
> > > http://linux.hpl.hp.com/cgi-bin/mailman/listinfo/gc
> > >
> >
>