RFR(XS): 8232905: JFR fails with assertion: assert(t->unflushed_size() == 0) failed: invariant

Erik Gahlin erik.gahlin at oracle.com
Thu Nov 7 13:29:00 UTC 2019


Looks good.

Erik


On 2019-11-06 18:45, Markus Gronlund wrote:
> Greetings,
>
> Please review the following changeset.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8232905
> Webrev: http://cr.openjdk.java.net/~mgronlun/8232905/webrev01/
> Testing: jdk_jfr
>
> Summary:
> When running in-memory recordings, and free space  is becoming sparse, the oldest buffers will eventually need be reused. This is done by discarding data from the age list and then re-publicizing the buffer. The age list can also contain dynamically allocated (transient) buffers that have been released. If such a buffer is found during iteration, it is sent to mspace_release_full(buffer) for deallocation. The function mspace_release_full(buffer) asserts that there is no outstanding data in the buffer being passed for deallocation. When tallying the data to be discarded, the method buffer->discard() should be invoked instead of buffer->unflushed_size() to ensure no data lingers in the buffer when it schedules for deallocation.
>
> Thanks
> Markus


More information about the hotspot-jfr-dev mailing list