JMC-5703: HighGcRule should report extra needed event types

Mario Torre neugens at redhat.com
Fri Nov 9 15:24:57 UTC 2018


On Tue, 2018-11-06 at 17:57 +0100, Marcus Hirt wrote:
> Excellent! Please work with Mario to sponsor it!

I applied this patch but I get this wehn building:


flightrecorder.rules.jdk.test ... FAILURE [  8.283 s]
BUILD FAILURE

Test set:
org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr
---------------------------------------------------------------------
----------
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 7.66 s
<<< FAILURE! - in
org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr
verifyAllResults(org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRule
sWithJfr)  Time elapsed: 6.5 s  <<< FAILURE!
java.lang.AssertionError: 


Report: "stringdedup_enabled_jdk9.jfr", 
  Rule: "HighGc". 
    Description mismatch: "The JVM was paused for 100 % of the time
during 9.017 ms starting at 4/24/18 10:08:53 AM. The time spent
performing garbage collection may be reduced by increasing the heap
size or by trying to reduce allocation.<p>To improve rule accuracy
and/or get more details for further investigation, it is recommended to
enable the following event types: 'Allocation in new TLAB', 'Allocation
outside TLAB'." was not equal to "The JVM was paused for 100 % of the
time during 9.017 ms starting at 4/24/18 10:08:53 AM. The time spent
performing garbage collection may be reduced by increasing the heap
size or by trying to reduce allocation.<p>Some allocation events were
disabled in this recording. Enable them to help with troubleshooting
this problem.". 
	at
org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr.verifyRu
leResults(TestRulesWithJfr.java:159)
	at
org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr.verifyAl
lResults(TestRulesWithJfr.java:132)

Cheers,
Mario

