RFR(S): 8228960: [TESTBUG] containers/docker/TestJcmdWithSideCar.java: jcmd reports main class as 'Unknown'

mikhailo.seledtsov at oracle.com mikhailo.seledtsov at oracle.com
Mon Aug 12 22:59:05 UTC 2019

Here is an updated webrev: 

I am using a simple file-based mechanism to communicate between the 
processes. The "EventGeneratorLoop" process creates a specific "signal" 
file on a shared mounted volume, while the main test process waits  for 
the file to exist before running the test cases.

Passes on Linux-x64 Docker-enabled host. Testing in the test cluster is 
in progress.

Thank you,


On 8/7/19 5:11 PM, David Holmes wrote:
> On 8/08/2019 9:04 am, Mikhailo Seledtsov wrote:
>> Hi Severin, Bob,
>>    Thank you for reviewing the code.
>> On 8/7/19, 11:38 AM, Bob Vandette wrote:
>>> Can’t you come up with a better way of synchronizing the test by 
>>> possibly writing a
>>> file and waiting for it to exist with a timeout?
>> I will try out this approach.
> This seems like a fundamental problem with jcmd - so cc'ing 
> serviceability-dev.
> But I'm pretty sure they recently addressed a similar issue with the 
> premature sending of the attach signal?
> David
> -----
>> Thanks,
>> Misha
>>> Isn’t there a shared volume between the two
>>> processes?
>>> We’ve been fighting test reliability for a while now.  I can only 
>>> hope we’re getting
>>> to the end.
>>> Bob.
>>>> On Aug 7, 2019, at 2:18 PM, Severin Gehwolf<sgehwolf at redhat.com>>>> wrote:
>>>> Hi Misha,
>>>> On Tue, 2019-08-06 at 20:17 -0700, mikhailo.seledtsov at oracle.com 
>>>> wrote:
>>>>> Please review this change that fixes a container test 
>>>>> TestJcmdWithSideCar.
>>>>> My investigation indicated that a root cause for this failure is:
>>>>> JCMD -l shows 'Unknown' for class name because the main class has not
>>>>> been loaded yet.
>>>>> The target test JVM has started, it is initializing, but has not 
>>>>> loaded
>>>>> the main test class.
>>>> That's what I've found too.
>>>>> The proposed solution is to try 'jcmd -l' several times, with a short
>>>>> sleep in between.
>>>> Thread.sleep() isn't great, but I'm not sure there is an alternative.
>>>>> Also I have commented out the testCase02() due to another bug:
>>>>> "JDK-8228850: jhsdb jinfo fails with ClassCastException:
>>>>> s.j.h.oops.TypeArray cannot be cast to s.j.h.oops.Instance",
>>>>> which is not a test bug. IMO, it is better to run the test and skip a
>>>>> sub-case than to skip the entire test.
>>>>>      JBS: https://bugs.openjdk.java.net/browse/JDK-8228960
>>>>>      Webrev: http://cr.openjdk.java.net/~mseledtsov/8228960.00/
>>>> Looks OK to me.
>>>> Thanks,
>>>> Severin

More information about the hotspot-runtime-dev mailing list