diff --git a/thirdparty/auron-uniffle/src/main/scala/org/apache/spark/sql/execution/auron/shuffle/uniffle/UnifflePartitionWriter.scala b/thirdparty/auron-uniffle/src/main/scala/org/apache/spark/sql/execution/auron/shuffle/uniffle/UnifflePartitionWriter.scala index 69c65a28f..bc00ffb7e 100644 --- a/thirdparty/auron-uniffle/src/main/scala/org/apache/spark/sql/execution/auron/shuffle/uniffle/UnifflePartitionWriter.scala +++ b/thirdparty/auron-uniffle/src/main/scala/org/apache/spark/sql/execution/auron/shuffle/uniffle/UnifflePartitionWriter.scala @@ -66,7 +66,9 @@ class UnifflePartitionWriter[K, V, C]( val bufferManager = rssShuffleWriter.getBufferManager val restBlocks = bufferManager.clear() if (success && restBlocks != null && !restBlocks.isEmpty) { - rssShuffleWriterPushBlocksMethod.invoke(rssShuffleWriter, restBlocks) + rssShuffleWriter.synchronized { + rssShuffleWriterPushBlocksMethod.invoke(rssShuffleWriter, restBlocks) + } } val writeDurationMs = bufferManager.getWriteTime + (System.currentTimeMillis() - start) metrics.incWriteTime(TimeUnit.MILLISECONDS.toNanos(writeDurationMs))