> 
> Kind regards,
> 
> Marcus
> 
>  
> 
> From: Ken Dobson <kdobson at redhat.com>
> Date: Tuesday, 6 November 2018 at 17:55
> To: Marcus Hirt <marcus.hirt at oracle.com>
> Cc: <jmc-dev at openjdk.java.net>
> Subject: Re: JMC-5703: HighGcRule should report extra needed event
> types
> 
>  
> 
> Here's the updated patch, there doesn't appear to be any translations
> for it.
> 
>  
> 
> Ken
> 
>  
> 
> diff -r b3a23786ef23
> core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openj
> dk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
> ---
> a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> njdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java    Wed Oct
> 10 16:43:35 2018 -0400
> +++
> b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> njdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java    Tue Nov
> 06 11:49:43 2018 -0500
> @@ -86,7 +86,8 @@
>              String longMessage = message + " " +
> Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG);
> //$NON-NLS-1$
>              if (!RulesToolkit.isEventsEnabled(items,
> JdkTypeIDs.ALLOC_INSIDE_TLAB, JdkTypeIDs.ALLOC_OUTSIDE_TLAB)) {
>                  longMessage = longMessage + "<p>" //$NON-NLS-1$
> -                        +
> Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DI
> SABLED);
> +                        +
> RulesToolkit.getEnabledEventTypesRecommendation(items,
> +                                JdkTypeIDs.ALLOC_INSIDE_TLAB,
> JdkTypeIDs.ALLOC_OUTSIDE_TLAB);
>              }
>              return new Result(this, score, message, longMessage,
> JdkQueries.GC_PAUSE);
>          }
> diff -r b3a23786ef23
> core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openj
> dk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
> ---
> a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> njdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java    
> Wed Oct 10 16:43:35 2018 -0400
> +++
> b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> njdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java    
> Tue Nov 06 11:49:43 2018 -0500
> @@ -298,7 +298,6 @@
>      public static final String HighGcRuleFactory_RULE_NAME =
> "HighGcRuleFactory_RULE_NAME"; //$NON-NLS-1$
>      public static final String HighGcRuleFactory_TEXT_INFO =
> "HighGcRuleFactory_TEXT_INFO"; //$NON-NLS-1$
>      public static final String HighGcRuleFactory_TEXT_INFO_LONG =
> "HighGcRuleFactory_TEXT_INFO_LONG"; //$NON-NLS-1$
> -    public static final String
> HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED =
> "HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED"; //$NON-NLS-1$
>      public static final String HighGcRuleFactory_TEXT_OK =
> "HighGcRuleFactory_TEXT_OK"; //$NON-NLS-1$
>      public static final String HighJvmCpuRule_AGGR_MAX_ENDTIME =
> "HighJvmCpuRule_AGGR_MAX_ENDTIME"; //$NON-NLS-1$
>      public static final String HighJvmCpuRule_AGGR_MIN_ENDTIME =
> "HighJvmCpuRule_AGGR_MIN_ENDTIME"; //$NON-NLS-1$
> diff -r b3a23786ef23
> core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/org/
> openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.prope
> rties
> ---
> a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/or
> g/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.pro
> perties    Wed Oct 10 16:43:35 2018 -0400
> +++
> b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/or
> g/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.pro
> perties    Tue Nov 06 11:49:43 2018 -0500
> @@ -321,7 +321,6 @@
>  # {0} is a time period, {1} is a time stamp, {2} is a percentage
>  HighGcRuleFactory_TEXT_INFO=The JVM was paused for {2} of the time
> during {0} starting at {1}.
>  HighGcRuleFactory_TEXT_INFO_LONG=The time spent performing garbage
> collection may be reduced by increasing the heap size or by trying to
> reduce allocation.
> -HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED=Some allocation
> events were disabled in this recording. Enable them to help with
> troubleshooting this problem.
>  HighGcRuleFactory_TEXT_OK=The runtime did not spend much time
> performing garbage collections.
>  HighJvmCpuRule_AGGR_MAX_ENDTIME=Max End Time
>  HighJvmCpuRule_AGGR_MIN_ENDTIME=Min End Time
> 
>  
> 
> On Tue, Nov 6, 2018 at 11:43 AM Marcus Hirt <marcus.hirt at oracle.com>
> wrote:
> 
> Hi Ken,
> 
> Yes, if it is no longer used, please go ahead and remove both the
> constant and 
> the entry in the associated properties files (might as well remove it
> from the 
> translated files too).
> 
> Kind regards,
> Marcus
> 
> On 2018-11-06, 17:08, "jmc-dev on behalf of Ken Dobson" <
> jmc-dev-bounces at openjdk.java.net on behalf of kdobson at redhat.com>
> wrote:
> 
>     Hi all,
> 
>     This is a small patch to make the highGcRule consistent with the
>     GcFreedRatioRule when reporting extra needed event types.
>     Should I remove HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED
> from
>     Messages.java given it is no longer used?
> 
>     Thanks,
> 
>     Ken Dobson
> 
>     diff -r b3a23786ef23
>     core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/o
> penjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
>     ---
>     a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org
> /openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
>     Wed Oct 10 16:43:35 2018 -0400
>     +++
>     b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org
> /openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
>     Tue Nov 06 10:33:20 2018 -0500
>     @@ -84,9 +84,11 @@
>                  String message =
>     MessageFormat.format(Messages.getString(Messages.HighGcRuleFactor
> y_TEXT_INFO),
>     duration,
>                          startTime,
>     pausePercent.displayUsing(IDisplayable.AUTO));
>                  String longMessage = message + " " +
>     Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG);
>     //$NON-NLS-1$
>                  if (!RulesToolkit.isEventsEnabled(items,
>     JdkTypeIDs.ALLOC_INSIDE_TLAB, JdkTypeIDs.ALLOC_OUTSIDE_TLAB)) {
>                      longMessage = longMessage + "<p>" //$NON-NLS-1$
>     -                        +
>     Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG_ALLO
> C_DISABLED);
>     +                        +
>     RulesToolkit.getEnabledEventTypesRecommendation(items,
>     +                                JdkTypeIDs.ALLOC_INSIDE_TLAB,
>     JdkTypeIDs.ALLOC_OUTSIDE_TLAB);
>                  }
>                  return new Result(this, score, message, longMessage,
>     JdkQueries.GC_PAUSE);
>              }
> 
> 
> 
> 
-- 
Mario Torre
Associate Manager, Software Engineering
Red Hat GmbH <https://www.redhat.com>
9704 A60C B4BE A8B8 0F30  9205 5D7E 4952 3F65 7898



More information about the jmc-dev mailing list