linliu-code opened a new pull request, #13990:
URL: https://github.com/apache/hudi/pull/13990

   ### Describe the issue this Pull Request addresses
   
   Avro jar is responsible for generic Avro records, and Hudi jar defines some 
Avro SpecificRecord type, like HoodiWriteStat.
   When running Spark jobs with java 11+, Spark would load Avro jar and Hudi 
jar using different class loaders, as causes the `java.lang.ClassCastException` 
 that when casting a GenericRecord to a Hudi defined SpecificRecord type.
   
   ### Summary and Changelog
   
   One known solution to this issue is to explicitly construct the Hudi 
specific records using the generic records with the same schema. This PR 
implements this strategy for all important Hudi defined SpecificRecord types.
   
   Unit tests for these SpecificRecord types have been added. Meanwhile, we 
manually reproduced issue for HoodieDeleteRecordList type, and confirmed the 
fix from this PR did solve the issue.
   
   
   ### Impact
   
   Avoids the classloader issues proactively.
   
   ### Risk Level
   
   Medium.
   
   ### Documentation Update
   
   <!-- Describe any necessary documentation update if there is any new 
feature, config, or user-facing change. If not, put "none".
   
   - The config description must be updated if new configs are added or the 
default value of the configs are changed.
   - Any new feature or user-facing change requires updating the Hudi website. 
Please follow the 
     [instruction](https://hudi.apache.org/contribute/developer-setup#website) 
to make changes to the website. -->
   
   ### Contributor's checklist
   
   - [ ] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [ ] Enough context is provided in the sections above
   - [ ] Adequate tests were added if applicable
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to