Skip to Main Content

Chinese

Announcement

For appeals, questions and feedback, please email oracle-forums_moderators_us@oracle.com

ChangeAwareClassLoader.loadClass Deadlock

User_V5DTEJan 16 2023

环境:
jDK oracle1.8. 1.8.0_181-b13
应用平台:original
应用服务器:webLogic12c
关键要素:
1、死锁日志在cwgspjglapp1.out44896 的23057
<Jan 12, 2023 10:01:45,507 AM CST> <Critical> <WebLogicServer> <BEA-000394> <Deadlock detected:
23058 [deadlocked thread] CpesReceive-T-32:
23059 ------------------------------------
23060 Thread 'CpesReceive-T-32' is waiting to acquire lock 'weblogic.utils.classloaders.ChangeAwareClassLoader@25c99419' that is held by thread 'CpesReceive-T-6'
23061
23062 Stack trace:
23063 ------------
23064 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:81)
23065 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
23066 org.bouncycastle.math.ec.ECCurve.createDefaultMultiplier(Unknown Source)
23067 org.bouncycastle.math.ec.ECCurve.getMultiplier(Unknown Source)
23068 org.bouncycastle.math.ec.ECPoint.multiply(Unknown Source)
23069 org.bouncycastle.crypto.engines.SM2Engine.decrypt(Unknown Source)
23070 org.bouncycastle.crypto.engines.SM2Engine.processBlock(Unknown Source
...
23086 [deadlocked thread] CpesReceive-T-6:
23087 -----------------------------------
23088 Thread 'CpesReceive-T-6' is waiting to acquire lock 'java.lang.Object@367be406' that is held by thread 'CpesReceive-T-11'
23089
23090 Stack trace:
23091 ------------
23092 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:68)
23093 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
23094 java.lang.ClassLoader.defineClass1(Native Method)
23095 java.lang.ClassLoader.defineClass(ClassLoader.java:763)
23096 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
23097 weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
23098 weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:1046)
23099 weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1038)
23100 weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
23101 weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:104)
23102 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:82)
23103 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
23104 org.bouncycastle.math.ec.ECCurve.createDefaultMultiplier(Unknown Source)
23105 org.bouncycastle.math.ec.ECCurve.getMultiplier(Unknown Source)
23106 org.bouncycastle.math.ec.ECPoint.multiply(Unknown Source)

23107
...
23124 [deadlocked thread] CpesReceive-T-11:
23125 ------------------------------------
23126 Thread 'CpesReceive-T-11' is waiting to acquire lock 'weblogic.utils.classloaders.ChangeAwareClassLoader@25c99419' that is held by thread 'CpesReceive-T-6'
23127
23128 Stack trace:
23129 ------------
23130 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:81)
23131 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
23132 org.bouncycastle.math.ec.ECCurve.createDefaultMultiplier(Unknown Source)
23133 org.bouncycastle.math.ec.ECCurve.getMultiplier(Unknown Source)
23134 org.bouncycastle.math.ec.ECPoint.multiply(Unknown Source)
23135 org.bouncycastle.crypto.engines.SM2Engine.decrypt(Unknown Source)
23136 org.bouncycastle.crypto.engines.SM2Engine.processBlock(Unknown Source)
23137 com.resoft.baseoriginal.bill.platform.common.utils.sm.Sm2Util.decrypt(Sm2Util.java:107)

23138

2、系统宕机在cwgspjglapp1.out 中 27217行

27217 #
27218 # A fatal error has been detected by the Java Runtime Environment:
27219 #
27220 # SIGSEGV (0xb) at pc=0x00007f421d78bac9, pid=114471, tid=0x00007f38b3bf7700
27221 #
27222 # JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
27223 # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode linux-amd64 )
27224 # Problematic frame:
27225 # C [libc.so.6+0xc0ac9] readdir+0x29
27226 #
27227 # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
27228 #
27229 # Can not save log file, dump to screen..
27230 #
27231 # A fatal error has been detected by the Java Runtime Environment:
27232 #
27233 # SIGSEGV (0xb) at pc=0x00007f421d78bac9, pid=114471, tid=0x00007f38b3bf7700
27234 #
27235 # JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
27236 # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode linux-amd64 )
27237 # Problematic frame:
27238 # C [libc.so.6+0xc0ac9] readdir+0x29
27239 #

