This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a commit to branch release-1.2.1
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit 61a3a496e5e6b7060d13dc5e1b0d66a34366728a
Author: voonhous <[email protected]>
AuthorDate: Fri Jul 10 01:49:49 2026 +0800

    fix(bundle): shade parquet-variant into common bundle includes for Spark 
4.1+ (#19235)
    
    Parquet 1.16.0 (Spark 4.1) split VARIANT support into a separate 
`parquet-variant`
    module carrying `org.apache.parquet.variant.VariantConverters`. 
`parquet-avro:1.16.0`,
    shaded into the spark and utilities bundles and used on the read path, 
references it, but
    the shade `<includes>` allowlists omitted parquet-variant, so the class was 
dropped from
    the bundles and absent at runtime.
    
    On Spark 4.1 every read-modify write (UPDATE / MERGE / DELETE) then aborted 
with
    NoClassDefFoundError; only INSERT succeeded. This affects any Spark 4.1 
bundle that shades
    parquet-avro: both hoodie-spark-bundle (surfaced by the hive-sync E2E, 
#19216) and
    hoodie-utilities-bundle (the HoodieStreamer standalone runtime).
    
    Add parquet-variant to the shared "common to all bundles" artifactSet in 
the root pom that
    every bundle appends to via combine.children="append". It is a transitive 
compile dep of
    parquet-avro for Parquet 1.16.0+, so it shades for Spark 4.1/4.2 and is a 
no-op for older
    Spark and bundles that pin pre-1.16 parquet. Verified the rebuilt spark4.1 
spark-bundle and
    utilities-bundle both contain VariantConverters.
    
    Fixes apache/hudi#19234
    
    (cherry picked from commit 9df73c747453790e1fea6a8be6d8bac3c37f48ab)
---
 pom.xml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pom.xml b/pom.xml
index 1d5d6e17ebfd..ae01441bf958 100644
--- a/pom.xml
+++ b/pom.xml
@@ -479,6 +479,9 @@
               <!-- afterburner module for jackson performance -->
               
<include>com.fasterxml.jackson.module:jackson-module-afterburner</include>
               
<include>com.fasterxml.jackson.module:jackson-module-scala_${scala.binary.version}</include>
+              <!-- Parquet 1.16.0+ (Spark 4.1+) splits VariantConverters into 
parquet-variant,
+                   which parquet-avro needs at runtime. No-op for older Spark. 
See apache/hudi#19234. -->
+              <include>org.apache.parquet:parquet-variant</include>
             </includes>
           </artifactSet>
           <relocations>

Reply via email to