RFR: 8267579: Thread::cooked_allocated_bytes() hits assert(left >= right) failed: avoid underflow

David Holmes dholmes at openjdk.java.net
Mon Jun 7 04:23:02 UTC 2021


On Fri, 4 Jun 2021 15:30:53 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

> This is a workaround to avoid hitting the assert that was recently added to pointer_delta(). 
> 
> The implementation of cooked_allocated_bytes() is perhaps questionable, in that it reads tlab pointers optimistically. However, the functionality has been in place for a long time, and the impact of changing its behavior more substantially is unknown at this time, hence this defensive workaround to reduce noise and problems seen in general testing.
> 
> Testing: tier1, tier2, tier6, tier8
> 
> Thanks
> Markus

Hi Markus,

So this fix simply unpacks used_bytes() to avoid calling pointer_delta with values that trigger the assertion. But given we see other problems with that assertion ie JDK-8268265, then could it not be that the assertion is in fact the problem? Is the assertion not making a usage assumption that is simply not valid?

Thanks,
David

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

PR: https://git.openjdk.java.net/jdk/pull/4363


More information about the hotspot-jfr-dev mailing list