Hi Matthias,

This doeesn't look possible now.  It may be worth filing an improvement
jira for.

But I'm trying to understand what you're trying to do a little better.  So
you intentionally have each thread create a new unique pool when its
submits a job?  So that pool will just get the default pool configuration,
and you will see lots of these messages in your logs?

https://github.com/apache/spark/blob/6ade5cbb498f6c6ea38779b97f2325d5cf5013f2/core/src/main/scala/org/apache/spark/scheduler/SchedulableBuilder.scala#L196-L200

What is the use case for creating pools this way?

Also if I understand correctly, it doesn't even matter if the thread dies
-- that pool will still stay around, as the rootPool will retain a
reference to its (the pools aren't really actually tied to specific
threads).

Imran

On Thu, Apr 5, 2018 at 9:46 PM, Matthias Boehm <mboe...@gmail.com> wrote:

> Hi all,
>
> for concurrent Spark jobs spawned from the driver, we use Spark's fair
> scheduler pools, which are set and unset in a thread-local manner by
> each worker thread. Typically (for rather long jobs), this works very
> well. Unfortunately, in an application with lots of very short
> parallel sections, we see 1000s of these pools remaining in the Spark
> UI, which indicates some kind of leak. Each worker cleans up its local
> property by setting it to null, but not all pools are properly
> removed. I've checked and reproduced this behavior with Spark 2.1-2.3.
>
> Now my question: Is there a way to explicitly remove these pools,
> either globally, or locally while the thread is still alive?
>
> Regards,
> Matthias
>
> ---------------------------------------------------------------------
> To unsubscribe e-mail: dev-unsubscr...@spark.apache.org
>
>

Reply via email to