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

NPE when driver.podTemplateFile defines no containers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 3.0.1
    • None
    • Kubernetes
    • None

    Description

      An empty pod template leads to the following NPE:

      21/01/15 18:44:32 ERROR KubernetesUtils: Encountered exception while attempting to load initial pod spec from file
      java.lang.NullPointerException
      	at org.apache.spark.deploy.k8s.KubernetesUtils$.selectSparkContainer(KubernetesUtils.scala:108)
      	at org.apache.spark.deploy.k8s.KubernetesUtils$.loadPodFromTemplate(KubernetesUtils.scala:88)
      	at org.apache.spark.deploy.k8s.submit.KubernetesDriverBuilder.$anonfun$buildFromFeatures$1(KubernetesDriverBuilder.scala:36)
      	at scala.Option.map(Option.scala:230)
      	at org.apache.spark.deploy.k8s.submit.KubernetesDriverBuilder.buildFromFeatures(KubernetesDriverBuilder.scala:32)
      	at org.apache.spark.deploy.k8s.submit.Client.run(KubernetesClientApplication.scala:98)
      	at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.$anonfun$run$4(KubernetesClientApplication.scala:221)
      	at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.$anonfun$run$4$adapted(KubernetesClientApplication.scala:215)
      	at org.apache.spark.util.Utils$.tryWithResource(Utils.scala:2539)
      	at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.run(KubernetesClientApplication.scala:215)
      	at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.start(KubernetesClientApplication.scala:188)
      	at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:928)
      	at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
      	at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
      	at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
      	at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1007)
      	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1016)
      	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
      
      $> cat empty-template.yml
      spec:
      
      $> ./bin/run-example \
        --master k8s://$K8S_SERVER \
        --deploy-mode cluster \
        --conf spark.kubernetes.driver.podTemplateFile=empty-template.yml \
        --name $POD_NAME \
        --jars local:///opt/spark/examples/jars/spark-examples_2.12-3.0.1.jar \
        --conf spark.kubernetes.container.image=spark:v3.0.1 \
        --conf spark.kubernetes.driver.pod.name=$POD_NAME \
        --conf spark.kubernetes.namespace=spark-demo \
        --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
        --verbose \
         SparkPi 10
      

      It appears that the implicit requirement is that there's at least one well-defined container of any name (not necessarily spark.kubernetes.driver.podTemplateContainerName).

      Attachments

        Activity

          People

            Unassigned Unassigned
            jlaskowski Jacek Laskowski
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: