Zouxxyy opened a new pull request, #18023:
URL: https://github.com/apache/iceberg/pull/18023

   Nested equality-delete rows retain `InternalRecordWrapper` copies that share 
mutable nested converters. Distinct nested keys with equal hashes can collapse 
into one entry in `StructLikeSet`, and concurrent readers of cached rows can 
observe overwritten nested values.
   
   Materialize the converted structs with `StructLikeUtil.copy` before caching 
them. Keep `Record.copy()` to preserve ownership of the decoded record values.
   
   Validation with JDK 17 and Gradle 8.14.4:
   - All 12 new regression cases fail on the base commit and pass with this 
change. They cover hash collisions, stable nested keys, concurrent readers, 
nulls, date/timestamp/binary values, Avro/Parquet/ORC, and caching 
enabled/disabled.
   - `gradle -DsparkVersions= -DflinkVersions= :iceberg-data:test --tests 
org.apache.iceberg.data.TestBaseDeleteLoader --tests 
org.apache.iceberg.data.TestGenericReaderDeletes --tests 
org.apache.iceberg.data.TestGenericRecord`: 59 passed, 1 skipped.
   - `:iceberg-data:spotlessCheck` passed.
   
   ---
   **AI Disclosure**
   - Model: gpt-6
   - Platform/Tool: OpenAI Codex
   - Human Oversight: unreviewed
   - Prompt Summary: Fix shared mutable nested equality-delete keys and add 
regression tests for hash collisions and concurrent cache access.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to