defunct processes multiply and kill server

defunct processes multiply and kill server

Post by Rob E. All » Thu, 14 Jul 1994 04:02:33



We are having a big problem with ORACLE V7.015 on a sparc 5 server
running solaris 1.1.1 ver B. Over time, the process table fills
up with immortal defunct processes. "kill -9" doesn't work.
These processes grow until the server hangs and only a reboot
gets rid of them.

We have determined that the more frequently the database is accessed,
the quicker the processes grow.

Anyways we need a fix. If there is no ORACLE patch, is there a
way of cleaning out these processes without having to do a reboot?
In our experience, it is easier to figure out a work-around on the
UNIX side than to wait for an ORACLE fix. Of course, I would love to
be mistaken :)

thanks for any help ...


 
 
 

defunct processes multiply and kill server

Post by Dennis Tayl » Sat, 16 Jul 1994 11:43:05


Quote:>We are having a big problem with ORACLE V7.015 on a sparc 5 server
>running solaris 1.1.1 ver B. Over time, the process table fills
>up with immortal defunct processes. "kill -9" doesn't work.
>These processes grow until the server hangs and only a reboot
>gets rid of them.

kill won't work because the zombie is already dead; it's just*
around waiting for its parent to do a wait().

Whatever parent process is spawning those things isn't cleaning up after
itsself. if you can stop the process every once in a while, the zombies
will be inherited by init which will absorb them (i assume you don't have
source...).

 
 
 

defunct processes multiply and kill server

Post by Tony Jam » Sat, 16 Jul 1994 15:33:30



Quote:(Rob E. Allan) writes:
> We are having a big problem with ORACLE V7.015 on a sparc 5 server
> running solaris 1.1.1 ver B. Over time, the process table fills
> up with immortal defunct processes. "kill -9" doesn't work.
> These processes grow until the server hangs and only a reboot
> gets rid of them.

Rob

Not sure if this will help or not but on SUN/OS if you have zombies or
processes with the <exiting> status, the following command should kill them:

trace -p PID

Please email me if it works.

ta
tony

--
 _____       ________ / ____ |Tony Jambu, Database Administrator
  /_  _        /_ __ /       |Colonial Mutual Invest Mgmt,Aust (ACN004021809)

 \_______/                   |PHONE: +61-3-2831639       FAX: +61-3-2831090

 
 
 

defunct processes multiply and kill server

Post by Rob E. All » Tue, 19 Jul 1994 21:42:45




>(Rob E. Allan) writes:
>> We are having a big problem with ORACLE V7.015 on a sparc 5 server
>> running solaris 1.1.1 ver B. Over time, the process table fills
>> up with immortal defunct processes. "kill -9" doesn't work.
>> These processes grow until the server hangs and only a reboot
>> gets rid of them.

>Rob

>Not sure if this will help or not but on SUN/OS if you have zombies or
>processes with the <exiting> status, the following command should kill them:

>trace -p PID

>Please email me if it works.

>ta
>tony

>--
> _____       ________ / ____ |Tony Jambu, Database Administrator
>  /_  _        /_ __ /       |Colonial Mutual Invest Mgmt,Aust (ACN004021809)

> \_______/                   |PHONE: +61-3-2831639       FAX: +61-3-2831090

I have been told that the problem is in the "orasrv" executable.
I was able to confirm this with a "ps -lXXX" where XXX is the pid of
a zombie. This is a known problem and a patch is available. We now
have to find a support person who will admit this :)

PS. Thanks to all the people who email'ed and help me solve this problem.


 
 
 

defunct processes multiply and kill server

Post by Jodi Showe » Tue, 19 Jul 1994 23:17:52




> (Rob E. Allan) writes:
> > We are having a big problem with ORACLE V7.015 on a sparc 5 server
> > running solaris 1.1.1 ver B. Over time, the process table fills
> > up with immortal defunct processes. "kill -9" doesn't work.
> > These processes grow until the server hangs and only a reboot
> > gets rid of them.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ our symptoms are the same.

have you written oci or pro*c programs? and do you suppose that these may be a
possible source of the zombies? do the <defunct> process have a -l of
'oracle:blahblahblah'?

A solution was created in-house here that supposedly fixes the problem.
Basically,
create a signal handler in your c (.pc) code. This handler will be
inherited by the
oralibs and any 'oracle:' processes forked. when the parent receives a
signal of some
sort the child will act accordingly.

I've got some code fragments, but I havent't looked them over too much
yet; and my
fragement was written for a Pyramid's SVR4 port. I say this because signal
handling
can be an art on each specific port.

If interested I'll post what info I have to date. Checking a man page on
signal will
give you some general info, and the ports programmers docs help. I have a
reference called
'The Design of the UNIX Operating System' Maurice J. Bach
ISBN0-13-201799-7 025 has some
some detail on signals as well.

feel free to contact me directly if you prefer or I'll post a code frag
when I know some
more (next week?)


Quote:

> Rob

> Not sure if this will help or not but on SUN/OS if you have zombies or
> processes with the <exiting> status, the following command should kill them:

> trace -p PID

humm...

> Please email me if it works.

> ta
> tony

> --
>  _____       ________ / ____ |Tony Jambu, Database Administrator
>   /_  _        /_ __ /       |Colonial Mutual Invest Mgmt,Aust (ACN004021809)

>  \_______/                   |PHONE: +61-3-2831639       FAX: +61-3-2831090