[
https://issues.apache.org/jira/browse/YARN-9328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16783626#comment-16783626
]
Eric Yang commented on YARN-9328:
---------------------------------
[~Prabhu Joseph] {quote}For too frequent operation like commits or assignment
of container its better to log out of write lock rt ??{quote}
The bug happens when multi-threaded programs are trying to write log
concurrently. Log4j 1.x internally uses locking to initialize logging
appenders, it is unlikely to help if logging statement is moved outside of the
write lock. I think the workaround is to apply the patch that I generated for
Log4J 1.2.x to avoid initialization of logging appenders to deadlock.
> ParentQueue#apply move log outside writelock
> --------------------------------------------
>
> Key: YARN-9328
> URL: https://issues.apache.org/jira/browse/YARN-9328
> Project: Hadoop YARN
> Issue Type: Bug
> Reporter: Bibin A Chundatt
> Assignee: Prabhu Joseph
> Priority: Major
> Attachments: YARN-9328-001.patch, YARN-9328-002.patch,
> YARN-9328-003.patch
>
>
> {code}
> LOG.info("assignedContainer" + " queue=" + getQueueName()
> + " usedCapacity=" + getUsedCapacity() + "
> absoluteUsedCapacity="
> + getAbsoluteUsedCapacity() + " used=" + queueUsage.getUsed()
> + " cluster=" + cluster);
> {code}
> Logging can be done after log.. Logging could reduce performance ..
> {code}
> "Thread-16" #40 daemon prio=5 os_prio=0 tid=0x00007f181f9bb800 nid=0x125
> waiting for monitor entry [0x00007ef163bab000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at org.apache.log4j.Category.callAppenders(Category.java:204)
> - locked <0x00007ef2d803e2b8> (a org.apache.log4j.spi.RootLogger)
> at org.apache.log4j.Category.forcedLog(Category.java:391)
> at org.apache.log4j.Category.log(Category.java:856)
> at
> org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:176)
> at
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.apply(ParentQueue.java:1336)
> at
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue.apply(LeafQueue.java:1371)
> at
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp.apply(FiCaSchedulerApp.java:665)
> at
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.tryCommit(CapacityScheduler.java:2946)
> at
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler$ResourceCommitterService.run(CapacityScheduler.java:644)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]