You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Gus Heck (Jira)" <ji...@apache.org> on 2023/02/09 19:23:00 UTC

[jira] [Commented] (LOG4J2-1990) ConcurrentModificationException logging a parameter of type Map

    [ https://issues.apache.org/jira/browse/LOG4J2-1990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17686726#comment-17686726 ] 

Gus Heck commented on LOG4J2-1990:
----------------------------------

Hmm this makes debugging custom appenders that rely on ThreadContext difficult. Stack trace only tells me which class was involved, no way to catch the exception on it's way up and add info about which of a dozen possible configured instances is putting a null in the context when that should theoretically be impossible. The ability to bubble things up via configuration (preferably  something I can stick in the log4j2.xml either globally or for specific appenders) would certainly help.

> ConcurrentModificationException logging a parameter of type Map 
> ----------------------------------------------------------------
>
>                 Key: LOG4J2-1990
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1990
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.8.2
>            Reporter: Philippe Mouawad
>            Priority: Major
>             Fix For: 2.16.0
>
>         Attachments: LOG4J2-1990.patch
>
>
> Hello,
> Working with current JMeter trunk and:
> *  attached test plan 
> * org.apache.jmeter.protocol.http.control.CacheManager level set to debug in log4j2.xml in bin folder
> I get:
> {code:none}
> java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_121]
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_121]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.downloadPageResources(HTTPSamplerBase.java:1349) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.resultProcessing(HTTPSamplerBase.java:1657) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.resultProcessing(HTTPAbstractImpl.java:519) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:534) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178) [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:500) [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:425) [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254) [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> 	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
> Caused by: java.util.ConcurrentModificationException
> 	at org.apache.commons.collections.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:560) ~[commons-collections-3.2.2.jar:3.2.2]
> 	at org.apache.commons.collections.map.AbstractLinkedMap$EntrySetIterator.next(AbstractLinkedMap.java:428) ~[commons-collections-3.2.2.jar:3.2.2]
> 	at org.apache.logging.log4j.message.ParameterFormatter.appendMap(ParameterFormatter.java:569) ~[log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.message.ParameterFormatter.appendPotentiallyRecursiveValue(ParameterFormatter.java:505) ~[log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.message.ParameterFormatter.recursiveDeepToString(ParameterFormatter.java:432) ~[log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.message.ParameterFormatter.formatMessage2(ParameterFormatter.java:189) ~[log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.message.ReusableParameterizedMessage.formatTo(ReusableParameterizedMessage.java:313) ~[log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.core.impl.MutableLogEvent.setMessage(MutableLogEvent.java:214) ~[log4j-core-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.core.impl.ReusableLogEventFactory.createEvent(ReusableLogEventFactory.java:81) ~[log4j-core-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:401) [log4j-core-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63) [log4j-core-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146) [log4j-core-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2091) [log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2005) [log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1876) [log4j-api-2.8.2.jar:2.8.2]
> 	at org.apache.logging.slf4j.Log4jLogger.debug(Log4jLogger.java:124) [log4j-slf4j-impl-2.8.2.jar:2.8.2]
> 	at org.apache.jmeter.protocol.http.control.CacheManager.getEntry(CacheManager.java:501) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.control.CacheManager.inCache(CacheManager.java:431) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:443) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase$ASyncSample.call(HTTPSamplerBase.java:2031) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase$ASyncSample.call(HTTPSamplerBase.java:1) ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_121]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_121]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_121]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_121]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_121]
> 	... 1 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)