[JDK-8312534] [linux x86] assert in g1ConcurrentMark.cpp: Overflow during reference processing
Thomas Schatzl
thomas.schatzl at oracle.com
Fri Aug 4 10:48:13 UTC 2023
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