[
https://issues.apache.org/jira/browse/HADOOP-19900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18083692#comment-18083692
]
ASF GitHub Bot commented on HADOOP-19900:
-----------------------------------------
smengcl opened a new pull request, #8518:
URL: https://github.com/apache/hadoop/pull/8518
https://issues.apache.org/jira/browse/HADOOP-19900
Contains content generated by Claude Code (Opus 4.7)
### Description of PR
Fix a race in `CoderUtil.getEmptyChunk()` that can cause EC writes to fail
with `ArrayIndexOutOfBoundsException` during parity encoding.
This can be hit when multiple EC key output streams in the same client JVM
use the Java raw EC encoder concurrently with different encode/reset lengths.
Each `ECKeyOutputStream` has its own encoder, but all Java encoders share the
static `CoderUtil.emptyChunk` cache. *If native ISA-L is unavailable or not
selected*, the Java `RSRawEncoder` clears parity output buffers through
`CoderUtil.resetOutputBuffers()`. Under concurrent close/flush paths,
especially with partial final stripes of different sizes, one stream can grow
the shared zero buffer for a larger encode while another smaller encode races
and shrinks it, causing the larger encode’s later `System.arraycopy()` to throw
`ArrayIndexOutOfBoundsException`.
For more details, see https://github.com/apache/ozone/pull/10324
### How was this patch tested?
- Added Claude-generated repro test.
### For code changes:
- [x] Does the title or this PR starts with the corresponding JIRA issue id
(e.g. 'HADOOP-17799. Your PR title ...')?
- [ ] Object storage: have the integration tests been executed and the
endpoint declared according to the connector-specific documentation?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`,
`NOTICE-binary` files?
### AI Tooling
If an AI tool was used:
- [x] The PR includes the phrase "Contains content generated by <tool>"
where <tool> is the name of the AI tool used.
- [x] My use of AI contributions follows the ASF legal policy
https://www.apache.org/legal/generative-tooling.html
> EC write can fail with ArrayIndexOutOfBoundsException due to CoderUtil
> emptyChunk resize race
> ---------------------------------------------------------------------------------------------
>
> Key: HADOOP-19900
> URL: https://issues.apache.org/jira/browse/HADOOP-19900
> Project: Hadoop Common
> Issue Type: Bug
> Components: erasure-coding
> Reporter: Siyao Meng
> Assignee: Siyao Meng
> Priority: Major
>
> Note: This bug was found in Ozone in HDDS-15341 . But Ozone "borrowed" some
> EC code from Hadoop Common / HDFS, after some digging, the same bug appears
> to affect HDFS as well. The code change belongs to Hadoop Common, thus filing
> this HADOOP JIRA.
> Context: https://issues.apache.org/jira/browse/HDDS-15341
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]