Potential race condition when initializing Logback

See original GitHub issue

Using SpringBoot version 1.3.2.RELEASE

Occasionally my tests fail with the error below. It is sporadic, but it appears that one LoggingSystem might be cleaning up when another is initialized.:

Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for composite conversion word [clr]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - Failed to create converter for [%clr] keyword
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - There is no conversion class registered for conversion word [wEx]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@729ed61b - [wEx] is not a valid conversion word
ERROR in ch.qos.logback.core.pattern.parser.Compiler@71516065 - There is no conversion class registered for conversion word [wEx]
ERROR in ch.qos.logback.core.pattern.parser.Compiler@71516065 - [wEx] is not a valid conversion word
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:153)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:71)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:49)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:106)
at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:262)
at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:233)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:200)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119)
at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:129)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:78)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:58)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119)
at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 51 more

I’ve tried to create a sample application that consistently triggers the behavior, but the best I’ve been able to do is initialize the logging system a bunch in separate threads and observer that similar occur (though not identical)

        for(int i =0; i < 100; i++){
            new Thread(() -> {
                LoggingSystem system = LoggingSystem.get(LoggingSystem.class.getClassLoader());
                system.initialize(new LoggingInitializationContext(environment), (String)null, (LogFile)null);
            }).start();
        }

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:35 (17 by maintainers)

github_iconTop GitHub Comments

2reactions
NiteshMehtacommented, Jan 24, 2017

@bin01 Upgrade logback to 1.1.7 did not help and we have yet not upgraded spring boot. Workaround which we did is working for us. It is bit different from one mentioned above. As we are driving our logging using logback.xml and not by logging configuration in application.properties, therefore we skipped revitalization of LogbackLoggingSystem. Here is what we did, we crated below class and added it to classpath

import org.springframework.boot.logging.LoggingInitializationContext;
import org.springframework.boot.logging.logback.LogbackLoggingSystem;
public class AppLoggingSystem extends LogbackLoggingSystem {

	public AppLoggingSystem(ClassLoader classLoader) {
		super(classLoader);

	}
	@Override
	protected void reinitialize(LoggingInitializationContext initializationContext) {
		//Workaround for spring and logback integration issue https://github.com/spring-projects/spring-boot/issues/5669";
		//Skipping re-initialization of Logback, because we are using logback xml configuration which is already initialized
	}
}

then passed -Dorg.springframework.boot.logging.LoggingSystem=com.ca.tdm.utils.AppLoggingSystem as jvm argument.

and we are done.

you may also try switching to different logging system. like -Dorg.springframework.boot.logging.LoggingSystem=org.springframework.boot.logging.log4j.Log4JLoggingSystem

1reaction
NiteshMehtacommented, Sep 8, 2016

We are facing this problem quite frequently, We have spring boot (1.3.0) application with hibernate hibernate and we are using external logback.xml. We upgraded logback to 1.1.7 but no success. It looks like Hibernate Validator is initialized in different thread using BackgroundPreinitializer. When spring boot is re-configuring logging system, Hibernate Validator is having handle to old logger instance, which is causing the problem Stack traces:

stacktrace.txt

Defect Logs:

java.lang.IllegalStateException: Logback configuration error detected:
ERROR in c.q.l.c.recovery.ResilientFileOutputStream@885755284 - IO failure while writing to file [C:\testProject\logs\server.log] java.io.IOException: Stream Closed
                at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:153) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:197) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:64) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:49) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:106) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:261) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:232) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:199) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:176) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
                at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
                at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
                at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:315) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.SpringApplication.run(SpringApplication.java:295) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.context.web.SpringBootServletInitializer.run(SpringBootServletInitializer.java:149) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:129) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:85) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
                at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175) [spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5170) [catalina.jar:8.0.28]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.28]
                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) [catalina.jar:8.0.28]
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) [catalina.jar:8.0.28]
                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) [catalina.jar:8.0.28]
                at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945) [catalina.jar:8.0.28]
                at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1798) [catalina.jar:8.0.28]
                at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_91]
                at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_91]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_91]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_91]
                at java.lang.Thread.run(Unknown Source) [na:1.8.0_91]

