From eb5750d224132acdd7b934ada2d9c05518189e64 Mon Sep 17 00:00:00 2001 From: Cheolsoo Park Date: Wed, 25 Feb 2015 15:00:21 -0800 Subject: [PATCH 1/3] NoSuchMethodError in Spark app is swallowed by YARN AM --- .../org/apache/spark/deploy/yarn/ApplicationMaster.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala index a9bf861d160c1..d3e7b827c48e9 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala @@ -483,14 +483,14 @@ private[spark] class ApplicationMaster( } catch { case e: InvocationTargetException => e.getCause match { - case _: InterruptedException => + case e: InterruptedException => // Reporter thread can interrupt to stop user class - case e: Exception => + case _ => finish(FinalApplicationStatus.FAILED, ApplicationMaster.EXIT_EXCEPTION_USER_CLASS, - "User class threw exception: " + e.getMessage) + "User class threw exception: " + e.getCause.getMessage) // re-throw to get it logged - throw e + throw e.getCause } } } From 1e71d2d9658f106810600146472c98f2168b3936 Mon Sep 17 00:00:00 2001 From: Cheolsoo Park Date: Wed, 25 Feb 2015 15:21:05 -0800 Subject: [PATCH 2/3] Replace placeholder with throwable --- .../org/apache/spark/deploy/yarn/ApplicationMaster.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala index d3e7b827c48e9..57b7c28ee02d8 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala @@ -483,14 +483,14 @@ private[spark] class ApplicationMaster( } catch { case e: InvocationTargetException => e.getCause match { - case e: InterruptedException => + case _: InterruptedException => // Reporter thread can interrupt to stop user class - case _ => + case e: Throwable => finish(FinalApplicationStatus.FAILED, ApplicationMaster.EXIT_EXCEPTION_USER_CLASS, - "User class threw exception: " + e.getCause.getMessage) + "User class threw exception: " + e.getMessage) // re-throw to get it logged - throw e.getCause + throw e } } } From 2a919d5544f0c4d39e931e57bd84ae6c57514109 Mon Sep 17 00:00:00 2001 From: Cheolsoo Park Date: Wed, 25 Feb 2015 15:55:09 -0800 Subject: [PATCH 3/3] Rename e with cause to avoid duplicate names --- .../org/apache/spark/deploy/yarn/ApplicationMaster.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala index 57b7c28ee02d8..20fc19166ac4e 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala @@ -485,12 +485,12 @@ private[spark] class ApplicationMaster( e.getCause match { case _: InterruptedException => // Reporter thread can interrupt to stop user class - case e: Throwable => + case cause: Throwable => finish(FinalApplicationStatus.FAILED, ApplicationMaster.EXIT_EXCEPTION_USER_CLASS, - "User class threw exception: " + e.getMessage) + "User class threw exception: " + cause.getMessage) // re-throw to get it logged - throw e + throw cause } } }