[
https://issues.apache.org/jira/browse/SPARK-15822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15633719#comment-15633719
]
Nic Eggert commented on SPARK-15822:
------------------------------------
Yes, I'm caching right before the action that causes the crash.
Here's the code snippet:
{code}
g.vertices.cache
val colorsDF = g.vertices.select(colorCol).distinct
colorsDF.explain(true)
val colors = colorsDF.rdd.map(_.getString(0)).collect.toList
{code}
and the explain output:
{code}
== Parsed Logical Plan ==
Aggregate [idType#126], [idType#126]
+- Project [idType#126]
+- Project [id#125,idType#126,date#127,uid#128]
+- Filter (degree#132 < 100)
+- Project [id#125,idType#126,date#127,uid#128,degree#132]
+- Join Inner, Some((id#125 = id#130))
:- LogicalRDD [id#125,idType#126,date#127,uid#128],
MapPartitionsRDD[81] at createDataFrame at package.scala:67
+- Aggregate [id#130],
[id#130,cast((count(1),mode=Complete,isDistinct=false) as int) AS degree#132]
+- Project [id#130]
+- Generate explode(array(src#84,dst#85)), false, false,
None, [id#130]
+- LogicalRDD
[src#84,dst#85,srcType#86,dstType#87,date#88,relationship#89],
MapPartitionsRDD[46] at createDataFrame at package.scala:67
== Analyzed Logical Plan ==
idType: string
Aggregate [idType#126], [idType#126]
+- Project [idType#126]
+- Project [id#125,idType#126,date#127,uid#128]
+- Filter (degree#132 < 100)
+- Project [id#125,idType#126,date#127,uid#128,degree#132]
+- Join Inner, Some((id#125 = id#130))
:- LogicalRDD [id#125,idType#126,date#127,uid#128],
MapPartitionsRDD[81] at createDataFrame at package.scala:67
+- Aggregate [id#130],
[id#130,cast((count(1),mode=Complete,isDistinct=false) as int) AS degree#132]
+- Project [id#130]
+- Generate explode(array(src#84,dst#85)), false, false,
None, [id#130]
+- LogicalRDD
[src#84,dst#85,srcType#86,dstType#87,date#88,relationship#89],
MapPartitionsRDD[46] at createDataFrame at package.scala:67
== Optimized Logical Plan ==
Aggregate [idType#126], [idType#126]
+- Project [idType#126]
+- InMemoryRelation [id#125,idType#126,date#127,uid#128], true, 10000,
StorageLevel(true, true, false, true, 1), Project
[id#125,idType#126,date#127,uid#128], None
== Physical Plan ==
TungstenAggregate(key=[idType#126], functions=[], output=[idType#126])
+- TungstenExchange hashpartitioning(idType#126,2400), None
+- TungstenAggregate(key=[idType#126], functions=[], output=[idType#126])
+- InMemoryColumnarTableScan [idType#126], InMemoryRelation
[id#125,idType#126,date#127,uid#128], true, 10000, StorageLevel(true, true,
false, true, 1), Project [id#125,idType#126,date#127,uid#128], None
{code}
Doesn't seem like anything too complicated.
I'll also note that when I turn off Tungsten, I get various other errors. Is
G1GC just not well-supported anymore? This step of my program runs fine with
other GCs (I have problems later due to GC pauses, but that's another issue).
> segmentation violation in o.a.s.unsafe.types.UTF8String
> --------------------------------------------------------
>
> Key: SPARK-15822
> URL: https://issues.apache.org/jira/browse/SPARK-15822
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 2.0.0
> Environment: linux amd64
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
> Reporter: Pete Robbins
> Assignee: Herman van Hovell
> Priority: Blocker
> Fix For: 2.0.0
>
>
> Executors fail with segmentation violation while running application with
> spark.memory.offHeap.enabled true
> spark.memory.offHeap.size 512m
> Also now reproduced with
> spark.memory.offHeap.enabled false
> {noformat}
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # SIGSEGV (0xb) at pc=0x00007f4559b4d4bd, pid=14182, tid=139935319750400
> #
> # JRE version: OpenJDK Runtime Environment (8.0_91-b14) (build 1.8.0_91-b14)
> # Java VM: OpenJDK 64-Bit Server VM (25.91-b14 mixed mode linux-amd64
> compressed oops)
> # Problematic frame:
> # J 4816 C2
> org.apache.spark.unsafe.types.UTF8String.compareTo(Lorg/apache/spark/unsafe/types/UTF8String;)I
> (64 bytes) @ 0x00007f4559b4d4bd [0x00007f4559b4d460+0x5d]
> {noformat}
> We initially saw this on IBM java on PowerPC box but is recreatable on linux
> with OpenJDK. On linux with IBM Java 8 we see a null pointer exception at the
> same code point:
> {noformat}
> 16/06/08 11:14:58 ERROR Executor: Exception in task 1.0 in stage 5.0 (TID 48)
> java.lang.NullPointerException
> at
> org.apache.spark.unsafe.types.UTF8String.compareTo(UTF8String.java:831)
> at org.apache.spark.unsafe.types.UTF8String.compare(UTF8String.java:844)
> at
> org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.findNextInnerJoinRows$(Unknown
> Source)
> at
> org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.processNext(Unknown
> Source)
> at
> org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
> at
> org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$doExecute$2$$anon$2.hasNext(WholeStageCodegenExec.scala:377)
> at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
> at
> scala.collection.convert.Wrappers$IteratorWrapper.hasNext(Wrappers.scala:30)
> at org.spark_project.guava.collect.Ordering.leastOf(Ordering.java:664)
> at org.apache.spark.util.collection.Utils$.takeOrdered(Utils.scala:37)
> at
> org.apache.spark.rdd.RDD$$anonfun$takeOrdered$1$$anonfun$30.apply(RDD.scala:1365)
> at
> org.apache.spark.rdd.RDD$$anonfun$takeOrdered$1$$anonfun$30.apply(RDD.scala:1362)
> at
> org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$23.apply(RDD.scala:757)
> at
> org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$23.apply(RDD.scala:757)
> at
> org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
> at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:318)
> at org.apache.spark.rdd.RDD.iterator(RDD.scala:282)
> at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:70)
> at org.apache.spark.scheduler.Task.run(Task.scala:85)
> at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.lang.Thread.run(Thread.java:785)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]