One of the solutions for ORA-27300: OS system dependent operation:fork failed with status: 11
November 26, 2021 Leave a comment
Problem:
Databases were crashed and alert logs were showing errors:
Fri Nov 12 13:23:39 2021
Process startup failed, error stack:
Errors in file /app/oracle/diag/rdbms/orcl/orcl/trace/orcl_psp0_25852.trc:
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn5
We’ve implemented a procedure to take process list (by ps -ef), so output during that time was the following:
oracle 592 1 0 13:57 ? 00:00:00 [oracle] <defunct> oracle 593 1 0 13:55 ? 00:00:00 [oracle] <defunct> oracle 615 1 0 13:57 ? 00:00:00 [oracle] <defunct> oracle 618 1 0 13:57 ? 00:00:00 [oracle] <defunct> ...
Not only Oracle, but sshd and some other processes were also experiencing the same:
oracle 22335 22331 0 13:52 ? 00:00:00 [ps] <defunct> oracle 22336 22331 0 13:52 ? 00:00:00 [grep] <defunct> oracle 22338 22331 0 13:52 ? 00:00:00 [grep] <defunct> oracle 14389 1 0 13:24 ? 00:00:00 [sshd] <defunct> oracle 15852 1 0 13:23 ? 00:00:00 [sshd] <defunct>
Reason:
A large amount of Zombie processes, causing applications to fail.
Solution:
You may find a lot of recommendations about increasing kernel.pid_max
, similarly ORA-27300: OS System Dependent Operation:fork Failed With Status: 11 (Doc ID 1546393.1). Of course, you can make this parameter unlimited, but this will not solve the problem, it will just postpone it.
The reason for high number of defunct processes is described here, https://access.redhat.com/solutions/2438581.
The parent process for our defunct processes was systemd (pid=1) and the version of it was systemd-219-19.el7.x86_64
.
The solution is to update systemd to the latest version.