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

Throw fetch failure exception when unable to deserialize broadcasted map statuses

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.7, 3.0.2, 3.1.1, 3.2.0
    • Fix Version/s: 2.4.8, 3.0.3, 3.1.2, 3.2.0
    • Component/s: Spark Core
    • Labels:
      None

      Description

      One customer encountered application error. From the log, it is caused by accessing non-existing broadcasted value. The broadcasted value is map statuses. There is a race-condition.

      After map statuses are broadcasted and the executors obtain serialized broadcasted map statuses. If any fetch failure happens after, Spark scheduler invalidates cached map statuses and destroy broadcasted value of the map statuses. Then any executor trying to deserialize serialized broadcasted map statuses and access broadcasted value, IOException will be thrown. Currently we don't catch it in MapOutputTrackerWorker and above exception will fail the application.

      Normally we should throw a fetch failure exception for such case and let Spark scheduler handle this.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                viirya L. C. Hsieh
                Reporter:
                viirya L. C. Hsieh
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: