Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-32715

Broadcast block pieces may memory leak

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.6, 3.0.0, 3.1.0
    • Fix Version/s: 2.4.8, 3.0.2, 3.1.0
    • Component/s: Spark Core
    • Labels:
      None

      Description

      We use Spark thrift-server as a long-running service. A bad query submitted a heavy BroadcastNestLoopJoin operation and made driver full GC. We killed the bad query but we found the driver's memory usage was still high and full GCs had very frequency. By investigating with GC dump and log, we found the broadcast may memory leak.

      2020-08-19T18:54:02.824-0700: [Full GC (Allocation Failure) 2020-08-19T18:54:02.824-0700: [Class Histogram (before full gc):
      116G->112G(170G), 184.9121920 secs]
      [Eden: 32.0M(7616.0M)->0.0B(8704.0M) Survivors: 1088.0M->0.0B Heap: 116.4G(170.0G)->112.9G(170.0G)], [Metaspace: 177285K->177270K(182272K)]

      num #instances #bytes class name
      ----------------------------------------------
      1: 676531691 72035438432 [B
      2: 676502528 32472121344 org.apache.spark.sql.catalyst.expressions.UnsafeRow
      3: 99551 12018117568 [Ljava.lang.Object;
      4: 26570 4349629040 [I
      5: 6 3264536688 [Lorg.apache.spark.sql.catalyst.InternalRow;
      6: 1708819 256299456 [C
      7: 2338 179615208 [J
      8: 1703669 54517408 java.lang.String
      9: 103860 34896960 org.apache.spark.status.TaskDataWrapper
      10: 177396 25545024 java.net.URI
      ...

        Attachments

          Activity

            People

            • Assignee:
              cltlfcjin Lantao Jin
              Reporter:
              cltlfcjin Lantao Jin
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: