RFR: 8349241: Fix the concurrent execution JVM crash of StringBuilder::append(int/long) [v8]

Thomas Stuefe stuefe at openjdk.org
Wed Feb 5 15:12:11 UTC 2025


On Tue, 4 Feb 2025 22:59:55 GMT, Shaojin Wen <swen at openjdk.org> wrote:

>> Shaojin Wen has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fx comments
>
> Thanks @RogerRiggs, your suggestion is great, I have fixed it, please help me review it again.

> > @wenshao Thank you. This seems to be a GC problem. I adjusted the JBS issue accordingly. You set this to "24" as affected version, but if this is a mainline issue, please add 25 and if possible all other versions this occurs in. If possible, please attach an hs-err file or at least the crash stack.
> 
> I added the hs-err file in the reply above. This is not a GC problem. The getChars method uses StringUTF16.putChar, which is equivalent to Unsafe.putChar. There is no out-of-bounds check. When concurrent, out-of-bounds writes will occur, causing JVM Crash.

@wenshao I see. Yes, you are right. Interesting - I was not aware of JDK code using unsafe-like put calls internally.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23427#issuecomment-2637132895


More information about the core-libs-dev mailing list