RFR: 8146009: "pure virtual method called" with using new GC logging mechanism
Marcus Larsson
marcus.larsson at oracle.com
Mon Oct 10 07:24:44 UTC 2016
Hi,
Thanks for looking at this.
On 10/07/2016 06:05 PM, Michail Chernov wrote:
> Hi Marcus,
>
> Thank you for fixing this.
>
> Could you please change @requires in the test?
>
> It should be
>
> * @requires vm.gc.G1
>
> instead of
>
> * @requires vm.gc=="G1" | vm.gc=="null"
>
> New form of tag is applicable for platforms where G1 are not supported
> and allows to exclude this test on those platforms. Older version of
> tag can cause to the test failure.
Will fix!
Marcus
>
> Thanks,
> Michail
>
>
> On 10/07/2016 05:26 PM, Marcus Larsson wrote:
>> Hi,
>>
>> Making another attempt to fix this issue.
>>
>> Summary:
>> The following patch resolves a problem where the VM would crash
>> during shutdown due to static log related memory being de-initialized
>> before the last use of the logging framework. The solution involves
>> parts of the Nifty Counter idiom [0] to control static initialization
>> and de-initialization of stdout's and stderr's LogOutputs. Both
>> objects are now allocated using placement new, and avoids destructor
>> calls during de-initialization. The LogStreamInitializer makes sure
>> both objects are initialized before first use.
>>
>> Because the LogOutput::Stdout/err pointers could no longer be kept in
>> LogOutput, I've replaced all usages of them with the new references
>> instead.
>>
>> The patch includes a regression test for this issue, contributed by
>> Michail Chernov.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~mlarsson/8146009/webrev.00
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8146009
>>
>> Testing:
>> JPRT testset hotspot, included test on supported platforms.
>>
>> Thanks,
>> Marcus
>>
>> [0] https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Nifty_Counter
>
More information about the hotspot-dev
mailing list