[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