**ROOT CAUSE:

Thread Stack: when logging system is initialize as default:**

Thread [main] (Suspended (breakpoint at line 27 in ResilientFileOutputStream))              
                owns: LogbackLock  (id=30)        
                ResilientFileOutputStream.<init>(File, boolean) line: 27
                RollingFileAppender<E>(FileAppender<E>).openFile(String) line: 148    
                RollingFileAppender<E>(FileAppender<E>).start() line: 108        
                RollingFileAppender<E>.start() line: 86 
                AppenderAction<E>.end(InterpretationContext, String) line: 96              
                Interpreter.callEndAction(List<Action>, String) line: 317
                Interpreter.endElement(String, String, String) line: 196 
                Interpreter.endElement(EndEvent) line: 182     
                EventPlayer.play(List<SaxEvent>) line: 62            
                JoranConfigurator(GenericConfigurator).doConfigure(List<SaxEvent>) line: 149               
                JoranConfigurator(GenericConfigurator).doConfigure(InputSource) line: 135     
                JoranConfigurator(GenericConfigurator).doConfigure(InputStream) line: 99      
                JoranConfigurator(GenericConfigurator).doConfigure(URL) line: 49        
                ContextInitializer.configureByResource(URL) line: 77     
                ContextInitializer.autoConfig() line: 152
                StaticLoggerBinder.init() line: 85               
                StaticLoggerBinder.<clinit>() line: 55      
                LoggerFactory.bind() line: 140   
                LoggerFactory.performInitialization() line: 119   
                LoggerFactory.getILoggerFactory() line: 328       
                LoggerFactory.getLogger(String) line: 280            
                SLF4JLogFactory.getInstance(String) line: 155    
                SLF4JLogFactory.getInstance(Class) line: 132      
                LogFactory.getLog(Class) line: 273           
                SpringApplication.<init>(Object...) line: 181        
                SpringApplication.run(Object[], String[]) line: 1112          
                SpringApplication.run(Object, String...) line: 1101            
 `
**Thread Stack: when logging system is reconfigured by spring  and it’s trying to shut down existing system: (Notice output stream is being closed here)**
` 
Thread [main] (Suspended (breakpoint at line 111 in ResilientOutputStreamBase))         
                ResilientFileOutputStream(ResilientOutputStreamBase).close() line: 111             
                RollingFileAppender<E>(OutputStreamAppender<E>).closeOutputStream() line: 131   
                RollingFileAppender<E>(OutputStreamAppender<E>).stop() line: 116  
                RollingFileAppender<E>.stop() line: 106               
                AppenderAttachableImpl<E>.detachAndStopAllAppenders() line: 104  
                Logger.detachAndStopAllAppenders() line: 209
                Logger.recursiveReset() line: 338             
                LoggerContext.reset() line: 213
                LogbackLoggingSystem.reinitialize(LoggingInitializationContext) line: 195             
                LogbackLoggingSystem(AbstractLoggingSystem).initializeWithConventions(LoggingInitializationContext, LogFile) line: 64
                LogbackLoggingSystem(AbstractLoggingSystem).initialize(LoggingInitializationContext, String, LogFile) line: 49               
                LogbackLoggingSystem.initialize(LoggingInitializationContext, String, LogFile) line: 106   
                LoggingApplicationListener.initializeSystem(ConfigurableEnvironment, LoggingSystem) line: 261              
                LoggingApplicationListener.initialize(ConfigurableEnvironment, ClassLoader) line: 232   
                LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(ApplicationEnvironmentPreparedEvent) line: 199              
                LoggingApplicationListener.onApplicationEvent(ApplicationEvent) line: 176        
                SimpleApplicationEventMulticaster.invokeListener(ApplicationListener, ApplicationEvent) line: 163        
                SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, ResolvableType) line: 136               
                SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 119 
                EventPublishingRunListener.publishEvent(SpringApplicationEvent) line: 111       
                EventPublishingRunListener.environmentPrepared(ConfigurableEnvironment) line: 65
                SpringApplicationRunListeners.environmentPrepared(ConfigurableEnvironment) line: 54           
                SpringApplication.doRun(SpringApplicationRunListeners, String...) line: 315        
                SpringApplication.run(String...) line: 295               
                SpringApplication.run(Object[], String[]) line: 1112          
                SpringApplication.run(Object, String...) line: 1101            
                TestApplication.main(String[]) line: 80               
 `
**Thread Stack: when logging system is reconfigured spring: (Notice new stream being created)**
`com.test.TestApplication at localhost:60330          
                Thread [main] (Suspended (breakpoint at line 27 in ResilientFileOutputStream))              
                                owns: LogbackLock  (id=30)        
                                ResilientFileOutputStream.<init>(File, boolean) line: 27
                                RollingFileAppender<E>(FileAppender<E>).openFile(String) line: 148    
                                RollingFileAppender<E>(FileAppender<E>).start() line: 108        
                                RollingFileAppender<E>.start() line: 86 
                                AppenderAction<E>.end(InterpretationContext, String) line: 96              
                                Interpreter.callEndAction(List<Action>, String) line: 317
                                Interpreter.endElement(String, String, String) line: 196 
                                Interpreter.endElement(EndEvent) line: 182     
                                EventPlayer.play(List<SaxEvent>) line: 62            
                                SpringBootJoranConfigurator(GenericConfigurator).doConfigure(List<SaxEvent>) line: 149         
                                SpringBootJoranConfigurator(GenericConfigurator).doConfigure(InputSource) line: 135              
                                SpringBootJoranConfigurator(GenericConfigurator).doConfigure(InputStream) line: 99
                                SpringBootJoranConfigurator(GenericConfigurator).doConfigure(URL) line: 49  
                                LogbackLoggingSystem.configureByResourceUrl(LoggingInitializationContext, LoggerContext, URL) line: 165              
                                LogbackLoggingSystem.loadConfiguration(LoggingInitializationContext, String, LogFile) line: 137
                                LogbackLoggingSystem.reinitialize(LoggingInitializationContext) line: 197             
                                LogbackLoggingSystem(AbstractLoggingSystem).initializeWithConventions(LoggingInitializationContext, LogFile) line: 64
                                LogbackLoggingSystem(AbstractLoggingSystem).initialize(LoggingInitializationContext, String, LogFile) line: 49
                                LogbackLoggingSystem.initialize(LoggingInitializationContext, String, LogFile) line: 106   
                                LoggingApplicationListener.initializeSystem(ConfigurableEnvironment, LoggingSystem) line: 261               
                                LoggingApplicationListener.initialize(ConfigurableEnvironment, ClassLoader) line: 232   
                                LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(ApplicationEnvironmentPreparedEvent) line: 199              
                                LoggingApplicationListener.onApplicationEvent(ApplicationEvent) line: 176        
                                SimpleApplicationEventMulticaster.invokeListener(ApplicationListener, ApplicationEvent) line: 163               
                                SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent, ResolvableType) line: 136               
                                SimpleApplicationEventMulticaster.multicastEvent(ApplicationEvent) line: 119 
                                EventPublishingRunListener.publishEvent(SpringApplicationEvent) line: 111       
                                EventPublishingRunListener.environmentPrepared(ConfigurableEnvironment) line: 65
                                SpringApplicationRunListeners.environmentPrepared(ConfigurableEnvironment) line: 54           
                                SpringApplication.doRun(SpringApplicationRunListeners, String...) line: 315        
                                SpringApplication.run(String...) line: 295               
                                SpringApplication.run(Object[], String[]) line: 1112          
                                SpringApplication.run(Object, String...) line: 1101            
                                TestApplication.main(String[]) line: 80               
 `
**And here come the Show Stopper (This Thread is fire flush on output stream which is already closed)**
   `             Thread [pool-1-thread-1] (Suspended (breakpoint at line 101 in ResilientOutputStreamBase))  
                                ResilientFileOutputStream(ResilientOutputStreamBase).postIOFailure(IOException) line: 101   
                                ResilientFileOutputStream(ResilientOutputStreamBase).flush() line: 82             
                                PatternLayoutEncoder(LayoutWrappingEncoder<E>).doEncode(E) line: 137       
                                RollingFileAppender<E>(OutputStreamAppender<E>).writeOut(E) line: 194      
                                RollingFileAppender<E>(FileAppender<E>).writeOut(E) line: 220             
                                RollingFileAppender<E>(OutputStreamAppender<E>).subAppend(E) line: 219 
                                RollingFileAppender<E>.subAppend(E) line: 182              
                                RollingFileAppender<E>(OutputStreamAppender<E>).append(E) line: 103         
                                RollingFileAppender<E>(UnsynchronizedAppenderBase<E>).doAppend(E) line: 88        
                                AppenderAttachableImpl<E>.appendLoopOnAppenders(E) line: 48       
                                Logger.appendLoopOnAppenders(ILoggingEvent) line: 273        
                                Logger.callAppenders(ILoggingEvent) line: 260  
                                Logger.buildLoggingEventAndAppend(String, Marker, Level, String, Object[], Throwable) line: 442               
                                Logger.filterAndLog_0_Or3Plus(String, Marker, Level, String, Object[], Throwable) line: 396       
                                Logger.log(Marker, String, int, String, Object[], Throwable) line: 788       
                                NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]               
                                NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62   
                                DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43           
                                Method.invoke(Object, Object...) line: 498         
                                Slf4jLocationAwareLogger.doLog(LocationAwareLogger, String, int, String, Throwable) line: 89  
                                Slf4jLocationAwareLogger.doLogf(Logger$Level, String, String, Object[], Throwable) line: 82      
                                Slf4jLocationAwareLogger(Logger).logf(String, Logger$Level, Throwable, String, Object) line: 2398               
                                Log_$logger.version(String) line: 211     
                                Version.<clinit>() line: 17             
                                ConfigurationImpl.<clinit>() line: 69        
                                HibernateValidator.createGenericConfiguration(BootstrapState) line: 31             
                                Validation$GenericBootstrapImpl.configure() line: 276  
                                BackgroundPreinitializer$ValidationInitializer.run() line: 107        
                                BackgroundPreinitializer$FailSafeRunnable.run() line: 67              
                                Executors$RunnableAdapter<T>.call() line: 511
                                FutureTask<V>.run() line: 266   
                                ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1142            
                                ThreadPoolExecutor$Worker.run() line: 617       
                                Thread.run() line: 745   
Read more comments on GitHub >

github_iconTop Results From Across the Web

c# - Multithreading - Race condition to initialize shared data
In my web service I've cache object (contains static data) based on the session id. Once request is received it checks whether cache...
Read more >
PatternLayoutBase concurrent access race condition
So, when we have multi-threaded appender, we end up with the issue writing to the same StringBuilder concurrently.
Read more >
Java Concurrency - Race Conditions - Read-Modify-Write
Greetings! When two or more threads access shared data at the same time race condition occurred. These operation should be atomic to thread-safe...
Read more >
Finding potential thread safety issues and race conditions in ...
If you are using Logback or Log4j the getClass().getSimpleName() is unnecessary, you can set in the log4j.xml or logback.xml to log the ...
Read more >
[Solved]-Race Condition On Save Event-Java - appsloveworld
Coding example for the question Race Condition On Save Event-Java. ... Race condition in java agent between initializing ThreadStart event callback and ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found