When applying Bundlepatches to a Grid Infrastructure installation on Windows, one needs to execute the “rootcrs.pl -prepatch” srcipt in order to stop and unlock the clusterware stack. Sometimes this script ends up with the following error:
C:\Windows\system32>%ORACLE_HOME%\perl\bin\perl -I%ORACLE_HOME%\perl\lib -I%ORACLE_HOME%\crs\install %ORACLE_HOME%\crs\install\rootcrs.pl -prepatch Using configuration parameter file: D:\app\grid\126.96.36.199\crs\install\crsconfig_params 2015/12/14 13:39:12 CLSRSC-546: The Grid Infrastructure processes identified by the following PIDs (9596) are still active. Died at d:\app\grid\188.8.131.52\crs\install/crspatch.pm line 732.
This in turns prevents the patch procedure to complete successfully because the “rootcrs.pl -postpatch” execution will find out that the unlock did not complete without error.
Obviously one should only proceed when the prepatch completed without any issues. Looking for the PID mentioned in the error message using either Windows Taskmanager or ProcessExplorer did not return any result. There is no process with that PID. It is kind of a orphaned process. Let’s find out where the PID comes from by looking into the logfile under
Search the file for the PID showes something like this:
2015-12-14 13:33:21: PID in <D:\app\oracle\crsdata\<servername>\output\crsd_scriptagent_system.pid> is: 9596 2015-12-14 13:33:21: The GI process identified by PID<9596> is running
Now one can replace the PID in that file, 9596 in this case, with a simple 0. Do leave the *.pid file empty since this would lead to another error:
C:\Windows\system32>%ORACLE_HOME%\perl\bin\perl -I%ORACLE_HOME%\perl\lib -I%ORACLE_HOME%\crs\install %ORACLE_HOME%\crs\install\rootcrs.pl -prepatch Using configuration parameter file: D:\app\grid\184.108.40.206\crs\install\crsconfig_params Can't kill a non-numeric process ID at d:\app\grid\220.127.116.11\crs\install/crsutils.pm line 12324.
Thrust me, use a 0 and the “rootcrs.pl -prepatch” will complete successfully.
There are a some more things I run into which I will explain in upcoming blog posts.
So long, thanks for reading.