[JDK-8312534] [linux x86] assert in g1ConcurrentMark.cpp: Overflow during reference processing
Thomas Schatzl
thomas.schatzl at oracle.com
Fri Aug 4 11:00:01 UTC 2023
(resending to the list with the original author cc'ed because idk if
he's subscribed)
On 04.08.23 12:48, Thomas Schatzl wrote:
> Hi,
>
> On 03.08.23 10:49, Tham To Thi Hong wrote:
>> Dear members of the hotspot-gc-dev mailing list,
>>
>> My name is Tham To, and I am a new contributor interested in
>> contributing to the OpenJDK project. I have encountered a bug while
>> using JDK, specifically "[JDK-8312534] [linux x86] assert in
>> g1ConcurrentMark.cpp: Overflow during reference processing." This
>> issue occurs consistently on the x86 platform and has been observed
>> multiple times over the past few weeks.
>>
>> I have reviewed the details of this bug on the OpenJDK bug tracking
>> page [JDK-8312534] and noticed that it has been marked as "OPEN" with
>> a priority of P3. Additionally, it affects JDK version 22, and the fix
>> is planned for version 22.
>>
>
> Fwiw JDK-8312534 has been closed as a duplicate of the much longer
> existing JDK-8280087, which is classified as an enhancement. But type of
> issues and priority are mostly an Oracle thing, external contributors
> typically just pick up and do whatever itches them.
>
> We are welcoming any contributions. Also thank you for providing a
> notice that you want to work on something.
>
>> After further investigation, I am interested in contributing to
>> resolve this issue. However, as a new contributor, I seek guidance on
>> how to get assigned to this bug and initiate a discussion with the
>> community to address it.
>>
>> I kindly request your assistance in providing instructions on how to
>> start contributing to this bug and
>
> If you have never contributed or looked at the Hotspot (marking) code
> before, I strongly recommend starting off with a different, less
> technical issue. Particularly the (concurrent) marking code is very old,
> badly written, und(erdo)ocumented, and changes in one place can have
> unforeseen consequences in other uses.
>
> With a few contributions done, one knows the code better, and will also
> get a JBS account and can assign oneselves to them more easily.
>
> As for this particular issue, if I were to implement this, I would look
> into the actual mark stack overflow expansion handling, the code
> enclosed by "if (_cm->has_overflown())" around g1ConcurrentMark.cpp:2815.
>
> There, between the two "sync barriers", the existing mark stack
> expansion and setup for restarting marking from scratch (which in this
> case should not happen) happens.
>
> In this case, the global mark stack needs to be expanded while there are
> still elements on it, which seems a bit onerous.
> I.e. the global mark stack is a huge block of memory, where two linked
> lists are threaded through which need to be fixed up after copying
> elements.
>
> > how to create an Oracle email account to participate in discussions
> on the mailing list.
>
> You do not need an Oracle email account for registering to the mailing
> list, indeed, this email from you has been properly received by all
> members of this mailing list.
>
> Github registration to send out a pull request can (and should) also be
> done using your email account too.
>
>>
>> Thank you for your support, and I look forward to your valuable guidance.
>>
>> Best regards,
>>
>> Tham To(Ms.)
>> Software Engineer I
>
> Hth,
> Thomas
>
>
More information about the hotspot-gc-dev
mailing list