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

Mikhail Khludnev commented on LOG4J2-1769:
------------------------------------------

Hello, [~garydgregory]

the condition 
[https://github.com/apache/logging-log4j2/blame/80d025ba68fc12d7b4d767fb25455306878279e1/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/ConcurrentLoggingWithJsonLayoutTest.java#L109]
 bypasses asserts since [log config 
points|https://github.com/apache/logging-log4j2/blob/80d025ba68fc12d7b4d767fb25455306878279e1/log4j-layout-jackson-json/src/test/resources/log4j2-json-layout.xml#L21]
 to {{target/test-xml-layout.log}}, but [the test 
expecting|https://github.com/apache/logging-log4j2/blob/80d025ba68fc12d7b4d767fb25455306878279e1/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/ConcurrentLoggingWithJsonLayoutTest.java#L70]
 {{target/test-json-layout.log}}. 

> JsonLayout Throwing Exceptions And Producing Broken Logs
> --------------------------------------------------------
>
>                 Key: LOG4J2-1769
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1769
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Layouts
>    Affects Versions: 2.7
>         Environment: All Platforms
>            Reporter: Brandon Goodin
>            Assignee: Remko Popma
>            Priority: Major
>             Fix For: 2.8
>
>         Attachments: JSONLayoutIssuesTest.java, RequestStatistic.java, 
> log4j2.xml
>
>
> In a multithreaded environment JsonLayout is throwing exceptions and 
> producing fragmented logs. We were able to produce a test that demonstrates 
> this. The following exceptions and broken logging are being seen.
> {code:title=IllegalArgumentException}
> 2017-01-06 16:57:59,173 Thread-98 ERROR An exception occurred processing 
> Appender stdout java.lang.IllegalArgumentException
>       at java.nio.Buffer.position(Buffer.java:244)
>       at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:191)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.writeTo(AbstractLayout.java:179)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:160)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:36)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:176)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:169)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:160)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:447)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:432)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:416)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:402)
>       at 
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
>       at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2091)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1988)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1960)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1297)
>       at 
> org.apache.logging.log4j.JSONLayoutIssuesTest$LoggingThread.run(JSONLayoutIssuesTest.java:54)
> {code}
> {code:title=BufferOverflowException}
> 2017-01-06 16:57:59,194 Thread-99 ERROR An exception occurred processing 
> Appender stdout java.nio.BufferOverflowException
>       at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:189)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.writeTo(AbstractLayout.java:179)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:160)
>       at 
> org.apache.logging.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:36)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:176)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:169)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:160)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:447)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:432)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:416)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:402)
>       at 
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
>       at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2091)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1971)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1829)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1287)
>       at 
> org.apache.logging.log4j.JSONLayoutIssuesTest$LoggingThread.run(JSONLayoutIssuesTest.java:53)
> {code}
> {code:title=BrokenLogs}
> {"timeMillis":1483743479195,"thread":"Thread-49","level":"INFO","loggerName":"org.apache.logging.log4j.JSONLayoutIssuesTest","message":"This
>  is simple 
> text.","endOfBatch":false,"loggerFqcn":"org.apache.logging.log4j.spi.AbstractLogger","threadId":61,"threadPriority":5}
> {"timeMillis":1483743479195,"thread":"Thread-42","level":"INFO","loggerName":"org.apache.logging.log4j.JSONLayoutIssuesTest","message":"This
>  is simple 
> text.","endOfBatch":false,"loggerFqcn":"org.apache.logging.log4j.spi.AbstractLogger","threadId":54,"threadPriority":5}
> hreadPriority":5}
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to