[ https://issues.apache.org/jira/browse/OOZIE-3160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16635447#comment-16635447 ]
Andras Piros edited comment on OOZIE-3160 at 10/2/18 1:20 PM: -------------------------------------------------------------- The root cause of the prolonged JUnit test runs was that it was harder to shut down two {{ThreadPoolExecutor}} instances within {{AsyncXCommandExecutor}} for {{newImpl}} than one {{ThreadPoolExecutor}} for {{oldImpl}}. Made the timeout value between {{ExecutorService#awaitTermination()}} and {{ExecutorService#shutdown()}} configurable, default being 30 seconds - that is changed for 1 second meanwhile testing in {{XTestCase#init()}}. [~pbacsko] can you please review amendment patch 004? Thanks! was (Author: andras.piros): The root cause of the prolonged JUnit test runs was that it was harder to shut down two {{ThreadPoolExecutor}} instances within {{AsyncXCommandExecutor}} for {{newImpl}} than one {{ThreadPoolExecutor}} for {{oldImpl}}. Made the timeout value between {{ExecutorService#awaitTermination()}} and {{ExecutorService#shutdown()}} configurable, default being 30 seconds - that is changed for 1 second meanwhile testing in {{XTestCase#init()}}. [~pbacsko] can you please review? Thanks! > PriorityDelayQueue put()/take() can cause significant CPU load due to busy > waiting > ---------------------------------------------------------------------------------- > > Key: OOZIE-3160 > URL: https://issues.apache.org/jira/browse/OOZIE-3160 > Project: Oozie > Issue Type: Bug > Components: core > Affects Versions: trunk > Environment: all platforms > Reporter: jj > Assignee: Peter Bacsko > Priority: Major > Fix For: 5.1.0 > > Attachments: 11111111111111.png, 222222222222222222.png, > OOZIE-3160-001.patch, OOZIE-3160-002.patch, OOZIE-3160-003.patch, > OOZIE-3160-004.patch, OOZIE-3160-005.patch, OOZIE-3160-006.patch, > OOZIE-3160-007.patch, OOZIE-3160-POC01.patch, OOZIE-3160-POC02.patch, > OOZIE-3160-POC02.patch, OOZIE-3160-POC03.patch, OOZIE-3160-POC04.patch, > OOZIE-3160-POC05.patch, OOZIE-3160.amend.001.patch, > OOZIE-3160.amend.002.patch, OOZIE-3160.amend.003.patch, > OOZIE-3160.amend.004.patch, PriorityDelayQueue improvement - OOZIE-3160.pdf > > > oozie process always consume high cpu. in my mechine,around 10%. > I check the source code,find take() method in PriorityDelayQueue class。 > code: > {code:java} > public QueueElement<E> take() throws InterruptedException { > QueueElement<E> e = poll(); > while (e == null) { > Thread.sleep(10); > e = poll(); > } > return e; > } > {code} > i think it's the reason of this problem. it's keep while, not await. -- This message was sent by Atlassian JIRA (v7.6.3#76005)