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

Reply via email to