Request for review JDK-8169634 - Logging fails with 'pure virtual method called'

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Request for review JDK-8169634 - Logging fails with 'pure virtual method called'

Alexander Harlap

Please review suggested change for JDK-8169634 - Logging fails with 'pure virtual method called'

Change is located at http://cr.openjdk.java.net/~aharlap/8169634/webrev.00/

Reported problem points to access virtual method of of statically initialized object  MarkSweep::follow_root_closure after calling global destructor for that object (from exit()).

Currently AllStatic class MarkSweep declares few statically allocated closures and Stack<..> objects.

Suggested change converts MarkSweep class and all its closures and stacks<..>  to be the stack allocated objects.

Alex



Reply | Threaded
Open this post in threaded view
|

Fwd: Request for review JDK-8169634 - Logging fails with 'pure virtual method called'

Alexander Harlap

Hi David,

Here is a link to stalled code review where I wanted to fix problem  by avoiding globals.

What is your opinion?


Thank you,

Alex




-------- Forwarded Message --------
Subject: Request for review JDK-8169634 - Logging fails with 'pure virtual method called'
Date: Tue, 20 Dec 2016 17:16:10 -0500
From: Alexander Harlap [hidden email]
Organization: Oracle Corporation
To: [hidden email]


Please review suggested change for JDK-8169634 - Logging fails with 'pure virtual method called'

Change is located at http://cr.openjdk.java.net/~aharlap/8169634/webrev.00/

Reported problem points to access virtual method of of statically initialized object  MarkSweep::follow_root_closure after calling global destructor for that object (from exit()).

Currently AllStatic class MarkSweep declares few statically allocated closures and Stack<..> objects.

Suggested change converts MarkSweep class and all its closures and stacks<..>  to be the stack allocated objects.

Alex



Reply | Threaded
Open this post in threaded view
|

Re: Fwd: Request for review JDK-8169634 - Logging fails with 'pure virtual method called'

David Holmes
Hi Alex,

I think reducing dependencies on statically initialized and destroyed
globals is a good thing, but unless they are all eradicated then it just
narrows the window for potential problems.

There has been a lot of discussion around 8169634 and the crash is just
a symptom of the real underlying problem - which is termination of the
VM process without shutting down the VM first. So this has been passed
back to the launcher folk to see how to make things more robust - with
suggestions now in the bug report.

Thanks,
David

On 19/01/2017 1:57 AM, Alexander Harlap wrote:

> Hi David,
>
> Here is a link to stalled code review where I wanted to fix problem  by
> avoiding globals.
>
> What is your opinion?
>
>
> Thank you,
>
> Alex
>
>
>
>
> -------- Forwarded Message --------
> Subject: Request for review JDK-8169634 - Logging fails with 'pure
> virtual method called'
> Date: Tue, 20 Dec 2016 17:16:10 -0500
> From: Alexander Harlap <[hidden email]>
> Organization: Oracle Corporation
> To: [hidden email]
>
>
>
> Please review suggested change for JDK-8169634
> <https://bugs.openjdk.java.net/browse/JDK-8169634> - Logging fails with
> 'pure virtual method called'
>
> Change is located at http://cr.openjdk.java.net/~aharlap/8169634/webrev.00/
>
> Reported problem points to access virtual method of of statically
> initialized object  MarkSweep::follow_root_closure after calling global
> destructor for that object (from exit()).
>
> Currently AllStatic class MarkSweep declares few statically allocated
> closures and Stack<..> objects.
>
> Suggested change converts MarkSweep class and all its closures and
> stacks<..>  to be the stack allocated objects.
>
> Alex
>
>
>