[
https://issues.apache.org/jira/browse/BEAM-7412?focusedWorklogId=250818&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-250818
]
ASF GitHub Bot logged work on BEAM-7412:
----------------------------------------
Author: ASF GitHub Bot
Created on: 30/May/19 08:25
Start Date: 30/May/19 08:25
Worklog Time Spent: 10m
Work Description: iemejia commented on pull request #8722: [BEAM-7412]
shut down executor service in fn harness
URL: https://github.com/apache/beam/pull/8722#discussion_r288899312
##########
File path:
sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnHarness.java
##########
@@ -203,7 +204,9 @@ public static void main(
JvmInitializers.runBeforeProcessing(options);
LOG.info("Entering instruction processing loop");
-
control.processInstructionRequests(options.as(GcsOptions.class).getExecutorService());
+ ExecutorService executorService =
options.as(GcsOptions.class).getExecutorService();
Review comment:
This does not come from this PR, but shouldn't this be in a more general
options type than `GcsOptions` ? I mean `SparkPipelineOptions` does not have
this thing, so not sure if this will have an effect.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 250818)
Time Spent: 50m (was: 40m)
> portable spark: thread/memory leak in local mode
> ------------------------------------------------
>
> Key: BEAM-7412
> URL: https://issues.apache.org/jira/browse/BEAM-7412
> Project: Beam
> Issue Type: Bug
> Components: runner-spark
> Reporter: Kyle Weaver
> Assignee: Kyle Weaver
> Priority: Major
> Attachments: Screenshot from 2019-05-20 14-26-03.png
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> When running validatesPortableRunnerBatch test on local mode, the portable
> Spark runner creates ~18k threads before becoming unable to create any more
> threads, at which point it crashes. This does not happen on standalone
> cluster mode, where ephemeral executors (independent JVMs) are used and then
> shut down, preventing whatever leakage is occurring from becoming too much of
> a problem.
> Sample stack trace:
> {{"pool-3965-thread-3" #16059 daemon prio=5 os_prio=0 tid=0x00007f9f85a81000
> nid=0x32a0 waiting on condition [0x00007f9f8b9f1000]}}
> {{ java.lang.Thread.State: TIMED_WAITING (parking)}}
> {{ at (C/C++) 0x00007fa2f32c2dae (Unknown Source)}}
> {{ at (C/C++) 0x00007fa2f2851351 (Unknown Source)}}
> {{ at sun.misc.Unsafe.park(Native Method)}}
> {{ - parking to wait for <0x0000000727bda848> (a
> java.util.concurrent.SynchronousQueue$TransferStack)}}
> {{ at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)}}
> {{ at
> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)}}
> {{ at
> java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)}}
> {{ at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)}}
> {{ at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)}}
> {{ at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)}}
> {{ at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)}}
> {{ at java.lang.Thread.run(Thread.java:748)}}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)