logback / LOGBACK-1550 [Open] GraalVM native-image problem with AsyncAppender and RollingFileAppender
============================== Here's what changed in this issue in the last few minutes. This issue has been created This issue is now assigned to you. View or comment on issue using this link https://jira.qos.ch/browse/LOGBACK-1550 ============================== Issue created ------------------------------ Azman Kudus created this issue on 22/Jan/21 11:45 AM Summary: GraalVM native-image problem with AsyncAppender and RollingFileAppender Issue Type: Bug Affects Versions: 1.2.3 Assignee: Logback dev list Components: logback-classic Created: 22/Jan/21 11:45 AM Environment: Windows 10 64-bit Visual Studio Build Tools 2019 Micronaut 2.2.3 GraalVM CE 20.3.0 Logback 1.2.3 Priority: Major Reporter: Azman Kudus Description: Hi, I'm getting error while creating native-image with Micronaut and GraalVM. ConsoleAppender only is working fine. But with AsyncAppender and/or RollingFileAppender, the following error appears. There is existing issues discussed in this link [https://github.com/micronaut-projects/micronaut-core/issues/3683] *+logback.xml+* {{<configuration>}} {{ <property name="log.dir" value="log" />}} {{ <property name="line.pattern" value="%d\{yyyy-MM-dd HH:mm:ss.SSS XXX} %-5level %thread %logger\{36} %msg%n" />}} {{ <property name="file.pattern" value="app_%d\{yyyyMMdd_}_%i.log" />}}{{<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">}} {{ <encoder>}} {{ <pattern>${line.pattern}</pattern>}} {{ </encoder>}} {{ </appender>}} {{ <appender name="CONSOLE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">}} {{ <appender-ref ref="CONSOLE" />}} {{ </appender>}}{{<root level="INFO">}} {{ <appender-ref ref="CONSOLE" />}} {{ <!-- <appender-ref ref="FILE" /> -->}} {{ </root>}}{{<logger name="test" level="TRACE" />}} {{</configuration>}} {{}} *+native-image+* {{> native-image --no-server --no-fallback --static --class-path build\libs\test-0.0.1-all.jar test.Main}} {{Warning: Ignoring server-mode native-image argument --no-server.}} {{[test.main:19224] classlist: 2,344.53 ms, 0.96 GB}} {{[test.main:19224] (cap): 4,023.40 ms, 0.96 GB}} {{[test.main:19224] setup: 6,241.80 ms, 0.96 GB}} {{[test.main:19224] (clinit): 1,257.96 ms, 5.20 GB}} {{[test.main:19224] (typeflow): 21,101.03 ms, 5.20 GB}} {{[test.main:19224] (objects): 22,628.06 ms, 5.20 GB}} {{[test.main:19224] (features): 1,918.00 ms, 5.20 GB}} {{[test.main:19224] analysis: 49,171.54 ms, 5.20 GB}} {{Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime. To see how this object got instantiated use --trace-object-instantiation=ch.qos.logback.core.AsyncAppenderBase$Worker. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.}} {{Detailed message:}} {{Trace: Object was reached by}} {{ reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$Node.thread of}} {{ constant java.util.concurrent.locks.AbstractQueuedSynchronizer$Node@7898fa69 reached by}} {{ reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of}} {{ constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@8eb5f0 reached by}} {{ reading field java.util.concurrent.ArrayBlockingQueue.notEmpty of}} {{ constant java.util.concurrent.ArrayBlockingQueue@487133c7 reached by}} {{ reading field ch.qos.logback.core.AsyncAppenderBase.blockingQueue of}} {{ constant ch.qos.logback.classic.AsyncAppender@658264fb reached by}} {{ reading field ch.qos.logback.core.status.StatusBase.origin of}} {{ constant ch.qos.logback.core.status.InfoStatus@72d5d50d reached by}} {{ indexing into array}} {{ constant java.lang.Object[]@795ec0cf reached by}} {{ reading field java.util.ArrayList.elementData of}} {{ constant java.util.ArrayList@1674196a reached by}} {{ reading field ch.qos.logback.core.BasicStatusManager.statusList of}} {{ constant ch.qos.logback.core.BasicStatusManager@8cc9763 reached by}} {{ reading field ch.qos.logback.core.ContextBase.sm of}} {{ constant ch.qos.logback.classic.LoggerContext@55278968 reached by}} {{ reading field ch.qos.logback.classic.Logger.loggerContext of}} {{ constant ch.qos.logback.classic.Logger@763dead4 reached by}} {{ scanning method io.micronaut.context.DefaultBeanContext.lambda$null$49(DefaultBeanContext.java:2089)}} {{Call path from entry point to io.micronaut.context.DefaultBeanContext.lambda$null$49(BeanType, Optional, Function, BeanType):}} {{ at io.micronaut.context.DefaultBeanContext.lambda$null$49(DefaultBeanContext.java:2068)}} {{ at io.micronaut.context.DefaultBeanContext$$Lambda$720/0x00000007c1532c40.test(Unknown Source)}} {{ at com.oracle.svm.reflect.Predicate_test_d1a7993465a57621e038e1464fe9f954660d921a_577.invoke(Unknown Source)}} {{ at java.lang.reflect.Method.invoke(Method.java:566)}} {{ at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:736)}} {{ at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:719)}} {{ at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:190)}} {{ at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:143)}} {{ at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:330)}} {{ at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_ARRAY:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)}}{{Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception}} {{Error: Image build request failed with exit status 1}} ============================== This message was sent by Atlassian Jira (v8.8.0#808000-sha1:e2c7e59) _______________________________________________ logback-dev mailing list logback-dev@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-dev