JDK-8175512 : new TestPrintMdo.java fails with -XX:TieredStopAtLevel=1
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc-agent
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2017-02-22
  • Updated: 2018-01-17
  • Resolved: 2017-02-28
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Fixed 9 b161Fixed
Related Reports
Duplicate :  
Relates :  
Description
This only seems to happen on windows-x86.  I tried to force a failure on linux with -XX:-NeverActAsServerClassMachine but it didn't work.
Comments
Vladimir's response: ====================================================================================================== Hi Jini, You understanding is correct. With -XX:TieredStopAtLevel=1 no profiling information is collected similar to Client mode. Note, that information will be collected with values > 1. Regards, Vladimir
24-02-2017

The test would need to be excluded for the -XX:TieredStopAtLevel=1 case. My mail on this and a clarification on this from Tobias Hartmann below: ================================================================================================ Hi Jini, On 23.02.2017 04:58, Jini George wrote: > Hi Tobias and Vladimir, > > I work on the serviceability agent and I have put in a test case (TestPrintMdo.java) which tests the printing of the method data objects of the various methods through the "printmdo" command of clhsdb. The test currently fails when the hotspot option "-XX:TieredStopAtLevel=1" is specified, since it seems that there are no method data objects when this option is specified. I know that under the following circumstances, we would not have method data objects for the methods. > > 1. Client runs > 2. Emulated client runs > 3. -Xint with -XX:-ProfileInterpreter > 4. if NeverActAsServerClassMachine is true (might be implied by 1 and 2 above -- I am not sure) > > and now it looks like I have to add "-XX:TieredStopAtLevel=1" also to this list. Please let me know if my understanding is correct and also the other circumstances where the method data objects could be null -- that would help me in correcting the test so that the mdo output is not checked under these circumstances. With -XX:TieredStopAtLevel=1, C1 does not instrument the generated code for profiling and therefore no method data objects are created from compiled code. However, with ProfileInterpreter enabled, the interpreter should still generate method data objects in some cases (see usages of Method::build_interpreter_method_data()). Maybe you are just unlucky and there is no invocation counter overflow in interpreted code with your test because methods are compiled by C1? You could check by excluding the relevant method(s) from compilation via -XX:CompileCommand=exclude. Best regards, Tobias > Any help is appreciated! > > Thanks, > Jini. ====================================================================================================
23-02-2017