RFR(S): JDK-8148104 HSDB could not terminate when launched on CLI.

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Tue Jan 26 10:56:30 UTC 2016


On 26.1.2016 11:54, Dmitry Samersoff wrote:
> Yuji,
>
> I think both changes are good so I add this patch to webrev.
>
> see:
>
> http://cr.openjdk.java.net/~dsamersoff/sponsorship/kubota.yuji/JDK-8148104/webrev.02/

Thanks Yuji, Dmitry!

Thumbs up!

-JB-

>
> -Dmitry
>
>
> On 2016-01-25 13:57, KUBOTA Yuji wrote:
>> Hi Dmitry and Jaroslav,
>>
>> 2016-01-25 18:11 GMT+09:00 Jaroslav Bachorik <jaroslav.bachorik at oracle.com>:
>>> On 23.1.2016 12:13, Dmitry Samersoff wrote:
>>>> Solution:
>>>>
>>>> Create frame before we initialize agent.
>>>
>>>
>>> While this solution will work in this case I think it would be better to
>>> daemonize the WorkerThread
>>> (hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java)
>>> - that should ensure that the application will be allowed to terminate even
>>> though the worker thread is still running.
>>
>> It's reasonable for me. I could not come up with the reason why the
>> WorkerThread is not daemonized, so I wrote simply.
>> I think that WorkerThread can be abandoned when JVM halts, so
>> recreated the patch to demonize as below.
>>
>> jdk9/hs-rt/hotspot (9982:91be2fb6db87)
>> ----
>> diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java
>> b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java
>> --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java
>> +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java
>> @@ -35,7 +35,11 @@
>>     public WorkerThread() {
>>       mqb = new MessageQueueBackend();
>>       mq = mqb.getFirstQueue();
>> -    new Thread(new MainLoop()).start();
>> +
>> +    // Enable to terminate this worker during runnning by daemonize.
>> +    Thread mqthread = new Thread(new MainLoop());
>> +    mqthread.setDaemon(true);
>> +    mqthread.start();
>>     }
>>
>>     /** Runs the given Runnable in the thread represented by this
>> ----
>>
>> Sorry, Dmitry, could you please re-upload this patch if you agree with
>> this idea?
>>
>> Thanks,
>> Yuji
>>
>>> -JB-
>>>
>>>>
>>>> -Dmitry
>
>



More information about the serviceability-dev mailing list