jia-gao opened a new pull request, #1641:
URL: https://github.com/apache/samza/pull/1641

   Issue: 
   We have observed logging data loss happen in StreamAppender
   The RC is that current implementation of the 
“[append()](https://github.com/apache/samza/blob/master/samza-log4j/src/main/java/org/apache/samza/logging/log4j/StreamAppender.java#L146)”
 method uses one AtomicBoolean variable to detect if the thread is called 
recursively. 
   
   However, it won’t work as expected since Log4j2 framework already applies 
recursive call prevention and it has the side effect that data loss might occur 
in the parallel logging scenario
   
   Change:
   Remove current recursive call prevention logic, Leverage [log4j2 
framework](https://github.com/apache/logging-log4j2/blob/release-2.x/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java#L122)
 to prevent recursive calls
   
   API Changes:
   Remove a metric recursivecall from StreamAppenderMetrics since it is no 
longer used
   
   Test Done:
   ./gradlew build
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@samza.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to