[logback-dev] [JIRA] Updates for LOGBACK-1550: GraalVM native-image problem with AsyncAppender and RollingFileAppender

QOS.CH (JIRA) noreply-jira at qos.ch
Fri Jan 22 11:58:00 CET 2021


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 at 7898fa69 reached by}}
  {{ reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of}}
  {{ constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject at 8eb5f0 reached by}}
  {{ reading field java.util.concurrent.ArrayBlockingQueue.notEmpty of}}
  {{ constant java.util.concurrent.ArrayBlockingQueue at 487133c7 reached by}}
  {{ reading field ch.qos.logback.core.AsyncAppenderBase.blockingQueue of}}
  {{ constant ch.qos.logback.classic.AsyncAppender at 658264fb reached by}}
  {{ reading field ch.qos.logback.core.status.StatusBase.origin of}}
  {{ constant ch.qos.logback.core.status.InfoStatus at 72d5d50d reached by}}
  {{ indexing into array}}
  {{ constant java.lang.Object[]@795ec0cf reached by}}
  {{ reading field java.util.ArrayList.elementData of}}
  {{ constant java.util.ArrayList at 1674196a reached by}}
  {{ reading field ch.qos.logback.core.BasicStatusManager.statusList of}}
  {{ constant ch.qos.logback.core.BasicStatusManager at 8cc9763 reached by}}
  {{ reading field ch.qos.logback.core.ContextBase.sm of}}
  {{ constant ch.qos.logback.classic.LoggerContext at 55278968 reached by}}
  {{ reading field ch.qos.logback.classic.Logger.loggerContext of}}
  {{ constant ch.qos.logback.classic.Logger at 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)



More information about the logback-dev mailing list