-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
When the application is closed, the log does not record Error or Exception, but there is an exception about the log4j thread in the JFR file. I suspect it is related to class unloading. It seems to only appear when the application is closed. The following are some exception stacks and JFR screenshots.


java.lang.Error.<init>(java.lang.String)
java.lang.LinkageError.<init>(java.lang.String)
java.lang.IncompatibleClassChangeError.<init>(java.lang.String)
java.lang.NoSuchMethodError.<init>(java.lang.String)
java.lang.invoke.MethodHandleNatives.resolve(java.lang.invoke.MemberName, java.lang.Class, int, boolean)
java.lang.invoke.MemberName$Factory.resolve(byte, java.lang.invoke.MemberName, java.lang.Class, int, boolean)
java.lang.invoke.MemberName$Factory.resolveOrNull(byte, java.lang.invoke.MemberName, java.lang.Class, int)
java.lang.invoke.InvokerBytecodeGenerator.resolveFrom(java.lang.String, java.lang.invoke.MethodType, java.lang.Class)
java.lang.invoke.InvokerBytecodeGenerator.lookupPregenerated(java.lang.invoke.LambdaForm, java.lang.invoke.MethodType)
java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(java.lang.invoke.LambdaForm, java.lang.invoke.MethodType)
java.lang.invoke.LambdaForm.compileToBytecode()
java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(java.lang.invoke.MethodType, int)
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(java.lang.invoke.MethodType, int)
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(java.lang.invoke.MemberName, boolean)
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(java.lang.invoke.MemberName)
java.lang.invoke.DirectMethodHandle.make(byte, java.lang.Class, java.lang.invoke.MemberName, java.lang.Class)
java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(byte, java.lang.Class, java.lang.invoke.MemberName, boolean, boolean, java.lang.invoke.MethodHandles$Lookup)
java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(byte, java.lang.Class, java.lang.invoke.MemberName, java.lang.invoke.MethodHandles$Lookup)
java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(byte, java.lang.Class, java.lang.invoke.MemberName)
java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(byte, java.lang.Class, java.lang.String, java.lang.Object)
java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(java.lang.Class, int, java.lang.Class, java.lang.String, java.lang.Object)
java.lang.SecurityManager.addNonExportedPackages(java.lang.ModuleLayer)
java.lang.SecurityManager.<clinit>()
org.apache.logging.log4j.util.PrivateSecurityManagerStackTraceUtil.<clinit>()
org.apache.logging.log4j.util.StackLocator.getCurrentStackTrace()
org.apache.logging.log4j.util.StackLocatorUtil.getCurrentStackTrace()
org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(java.lang.Throwable, java.util.Set)
org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(java.lang.Throwable)
org.apache.logging.log4j.core.async.RingBufferLogEvent.getThrownProxy()
org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
org.springframework.boot.logging.log4j2.ExtendedWhitespaceThrowablePatternConverter.format(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
org.apache.logging.log4j.core.layout.PatternLayout$NoFormatPatternSerializer.toSerializable(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
org.apache.logging.log4j.core.layout.PatternLayout.toText(org.apache.logging.log4j.core.layout.AbstractStringLayout$Serializer2, org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
org.apache.logging.log4j.core.layout.PatternLayout.encode(org.apache.logging.log4j.core.LogEvent, org.apache.logging.log4j.core.layout.ByteBufferDestination)
org.apache.logging.log4j.core.layout.PatternLayout.encode(java.lang.Object, org.apache.logging.log4j.core.layout.ByteBufferDestination)
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.AppenderControl.callAppender0(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.AppenderControl.callAppender(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(org.apache.logging.log4j.core.LogEvent, org.apache.logging.log4j.core.config.LoggerConfig$LoggerConfigPredicate)
org.apache.logging.log4j.core.config.LoggerConfig.log(org.apache.logging.log4j.core.LogEvent, org.apache.logging.log4j.core.config.LoggerConfig$LoggerConfigPredicate)
org.apache.logging.log4j.core.config.LoggerConfig.log(org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(org.apache.logging.log4j.util.Supplier, org.apache.logging.log4j.core.LogEvent)
org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(org.apache.logging.log4j.core.async.RingBufferLogEvent)
org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(boolean)
org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(org.apache.logging.log4j.core.async.RingBufferLogEvent, long, boolean)
org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(java.lang.Object, long, boolean)
com.lmax.disruptor.BatchEventProcessor.processEvents()
com.lmax.disruptor.BatchEventProcessor.run()
java.lang.Thread.run()
Metadata
Metadata
Assignees
Labels
No labels