[ 
https://issues.apache.org/jira/browse/SPARK-46127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hyukjin Kwon resolved SPARK-46127.
----------------------------------
    Fix Version/s: 4.0.0
       Resolution: Fixed

Issue resolved by pull request 44044
[https://github.com/apache/spark/pull/44044]

> Flaky 
> `pyspark.tests.test_worker.WorkerSegfaultNonDaemonTest.test_python_segfault` 
> with Python 3.12
> ---------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-46127
>                 URL: https://issues.apache.org/jira/browse/SPARK-46127
>             Project: Spark
>          Issue Type: Sub-task
>          Components: PySpark
>    Affects Versions: 4.0.0
>            Reporter: Hyukjin Kwon
>            Assignee: Hyukjin Kwon
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>
> {code}
> Traceback (most recent call last):
>   File "/__w/spark/spark/python/pyspark/tests/test_worker.py", line 241, in 
> test_python_segfault
>     self.sc.parallelize([1]).map(lambda x: f()).count()
>   File "/__w/spark/spark/python/pyspark/rdd.py", line 2315, in count
>     return self.mapPartitions(lambda i: [sum(1 for _ in i)]).sum()
>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/__w/spark/spark/python/pyspark/rdd.py", line 2290, in sum
>     return self.mapPartitions(lambda x: [sum(x)]).fold(  # type: 
> ignore[return-value]
>            
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/__w/spark/spark/python/pyspark/rdd.py", line 2043, in fold
>     vals = self.mapPartitions(func).collect()
>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/__w/spark/spark/python/pyspark/rdd.py", line 1832, in collect
>     sock_info = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())
>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File 
> "/__w/spark/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py", 
> line 1322, in __call__
>     return_value = get_return_value(
>                    ^^^^^^^^^^^^^^^^^
>   File "/__w/spark/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/protocol.py", 
> line 326, in get_return_value
>     raise Py4JJavaError(
> py4j.protocol.Py4JJavaError: An error occurred while calling 
> z:org.apache.spark.api.python.PythonRDD.collectAndServe.
> : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 
> in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 
> (TID 0) (localhost executor driver): org.apache.spark.SparkException: Python 
> worker exited unexpectedly (crashed)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:560)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:535)
>       at 
> scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
>       at 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:863)
>       at 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:843)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:473)
>       at 
> org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
>       at scala.collection.mutable.Growable.addAll(Growable.scala:61)
>       at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
>       at scala.collection.mutable.ArrayBuilder.addAll(ArrayBuilder.scala:67)
>       at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
>       at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:374)
>       at py4j.Gateway.invoke(Gateway.java:282)
>       at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
>       at py4j.commands.CallCommand.execute(CallCommand.java:79)
>       at 
> py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
>       at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
>       at java.base/java.lang.Thread.run(Thread.java:840)
> Caused by: org.apache.spark.SparkException: Python worker exited unexpectedly 
> (crashed)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:560)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:535)
>       at 
> scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
>       at 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:863)
>       at 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:843)
>       at 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:473)
>       at 
> org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
>       at scala.collection.mutable.Growable.addAll(Growable.scala:61)
>       at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
>       at scala.collection.mutable.ArrayBuilder.addAll(ArrayBuilder.scala:67)
>       at scala.collection.IterableOnceOps.toArray(IterableOnce.scala:1346)
>       at scala.collection.IterableOnceOps.toArray$(IterableOnce.scala:1339)
>       at 
> org.apache.spark.InterruptibleIterator.toArray(InterruptibleIterator.scala:28)
>       at org.apache.spark.rdd.RDD.$anonfun$collect$2(RDD.scala:1047)
>       at 
> org.apache.spark.SparkContext.$anonfun$runJob$5(SparkContext.scala:2468)
>       at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:93)
>       at 
> org.apache.spark.TaskContext.runTaskWithListeners(TaskContext.scala:166)
>       at org.apache.spark.scheduler.Task.run(Task.scala:141)
>       at 
> org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$4(Executor.scala:628)
>       at 
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally(SparkErrorUtils.scala:64)
>       at 
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally$(SparkErrorUtils.scala:61)
>       at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:96)
>       at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:631)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>       ... 1 more
> Caused by: java.io.EOFException
>       at java.base/java.io.DataInputStream.readInt(DataInputStream.java:386)
>       at 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:851)
>       ... 22 more
> During handling of the above exception, another exception occurred:
> Traceback (most recent call last):
>   File "/__w/spark/spark/python/pyspark/tests/test_worker.py", line 243, in 
> test_python_segfault
>     self.assertRegex(str(e), "Segmentation fault")
> AssertionError: Regex didn't match: 'Segmentation fault' not found in 'An 
> error occurred while calling 
> z:org.apache.spark.api.python.PythonRDD.collectAndServe.\n: 
> org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in 
> stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 
> (TID 0) (localhost executor driver): org.apache.spark.SparkException: Python 
> worker exited unexpectedly (crashed)\n\tat 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:560)\n\tat
>  
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:535)\n\tat
>  
> scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)\n\tat
>  
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:863)\n\tat
>  
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:843)\n\tat
>  
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:473)\n\tat
>  
> org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)\n\tat
>  scala.collection.mutable.Growable.addAll(Growable.scala:61)\n\tat 
> scala.collection.mutable.Growable.addAll$(Growable.scala:57)\n\tat 
> scala.collection.mutable.ArrayBuilder.addAll(ArrayBuilder.scala:67)\n\tat 
> scala.collection.IterableOnceOps.toArray(IterableOnce.scala:1346)\n\tat 
> scala.collection.IterableOnceOps.toArray$(IterableOnce.scala:1339)\n\tat 
> org.apache.spark.InterruptibleIterator.toArray(InterruptibleIterator.scala:28)\n\tat
>  org.apache.spark.rdd.RDD.$anonfun$collect$2(RDD.scala:1047)\n\tat 
> org.apache.spark.SparkContext.$anonfun$runJob$5(SparkContext.scala:2468)\n\tat
>  org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:93)\n\tat 
> org.apache.spark.TaskContext.runTaskWithListeners(TaskContext.scala:166)\n\tat
>  org.apache.spark.scheduler.Task.run(Task.scala:141)\n\tat 
> org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$4(Executor.scala:628)\n\tat
>  
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally(SparkErrorUtils.scala:64)\n\tat
>  
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally$(SparkErrorUtils.scala:61)\n\tat
>  org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:96)\n\tat 
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:631)\n\tat 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat
>  
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat
>  java.base/java.lang.Thread.run(Thread.java:840)\nCaused by: 
> java.io.EOFException\n\tat 
> java.base/java.io.DataInputStream.readInt(DataInputStream.java:386)\n\tat 
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:851)\n\t...
>  22 more\n\nDriver stacktrace:\n\tat 
> org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2(DAGScheduler.scala:2820)\n\tat
>  
> org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2$adapted(DAGScheduler.scala:2817)\n\tat
>  scala.collection.immutable.List.foreach(List.scala:333)\n\tat 
> org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:2817)\n\tat
>  
> org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1(DAGScheduler.scala:1258)\n\tat
>  
> org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1$adapted(DAGScheduler.scala:1258)\n\tat
>  scala.Option.foreach(Option.scala:437)\n\tat 
> org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:1258)\n\tat
>  
> org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:3087)\n\tat
>  
> org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:3021)\n\tat
>  
> org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:3010)\n\tat
>  org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)\n\tat 
> org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:990)\n\tat 
> org.apache.spark.SparkContext.runJob(SparkContext.scala:2428)\n\tat 
> org.apache.spark.SparkContext.runJob(SparkContext.scala:2449)\n\tat 
> org.apache.spark.SparkContext.runJob(SparkContext.scala:2468)\n\tat 
> org.apache.spark.SparkContext.runJob(SparkContext.scala:2493)\n\tat 
> org.apache.spark.rdd.RDD.$anonfun$collect$1(RDD.scala:1047)\n\tat 
> org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)\n\tat
>  
> org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)\n\tat
>  org.apache.spark.rdd.RDD.withScope(RDD.scala:408)\n\tat 
> org.apache.spark.rdd.RDD.collect(RDD.scala:1046)\n\tat 
> org.apache.spark.api.python.PythonRDD$.collectAndServe(PythonRDD.scala:196)\n\tat
>  org.apache.spark.api.python.PythonRDD.collectAndServe(PythonRDD.scala)\n\tat 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)\n\tat 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n\tat
>  
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
>  java.base/java.lang.reflect.Method.invoke(Method.java:568)\n\tat 
> py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)\n\tat 
> py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:374)\n\tat 
> py4j.Gateway.invoke(Gateway.java:282)\n\tat 
> py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)\n\tat 
> py4j.commands.CallCommand.execute(CallCommand.java:79)\n\tat 
> py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)\n\tat
>  py4j.ClientServerConnection.run(ClientServerConnection.java:106)\n\tat 
> java.base/java.lang.Thread.run(Thread.java:840)\nCaused by: 
> org.apache.spark.SparkException: Python worker exited unexpectedly 
> (crashed)\n\tat 
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:560)\n\tat
>  
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:535)\n\tat
>  
> scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)\n\tat
>  
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:863)\n\tat
>  
> org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:843)\n\tat
>  
> org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:473)\n\tat
>  
> org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)\n\tat
>  scala.collection.mutable.Growable.addAll(Growable.scala:61)\n\tat 
> scala.collection.mutable.Growable.addAll$(Growable.scala:57)\n\tat 
> scala.collection.mutable.ArrayBuilder.addAll(ArrayBuilder.scala:67)\n\tat 
> scala.collection.IterableOnceOps.toArray(IterableOnce.scala:1346)\n\tat 
> scala.collection.IterableOnceOps.toArray$(IterableOnce.scala:1339)\n\tat 
> org.apache.spark.InterruptibleIterator.toArray(InterruptibleIterator.scala:28)\n\tat
>  org.apache.spark.rdd.RDD.$anonfun$collect$2(RDD.scala:1047)\n\tat 
> org.apache.spark.SparkContext.$anonfun$runJob$5(SparkContext.scala:2468)\n\tat
>  org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:93)\n\tat 
> org.apache.spark.TaskContext.runTaskWithListeners(TaskContext.scala:166)\n\tat
>  org.apache.spark.scheduler.Task.run(Task.scala:141)\n\tat 
> org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$4(Executor.scala:628)\n\tat
>  
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally(SparkErrorUtils.scala:64)\n\tat
>  
> org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally$(SparkErrorUtils.scala:61)\n\tat
>  org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:96)\n\tat 
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:631)\n\tat 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat
>  
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\t...
>  1 more\nCaused by: java.io.EOFException\n\tat 
> java.base/java.io.DataInputStream.readInt(DataInputStream.java:386)\n\tat org
> {code}
> This is flaky 
> https://github.com/apache/spark/actions/runs/6996322044/job/19032101353



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to