Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OOM? Perl killed after child spawn

52 views
Skip to first unread message

earthwormgaz

unread,
Mar 23, 2009, 12:07:02 PM3/23/09
to
Hi,

I'm using Perl to run some tests over night. The tests are written in C
++ and they spawn their own child processes.

I'm finding that if my C++ child process bombs out with signal ABRT,
then Perl dies. The script run just says "Killed" and that's all I get
out of it.

./runTests.pl
Entering directory /tests/unittests
Killed

I tried running through the Perl debugger, but that just gets killed
too.

I've posted to a Perl mailing list, and somebody pointed me to
this ...

http://developers.sun.com/solaris/articles/subprocess/subprocess.html

He commented ...

> That is a symptom of the "Linux OOM killer", but I thought Solaris didn't
> use memory overcommitt...
> I'd look into the possibility of running out of memory anyway.

Is there any way to know if this has happened under Solaris?

Thanks for any help!

Gaz

Paul Floyd

unread,
Mar 23, 2009, 4:09:21 PM3/23/09
to

There is no overcommit in Solaris.

I'd say that this is more likely to be a limit problem (e.g., CPU time,
stack size). Try running the app with truss -f, perhaps with some
filters and perhaps with the output going to a file as there is likely
to be a lot of output.

A bientot
Paul
--
Paul Floyd http://paulf.free.fr

ThanksButNo

unread,
Mar 23, 2009, 5:51:18 PM3/23/09
to
On Mar 23, 9:07 am, earthwormgaz <earthworm...@googlemail.com> wrote:
> Hi,
>
> I'm using Perl to run some tests over night. The tests are written in C
> ++ and they spawn their own child processes.
>
> I'm finding that if my C++ child process bombs out with signal ABRT,
> then Perl dies. The script run just says "Killed" and that's all I get
> out of it.


Try providing a signal handler to either the C++ program
or the Perl script. Do something other than crash on ABRT.

I *think* what's happening is that the ABRT is propagating
up from the child process to the parent. Either that, or
the parent is supposed to do something when notified that
its child died, and the parent is not handling that event
and crashing. Not sure, it's been a while since I've coded
parent/child processes in C.

/:-/

Casper H.S. Dik

unread,
Mar 24, 2009, 6:08:45 AM3/24/09
to
earthwormgaz <earthw...@googlemail.com> writes:

>I'm finding that if my C++ child process bombs out with signal ABRT,
>then Perl dies. The script run just says "Killed" and that's all I get
>out of it.

> ./runTests.pl
> Entering directory /tests/unittests
> Killed

Swap space? Have you checked /var/adm/messages?

>I tried running through the Perl debugger, but that just gets killed
>too.

>I've posted to a Perl mailing list, and somebody pointed me to
>this ...

>http://developers.sun.com/solaris/articles/subprocess/subprocess.html

>He commented ...

>> That is a symptom of the "Linux OOM killer", but I thought Solaris didn't
>> use memory overcommitt...
>> I'd look into the possibility of running out of memory anyway.

>Is there any way to know if this has happened under Solaris?

Few things post a SIGKILL; it happens when ld.so.1 get very confused
or when it cannot map libaries.

Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.

0 new messages