You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Gary Gregory (JIRA)" <ji...@apache.org> on 2018/07/21 14:05:00 UTC
[jira] [Updated] (LOG4J2-2388) Thread indefinitely blocked when
logging a message in an interrupted thread
[ https://issues.apache.org/jira/browse/LOG4J2-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Gregory updated LOG4J2-2388:
---------------------------------
Summary: Thread indefinitely blocked when logging a message in an interrupted thread (was: Thread undefinitely blocked when logging a message in an interrupted thread)
> Thread indefinitely blocked when logging a message in an interrupted thread
> ---------------------------------------------------------------------------
>
> Key: LOG4J2-2388
> URL: https://issues.apache.org/jira/browse/LOG4J2-2388
> Project: Log4j 2
> Issue Type: Bug
> Components: Flume Appender
> Reporter: Failled
> Priority: Critical
>
> Logging a message to the Flume appender in an interrupted thread undefinitely block the thread.
> The thread is blocked in an unfinite loop here :
> org.apache.logging.log4j.flume.appender.FlumePersistentManager.*send*(Event) :
>
> {code:java}
> boolean interrupted = false;
> int ieCount = 0;
> do {
> try {
> future.get();
> } catch (final InterruptedException ie) {
> interrupted = true;
> ++ieCount;
> }
> } while (interrupted && ieCount <= 1);
> {code}
>
> This test case allows to reproduce the problem (add the code below in FlumePersistentAppenderTest in log4j-flume-ng module):
> {code:java}
> @Test
> public void testLogInterrupted() {
> ExecutorService executor = Executors.newSingleThreadExecutor();
> executor.execute(() -> {
> executor.shutdownNow();
> final Logger logger = LogManager.getLogger("EventLogger");
> final Marker marker = MarkerManager.getMarker("EVENT");
> logger.info(marker, "This is a test message");
> Assert.assertTrue("Interruption status not preserved",
> Thread.currentThread().isInterrupted());
> });
> }
> {code}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)