spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shixiong Zhu (JIRA)" <>
Subject [jira] [Commented] (SPARK-19644) Memory leak in Spark Streaming
Date Wed, 01 Nov 2017 19:55:00 GMT


Shixiong Zhu commented on SPARK-19644:

I happened to investigate a similar issue and found out the leak is caused by Scala reflection.
Please see my comment in

My workaround is calling "scala.reflect.runtime.universe.asInstanceOf[scala.reflect.runtime.JavaUniverse].undoLog.clear()"
manually to clean up these garbage objects. You need to put this line in the same thread that
you create Dataset/DataFrame as the leak happens in a thread local object. I think the best
place in Spark streaming is foreachRDD.

> Memory leak in Spark Streaming
> ------------------------------
>                 Key: SPARK-19644
>                 URL:
>             Project: Spark
>          Issue Type: Bug
>          Components: DStreams
>    Affects Versions: 2.0.2
>         Environment: 3 AWS EC2 c3.xLarge
> Number of cores - 3
> Number of executors 3 
> Memory to each executor 2GB
>            Reporter: Deenbandhu Agarwal
>            Priority: Major
>              Labels: memory_leak, performance
>         Attachments: Dominator_tree.png, Path2GCRoot.png, heapdump.png
> I am using streaming on the production for some aggregation and fetching data from cassandra
and saving data back to cassandra. 
> I see a gradual increase in old generation heap capacity from 1161216 Bytes to 1397760
Bytes over a period of six hours.
> After 50 hours of processing instances of class scala.collection.immutable.$colon$colon
incresed to 12,811,793 which is a huge number. 
> I think this is a clear case of memory leak

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message