[PING] Re: RFR: 8146009: "pure virtual method called" with using new GC logging mechanism

Marcus Larsson marcus.larsson at oracle.com
Wed Oct 12 08:42:52 UTC 2016


Any further comments on the updated patch?

Marcus


On 10/10/2016 11:20 AM, Marcus Larsson wrote:
> Updated webrev after feedback:
> http://cr.openjdk.java.net/~mlarsson/8146009/webrev.01
>
> Incremental:
> http://cr.openjdk.java.net/~mlarsson/8146009/webrev.00-01
>
>
> On 10/07/2016 04: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