除了那个报错之外,系统宕机之后联系启动系统两次均未成功,报错信息也是在loadClass方法,但不是因为加解密调起的,日志如下:
28362 <Jan 12, 2023 3:14:15,207 PM CST> <Critical> <WebLogicServer> <BEA-000394> <Deadlock detected:
28363 [deadlocked thread] pool-96-thread-1:
28364 ------------------------------------
28365 Thread 'pool-96-thread-1' is waiting to acquire lock 'weblogic.utils.classloaders.ChangeAwareClassLoader@5b462b55' that is held by thread 'pool-17-thread-1'
28366
28367 Stack trace:
28368 ------------
28369 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:81)
28370 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
28371 com.resoft.baseoriginal.bill.application.core.api.ESBSysSeqApi.getSysSeq(ESBSysSeqApi.java:18)
28372 com.resoft.baseoriginal.bill.eai.swt.message.ReqESBBase.<init>(ReqESBBase.java:34)
28373 com.resoft.baseoriginal.bill.eai.swt.message.ltts.ElecShangpiaoAccountReq.<init>(ElecShangpiaoAccountReq.java:22)
28374 com.resoft.baseoriginal.bill.application.cpes.notradbusi.prmtpay.logic.PrmtpayLogic.buildElecAcctDate(PrmtpayLogic.java:2986)
28375 com.resoft.baseoriginal.bill.application.cpes.notradbusi.prmtpay.logic.PrmtpayLogic.buildApplyAcctDateNcpe(PrmtpayLogic.java:2558)
28376 com.resoft.baseoriginal.bill.application.cpes.notradbusi.prmtpay.logic.PrmtpayLogic.autoAccountNcpe(PrmtpayLogic.java:2093)
28377
...
28388 [deadlocked thread] pool-17-thread-1:
28389 ------------------------------------
28390 Thread 'pool-17-thread-1' is waiting to acquire lock 'java.lang.Object@391c1fa5' that is held by thread 'pool-13-thread-1'
28391
28392 Stack trace:
28393 ------------
28394 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:68)
28395 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
28396 java.lang.ClassLoader.defineClass1(Native Method)
28397 java.lang.ClassLoader.defineClass(ClassLoader.java:763)
28398 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
28399 weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
28400 weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:1046)
28401 weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1038)
28402 weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
28403 weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:104)
28404 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:82)
28405 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
28406 org.apache.xerces.impl.xs.XSDeclarationPool.<init>(Unknown Source)
28407 org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
28408 org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
28409 org.apache.xerces.jaxp.validation.XMLSchemaFactory.<init>(Unknown Source)
28410
...
28449 [deadlocked thread] pool-13-thread-1:
28450 ------------------------------------
28451 Thread 'pool-13-thread-1' is waiting to acquire lock 'weblogic.utils.classloaders.ChangeAwareClassLoader@5b462b55' that is held by thread 'pool-17-thread-1'
28452
28453 Stack trace:
28454 ------------
28455 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:81)
28456 weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
28457 org.apache.xerces.impl.xs.XSDeclarationPool.<init>(Unknown Source)
28458 org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
28459 org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
28460 org.apache.xerces.jaxp.validation.XMLSchemaFactory.<init>(Unknown Source)
28461 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
28462 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
28463 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
28464 java.lang.reflect.Constructor.newInstance(Constructor.java:423)
28465 java.lang.Class.newInstance(Class.java:442)
28466 java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
28467 java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
28468 java.util.ServiceLoader$1.next(ServiceLoader.java:480)
28469 javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:351)
28470 javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:347)
28471 java.security.AccessController.doPrivileged(Native Method)
28472 javax.xml.validation.SchemaFactoryFinder.findServiceProvider(SchemaFactoryFinder.java:347)
28473 javax.xml.validation.SchemaFactoryFinder._newFactory(SchemaFactoryFinder.java:219)
28474 javax.xml.validation.SchemaFactoryFinder.newFactory(SchemaFactoryFinder.java:146)
28475 javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:213)

28476 com.resoft.baseoriginal.bill.eai.swt.common.SchemaValidatorUtil.validate(SchemaValidatorUtil.java:34)

Comments
Post Details