Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spark related issue on HP-UX ia64 #150

Open
MBaesken opened this issue Jun 13, 2019 · 3 comments
Open

Spark related issue on HP-UX ia64 #150

MBaesken opened this issue Jun 13, 2019 · 3 comments
Labels
bug Something isn't working compatibility Relates to platform or system compatibility

Comments

@MBaesken
Copy link

MBaesken commented Jun 13, 2019

When running the renaissance benchmark on HP-UX (ia64) with a JDK8, we run into the following error message. It might be related to this Spark issue :
apache/spark@e1f6845#diff-c7483c7efce631c783676f014ba2b0ed
(seems an older Spark version is used in the benchmark , that does not check for the ability of the platform to do unaligned accesses)

error output

8/bin/java  -jar renaissance-mit-0.9.0.jar all
    ….
 
19/06/11 11:28:08 INFO BlockManagerMaster: Registered BlockManager BlockManagerId(driver, 10.66.65.205, 55276)
====== log-regression (apache-spark), iteration 0 started ======
19/06/11 11:28:16 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
        at org.apache.spark.unsafe.Platform.getDouble(Platform.java:120)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getDouble(UnsafeArrayData.java:218)
        at org.apache.spark.sql.catalyst.util.ArrayData.toDoubleArray(ArrayData.scala:103)
        at org.apache.spark.ml.linalg.VectorUDT.deserialize(VectorUDT.scala:74)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection.apply(Unknown Source)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:214)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:919)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:866)
        at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:668)
        at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:330)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:281)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
        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:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:836)
19/06/11 11:28:16 ERROR Executor: Exception in task 1.0 in stage 0.0 (TID 1)
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
        at org.apache.spark.unsafe.Platform.getInt(Platform.java:72)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getElementOffset(UnsafeArrayData.java:67)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getDouble(UnsafeArrayData.java:216)
        at org.apache.spark.sql.catalyst.util.ArrayData.toDoubleArray(ArrayData.scala:103)
        at org.apache.spark.ml.linalg.VectorUDT.deserialize(VectorUDT.scala:74)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection.apply(Unknown Source)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:214)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:919)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:866)
        at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:668)
        at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:330)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:281)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
        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:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:836)
19/06/11 11:28:16 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[Executor task launch worker-0,5,main]
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
        at org.apache.spark.unsafe.Platform.getDouble(Platform.java:120)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getDouble(UnsafeArrayData.java:218)
        at org.apache.spark.sql.catalyst.util.ArrayData.toDoubleArray(ArrayData.scala:103)
        at org.apache.spark.ml.linalg.VectorUDT.deserialize(VectorUDT.scala:74)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection.apply(Unknown Source)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:214)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:919)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:866)
        at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:668)
        at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:330)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:281)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
        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:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:836)
19/06/11 11:28:16 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[Executor task launch worker-1,5,main]
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
        at org.apache.spark.unsafe.Platform.getInt(Platform.java:72)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getElementOffset(UnsafeArrayData.java:67)
        at org.apache.spark.sql.catalyst.expressions.UnsafeArrayData.getDouble(UnsafeArrayData.java:216)
        at org.apache.spark.sql.catalyst.util.ArrayData.toDoubleArray(ArrayData.scala:103)
        at org.apache.spark.ml.linalg.VectorUDT.deserialize(VectorUDT.scala:74)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection.apply(Unknown Source)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:214)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:919)
        at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:866)
        at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:910)
        at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:668)
        at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:330)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:281)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
        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:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:836)
19/06/11 11:28:16 ERROR TaskSetManager: Task 0 in stage 0.0 failed 1 times; aborting job

@farquet
Copy link
Collaborator

farquet commented Jun 13, 2019

Hi Matthias & SAPMachine team,

Thanks a lot for the bug report !
I am afraid there is no simple workaround for that issue. The best would be to upgrade Spark to a version that would work on ia64.
I am then opening issue #152 to track our effort of upgrading all Spark benchmarks.

@farquet farquet added bug Something isn't working compatibility Relates to platform or system compatibility labels Jun 13, 2019
@axel22
Copy link
Member

axel22 commented Jun 13, 2019

Thanks for reporting this!

Indeed, we should upgrade the Spark benchmarks.

The current approach that we are planning is to open a new subproject that depends on a different Spark version, and port the existing Spark benchmarks there. The current ones, running on the old Spark version, would be kept for archival purposes (but no longer part of the official release).
Since some of the archived benchmarks might not be compatible with certain platforms (as is the case here), I think it might make sense to consider adding information about platform compatibility to benchmarks (same as with JDK compatibility), as part of the API/SPI redesign (#81). cc @lbulej

@lbulej
Copy link
Member

lbulej commented Apr 30, 2021

The master branch now uses Spark 3.0.1 and it seems that we should be able to move easily to Spark 3.1.1 (see #247).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working compatibility Relates to platform or system compatibility
Projects
None yet
Development

No branches or pull requests

4 participants