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

ShuffleExchange.nodeName should handle null coordinator

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Trivial
    • Resolution: Fixed
    • 2.2.0
    • 2.2.0
    • SQL

    Description

      A ShuffleExchange's coordinator can be null sometimes, and when we need to do a toString() on it, it'll go to ShuffleExchange.nodeName() and throw a MatchError there because of inexhaustive match – the match only handles Some and None, but doesn't handle null.

      An example of this issue is when trying to inspect a Catalyst physical operator on the Executor side in an IDE:

      child = {WholeStageCodegenExec@13881} Method threw 'scala.MatchError' exception. Cannot evaluate org.apache.spark.sql.execution.WholeStageCodegenExec.toString()
      

      where this WholeStageCodegenExec transitively references a ShuffleExchange.
      On the Executor side, this ShuffleExchange instance is deserialized from the data sent over from the Driver, and because the coordinator field is marked transient, it's not carried over to the Executor, that's why it can be null upon inspection.

      Attachments

        Issue Links

          Activity

            People

              rednaxelafx Kris Mok
              rednaxelafx Kris Mok
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: