【WebLogic】WebLogic 2023年7月补丁导致JVM崩溃的解决方案

受影响版本:

  • Oracle WebLogic 12c(12.2.1.4.0)
  • Oracle WebLogic 14c(14.1.1.0.0)

问题描述:

       Oracle官方在2023年7月发布的最新版本的OPatch(13.9.4.2.13)存在一个新出现的Bug(会导致安装WebLogic的PSU时,出现下面的GDR-70005的报错:

Caused by: com.oracle.cie.gdr.utils.LocalizedGdrException: GDR-70005: Failed to apply inventory patching to home.
GDR-70005: A failure occurred while attempting to apply inventory patches to the home 
GDR-70005: Contact customer support.

       为了解决上面的问题,官方给出了一个临时补丁,在升级完成OPatch后,再安装这个临时补丁即可(PatchID: 23335292),安装记录如下:

[2023/10/08 10:19:06] Repair Bug 35619659 before apply wlserver patches.
Archive:  p23335292_13940015_Generic.zip
   creating: 23335292/
   creating: 23335292/etc/
   creating: 23335292/etc/config/
  inflating: 23335292/etc/config/actions.xml  
  inflating: 23335292/etc/config/inventory.xml  
  inflating: 23335292/etc/config/patchdeploy.xml  
   creating: 23335292/files/
   creating: 23335292/files/oracle.nginst.common/
   creating: 23335292/files/oracle.nginst.common/13.9.4.0.0/
   creating: 23335292/files/oracle.nginst.common/13.9.4.0.0/oracle.nginst.common.symbol/
   creating: 23335292/files/oracle.nginst.common/13.9.4.0.0/oracle.nginst.common.symbol/modules/
  inflating: 23335292/files/oracle.nginst.common/13.9.4.0.0/oracle.nginst.common.symbol/modules/com.oracle.cie.gdr_1.8.4.0.jar.23335292  
   creating: 23335292/files/inventory/
   creating: 23335292/files/inventory/Components/
   creating: 23335292/files/inventory/Components/oracle.nginst.common/
   creating: 23335292/files/inventory/Components/oracle.nginst.common/13.9.4.0.0/
   creating: 23335292/files/inventory/Components/oracle.nginst.common/13.9.4.0.0/patches/
   creating: 23335292/files/inventory/Components/oracle.nginst.common/13.9.4.0.0/patches/23335292/
  inflating: 23335292/files/inventory/Components/oracle.nginst.common/13.9.4.0.0/patches/23335292/compDef.xml  
  inflating: 23335292/README.txt     
Oracle 临时补丁程序安装程序版本 13.9.4.2.13
版权所有 (c) 2023, Oracle Corporation。保留所有权利。


Oracle 主目录       :/weblogic/Oracle/Middleware/Oracle_Home
主产品清单:/weblogic/oraInventory
   来自           :/weblogic/Oracle/Middleware/Oracle_Home/oraInst.loc
OPatch 版本    :13.9.4.2.13
OUI 版本       :13.9.4.0.0
日志文件位置:/weblogic/Oracle/Middleware/Oracle_Home/cfgtoollogs/opatch/opatch2023-10-08_10-19-07上午_1.log


OPatch detects the Middleware Home as "/weblogic/Oracle/Middleware/Oracle_Home"

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   23335292  

是否继续? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

请关闭本地系统上在此 ORACLE_HOME 之外运行的 Oracle 实例。
(Oracle 主目录 = '/weblogic/Oracle/Middleware/Oracle_Home')


本地系统是否已准备打补丁? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
正在将临时补丁程序 '23335292' 应用于 OH '/weblogic/Oracle/Middleware/Oracle_Home'

正在为组件 oracle.nginst.common, 13.9.4.0.0 打补丁...

正在为组件 oracle.nginst.common, 13.9.4.0.0 打补丁...
Patch 23335292 successfully applied.
N-Apply process is complete. No bug fixes are lost.
Log file location: /weblogic/Oracle/Middleware/Oracle_Home/cfgtoollogs/opatch/opatch2023-10-08_10-19-07上午_1.log
Executing: com.oracle.cie.gdr.utils.RuntimeExecShutdownHook$Exec@5716d05c

       然后,在安装这个临时补丁的过程中,我这边又发现了新的问题。如果这个补丁安装成功后(实际后台还有一个什么脚本在执行,需要等待15至30秒才能结束),在这15-30秒内,如果立马安装新的补丁,就会出现下面的JVM Crash的报错:

Start to apply the patch, id:33093748
 
Oracle 临时补丁程序安装程序版本 13.9.4.2.13
版权所有 (c) 2023, Oracle Corporation。保留所有权利。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007fc4627371d0, pid=104444, tid=0x00007fc4650bc700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_381) (build 1.8.0_381-b32)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.381-b32 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libzip.so+0x121d0]  newEntry.isra.4+0x60
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /weblogic/tools/bugrepair/hs_err_pid104444.log
Compiled method (nm)    4178  113     n 0       java.util.zip.ZipFile::getEntry (native)
 total in heap  [0x00007fc44d145550,0x00007fc44d1458c0] = 880
 relocation     [0x00007fc44d145678,0x00007fc44d1456c0] = 72
 main code      [0x00007fc44d1456c0,0x00007fc44d1458c0] = 512
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
/weblogic/Oracle/Middleware/Oracle_Home/OPatch/opatch: 行 1364: 104444 已放弃               (吐核)$JAVA $otherOpt $JAVA_VM_OPTION $JRE_MEMORY_OPTIONS -cp $opatchClassPath -DOPatch.ORACLE_HOME="$OH" -DOPatch.DEBUG="$DEBUGVAL" -DOPatch.MAKE="$MAKEVAL" -DOPatch.RUNNING_DIR="$BASE" -DOPatch.MW_HOME="$MWH" -DOPatch.WL_HOME="$WL_HOME" -DOPatch.COMMON_COMPONENTS_HOME="$COMMON_COMPONENTS_HOME" -DOPatch.OUI_LOCATION="$OUI_LOCATION" -DOPatch.FMW_COMPONENT_HOME="$FMW_COMPONENT_HOME" -DOPatch.OPATCH_CLASSPATH="$CLASSPATH" -DOPatch.WEBLOGIC_CLASSPATH="$WEBLOGIC_CLASSPATH" -DOPatch.SKIP_OUI_VERSION_CHECK="$SKIP_OUI_VERSION_CHECK" -DOPatch.NEXTGEN_HOME_CHECK="$IS_NEXTGEN_HOME" -DOPatch.PARALLEL_ON_FMW_OH=$PARALLEL_ON_FMW_OH $FUSION_TRUST_OPTION ${oracleOcmService} ${_bootClassPath} oracle/opatch/OPatch $args $invptr

OPatch failed with error code 134

        为了解决这个问题,就需要在安装完成这个临时补丁后,在脚本中设置一个休眠时间,比如

sleep 30s

       然后再安装其他补丁,就不会出现上面的问题了。

参考

https://support.oracle.com/epmos/faces/DocumentDisplay?id=2806740.2

https://support.oracle.com/epmos/faces/DocumentDisplay?id=2962593.1

https://support.oracle.com/epmos/faces/SrDetail?srNumber=3-34497119531

你可能感兴趣的:(WebLogic,weblogic,opatch,jvmcrash)