RFR: JDK-8211013: TESTBUG] nsk/jdb/kill/kill002 wait for message and prompt

JC Beyler jcbeyler at google.com
Tue Oct 23 18:13:16 UTC 2018


Hi Gary,

Looks good to me (not an official reviewer though),
Jc

On Tue, Oct 23, 2018 at 11:08 AM Gary Adams <gary.adams at oracle.com> wrote:

> Could I get a second reviewer for this change.
>
> On 10/15/18, 3:16 PM, Chris Plummer wrote:
> > Hi Gary,
> >
> > I think the simple prompt is meant to indicate that execution is
> > suspended, but there is no current thread. I don't think that is the
> > case here, so probably best not to use your alternate suggestion of a
> > simple prompt. There doesn't seem to be much purpose in the first
> > prompt being printed. You also seem to just be handling the situation
> > the same as we do for other async commands, so looks good to me.
> >
> > thanks,
> >
> > Chris
> >
> > On 10/15/18 10:44 AM, Gary Adams wrote:
> >> kill ... killing ... killed <prompt>
> >>
> >> This bug was filed to cover the issue with the kill002 test,
> >> which sometimes did not consume enough of the reply
> >> messages after the wait for the "killed" message is observed.
> >>
> >> When a "kill" command is issued it is processed as an asynchronous
> >> command. The "killing" message is presented before the action is
> >> evaluated, and the "killed" message is presented after the evaluation
> >> returns. When the asynchronous action is completed a prompt is
> >> displayed after restoring the current thread info when the action
> >> was requested.
> >>
> >>   Issue: https://bugs.openjdk.java.net/browse/JDK-8211013
> >>
> >> Proposed fix:
> >>
> >> diff --git
> >> a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java
> >> b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java
> >> --- a/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java
> >> +++ b/src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java
> >> @@ -488,6 +488,7 @@
> >>                              showPrompt = false;
> >>                              evaluator.commandNext();
> >>                          } else if (cmd.equals("kill")) {
> >> +                            showPrompt = false;        //
> >> asynchronous command
> >>                              evaluator.commandKill(t);
> >>                          } else if (cmd.equals("interrupt")) {
> >>                              evaluator.commandInterrupt(t);
> >>
> >> Sample output:
> >> ...
> >> main[1] threads
> >> Group system:
> >>   (java.lang.ref.Reference$ReferenceHandler)0x172 Reference Handler
> >> running
> >>   (java.lang.ref.Finalizer$FinalizerThread)0x173 Finalizer
> >> cond. waiting
> >>   (java.lang.Thread)0x174                         Signal Dispatcher
> >> running
> >> Group main:
> >>   (java.lang.Thread)0x1 main              running (at breakpoint)
> >>   (nsk.jdb.kill.kill002.MyThread)0x2c9 Thread-0          cond. waiting
> >>   (nsk.jdb.kill.kill002.MyThread)0x2e2 Thread-1          cond. waiting
> >>   (nsk.jdb.kill.kill002.MyThread)0x2e3 Thread-2          cond. waiting
> >>   (nsk.jdb.kill.kill002.MyThread)0x2e4 Thread-3          cond. waiting
> >>   (nsk.jdb.kill.kill002.MyThread)0x2e5 Thread-4          cond. waiting
> >> Group InnocuousThreadGroup:
> >>   (jdk.internal.misc.InnocuousThread)0x19a Common-Cleaner    cond.
> >> waiting
> >> main[1] kill 0x2c9 nsk.jdb.kill.kill002.kill002a.exceptions[0]
> >> killing thread: Thread-0
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-0', id=713)
> >> killed
> >> main[1] kill 0x2e2 nsk.jdb.kill.kill002.kill002a.exceptions[1]
> >> killing thread: Thread-1
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-1', id=738)
> >> killed
> >> main[1] kill 0x2e3 nsk.jdb.kill.kill002.kill002a.exceptions[2]
> >> killing thread: Thread-2
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-2', id=739)
> >> killed
> >> main[1] kill 0x2e4 nsk.jdb.kill.kill002.kill002a.exceptions[3]
> >> killing thread: Thread-3
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-3', id=740)
> >> killed
> >> main[1] kill 0x2e5 nsk.jdb.kill.kill002.kill002a.exceptions[4]
> >> killing thread: Thread-4
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-4', id=741)
> >> killed
> >> main[1] threads
> >> ...
> >>
> >> An alternate proposal would include the simple prompt. e.g.
> >> ...
> >> main[1] kill 0x2c9 nsk.jdb.kill.kill002.kill002a.exceptions[0]
> >> > killing thread: Thread-0
> >> instance of nsk.jdb.kill.kill002.MyThread(name='Thread-0', id=713)
> >> killed
> >> main[1] kill 0x2e2 nsk.jdb.kill.kill002.kill002a.exceptions[1]
> >> > killing thread: Thread-1
> >>
> >> Test in progress.
> >
> >
>
>

-- 

Thanks,
Jc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20181023/7220b747/attachment-0001.html>


More information about the serviceability-dev mailing list