RFR: JDK-8163185: jhsdb jstack cannot work with normal mode

David Holmes david.holmes at oracle.com
Fri Aug 5 05:49:22 UTC 2016


On 5/08/2016 12:24 AM, Yasumasa Suenaga wrote:
> Hi all,
>
> This review request is related to [1].
>
> "jhsdb jstack" should work as normal mode without being added --mixed
> option.
> However, this command always works as mixed mode.

So it seems to me the JStack class has a very poorly designed API and  
command-line interface. It appears that jstack wants to default to  
mixedMode and concurrentLocks, but provides no means to disable those  
defaults. Given there is no way to turn those settings off from the  
commad-line then the default should be that they are off! Then you would  
not need current proposed change.

That said the proposed fix effectively disables those defaults, which  
seems to me to be a change in behaviour.

I can't see a way to fix this without breaking existing behaviour  
somewhere. In which case I would change the way the JStack instance is  
initialized by default ie:

public JStack() {
     this(true, true);
}

becomes:

public JStack() {
     this(false, false);
}

Or it may be better to handle this on the jhsdb side and change this:

        JStack.main(newArgs.toArray(new String[newArgs.size()]));
to

        JStack js = new jstack(false,false);
        js.runWithArgs(newArgs.toArray(new String[newArgs.size()]));


Cheers,
David

> So I uploaded webrev for this issue. Could you review it?
>
>   http://cr.openjdk.java.net/~ysuenaga/JDK-8163185/webrev.00/
>
>
> I'm jdk 9 reviewer (ysuenaga), but I cannot access JPRT.
> So I need a sponsor.
>
>
> Thanks,
>
> Yasumasa
>
>
> [1]
> http://mail.openjdk.java.net/pipermail/serviceability-dev/2016-August/020087.html
>


More information about the serviceability-dev mailing list