Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8295424: adjust timeout for another JLI GetObjectSizeIntrinsicsTest.java subtest #11278

Closed
wants to merge 3 commits into from

Conversation

dcubed-ojdk
Copy link
Member

@dcubed-ojdk dcubed-ojdk commented Nov 21, 2022

Misc stress testing related fixes:

JDK-8295424 adjust timeout for another JLI GetObjectSizeIntrinsicsTest.java subtest
JDK-8297367 disable TestRedirectLinks.java in slowdebug mode
JDK-8297369 disable Fuzz.java in slowdebug mode


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issues

  • JDK-8295424: adjust timeout for another JLI GetObjectSizeIntrinsicsTest.java subtest
  • JDK-8297367: disable TestRedirectLinks.java in slowdebug mode
  • JDK-8297369: disable Fuzz.java in slowdebug mode

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/11278/head:pull/11278
$ git checkout pull/11278

Update a local copy of the PR:
$ git checkout pull/11278
$ git pull https://git.openjdk.org/jdk pull/11278/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 11278

View PR using the GUI difftool:
$ git pr show -t 11278

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/11278.diff

@dcubed-ojdk
Copy link
Member Author

/issue JDK-8295424
/issue JDK-8297367
/issue JDK-8297369

@dcubed-ojdk
Copy link
Member Author

/label add hotspot-runtime
/label add serviceability
/label add hotspot-compiler

@bridgekeeper
Copy link

bridgekeeper bot commented Nov 21, 2022

👋 Welcome back dcubed! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot changed the title Jdk 8295424 8295424: adjust timeout for another JLI GetObjectSizeIntrinsicsTest.java subtest Nov 21, 2022
@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk The primary solved issue for a PR is set through the PR title. Since the current title does not contain an issue reference, it will now be updated.

@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
Adding additional issue to issue list: 8297367: disable TestRedirectLinks.java in slowdebug mode.

@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
Adding additional issue to issue list: 8297369: disable Fuzz.java in slowdebug mode.

@openjdk openjdk bot added the hotspot-runtime hotspot-runtime-dev@openjdk.org label Nov 21, 2022
@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
The hotspot-runtime label was successfully added.

@openjdk openjdk bot added the serviceability serviceability-dev@openjdk.org label Nov 21, 2022
@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
The serviceability label was successfully added.

@dcubed-ojdk
Copy link
Member Author

/label add tools

@openjdk openjdk bot added the hotspot-compiler hotspot-compiler-dev@openjdk.org label Nov 21, 2022
@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
The hotspot-compiler label was successfully added.

@openjdk
Copy link

openjdk bot commented Nov 21, 2022

@dcubed-ojdk
The label tools is not a valid label.
These labels are valid:

  • serviceability
  • hotspot
  • hotspot-compiler
  • ide-support
  • kulla
  • i18n
  • shenandoah
  • jdk
  • javadoc
  • security
  • hotspot-runtime
  • jmx
  • build
  • nio
  • client
  • core-libs
  • compiler
  • net
  • hotspot-gc
  • hotspot-jfr

@dcubed-ojdk
Copy link
Member Author

/label add javadoc

@openjdk openjdk bot added the javadoc javadoc-dev@openjdk.org label Nov 22, 2022
@openjdk
Copy link

openjdk bot commented Nov 22, 2022

@dcubed-ojdk
The javadoc label was successfully added.

@dcubed-ojdk dcubed-ojdk marked this pull request as ready for review November 22, 2022 17:05
@openjdk openjdk bot added the rfr Pull request is ready for review label Nov 22, 2022
@mlbridge
Copy link

mlbridge bot commented Nov 22, 2022

Webrevs

Copy link
Contributor

@sspitsyn sspitsyn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good.
Thanks,
Serguei

@@ -66,12 +69,18 @@
import toolbox.JavacTask;
import toolbox.ToolBox;

import jdk.test.lib.Platform;
import jtreg.SkippedException;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: the order of imports on 72-73 needs to be swapped.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? 'jdk' comes before 'jtreg' and 'Platform' comes before 'SkippedException'.
What am I missing here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mild grumble: langtools tests do not rely on jdk test libraries

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does langtools have its own test libraries that I can use to ask the same questions?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I was not clear.
The Fuzz.java has this order:

+import jdk.test.lib.Platform;
+import jtreg.SkippedException;

I thought, you ordered imports by names. Then it is better to keep this order unified.
It is really minor though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I'm still confused. As far as I can see, I've added the imports the
same way in both Fuzz.java and TestRedirectLinks.java.

And the imports are in sort order:
'jdk' comes before 'jtreg' and 'Platform' comes before 'SkippedException'.

Copy link
Contributor

@sspitsyn sspitsyn Dec 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, copied fragment from a wrong file.
This file has imports out of order:
test/langtools/jdk/javadoc/doclet/testLinkOption/TestRedirectLinks.java

+ * @build jtreg.SkippedException
+ * @build jdk.test.lib.Platform

@openjdk
Copy link

openjdk bot commented Nov 22, 2022

@dcubed-ojdk This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8295424: adjust timeout for another JLI GetObjectSizeIntrinsicsTest.java subtest
8297367: disable TestRedirectLinks.java in slowdebug mode
8297369: disable Fuzz.java in slowdebug mode

Reviewed-by: sspitsyn, jjg, cjplummer, lmesnik

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 131 new commits pushed to the master branch:

  • c685569: 8297731: Remove redundant check in MutableBigInteger.divide
  • dcf431d: 8287400: Make BitMap range parameter names consistent
  • a1f4db5: 8297584: G1 parallel phase event for scan heap roots is sent too often
  • be4245e: 8294924: JvmtiExport::post_exception_throw() doesn't deal well with concurrent stack processing
  • be99e84: 8296875: Generational ZGC: Refactor loom code
  • 301cf52: 8297284: ResolutionErrorTable's key is wrong
  • a97e7d9: 8297740: runtime/ClassUnload/UnloadTest.java failed with "Test failed: should still be live"
  • 4d730f5: 8297644: RISC-V: Compilation error when shenandoah is disabled
  • 27b339d: 8297523: Various GetPrimitiveArrayCritical miss result - NULL check
  • 3f8882b: 8297693: Fix typos in src/hotspot and test/hotspot files
  • ... and 121 more: https://git.openjdk.org/jdk/compare/5a45c25151b1da8e329ea2be21a0e4d2652f8b4a...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Nov 22, 2022
@dcubed-ojdk
Copy link
Member Author

@sspitsyn - Thanks for the review!

Copy link
Contributor

@jonathan-gibbons jonathan-gibbons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I accept the javadoc change but dislike the general methodology: it's too much like brushing the dirt under the carpet.

In general, I think it is better to use keywords, or @require to mark such tests and then (if using keywords) use command-line options to filter out such tests.

@dcubed-ojdk
Copy link
Member Author

@jonathan-gibbons - Thanks for the review!

I could not find an @requires incantation for saying do-not-use-slowdebug-bits
nor one for saying do-not-use-macosx-aarch64. I don't really do a lot with
@requires so I could be missing something.

it's too much like brushing the dirt under the carpet.

Please see the parent bugs for JDK-8297367
and JDK-8297369 and you'll
see that I have clearly documented the failures that I've been seeing. I do plan
to leave those bugs open, but I've gotten tired of accounting for those failures
in my weekly stress testing runs.

@dholmes-ora
Copy link
Member

dholmes-ora commented Nov 23, 2022

I could not find an @requires incantation for saying do-not-use-slowdebug-bits nor one for saying do-not-use-macosx-aarch64.

Something like:

@requires vm.debug != slowdebug
@requires !(os.arch == "aarch64" && os.family == "mac")

@plummercj
Copy link
Contributor

Do you plan on closing the CRs associated with these changes even though the root causes are not being addressed, just avoided?

It's not clear what is meant by "Test is unstable". Is the test buggy, or are these JVM issues? In either case shouldn't we be trying to understand why it is unstable with slowdebug bug not fastdebug?

@@ -84,6 +87,10 @@ public class Fuzz implements Runnable {
static final Path TEST_DIR = Path.of(System.getProperty("test.src", "."));

public static void main(String[] args) {
if (Platform.isSlowDebugBuild() && Platform.isOSX() && Platform.isAArch64()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the idea of skipping the unstable test using SkippedException. Wouldn't be better to add problemlist for slowdebug? So anyone could easy identify test bugs in slowdebug mode. Really it would be better to support bits configurations in standard problem lists like os/arch but it is a separate issue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I know, the ProblemList does not support bits config so there's no way
to specify an entry for 'release' or 'fastdebug' or 'slowdebug' or...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is needed to make a separate problem list for this and use it in your testing.

The SkippedException and '@requires' are used to filter out the test when it is not applicable for this configuration, not when there is a bug that reproduced only with this configuration. Adding '@requires' usually means that we are not planning to run.
If you want to add them as exception might be it makes sense to add a corresponding comment.

@dcubed-ojdk
Copy link
Member Author

@sspitsyn, @dholmes-ora, @plummercj and @lmesnik - Thanks for the reviews!

Sorry for the delay in getting back to this review. I had an over abundance of
CI/GK work to do before the holiday break and I just finished getting caught
up after the holiday break.

@dcubed-ojdk
Copy link
Member Author

@dholmes-ora:

Something like:

@requires vm.debug != slowdebug
@requires !(os.arch == "aarch64" && os.family == "mac")

Thanks! I'll test these suggestions!

@dcubed-ojdk
Copy link
Member Author

Do you plan on closing the CRs associated with these changes even though the root causes are not being addressed, just avoided?

These two CRs are like ProblemListing bugs:

JDK-8297367: disable TestRedirectLinks.java in slowdebug mode
JDK-8297369: disable Fuzz.java in slowdebug mode

They are both sub-tasks of the bugs that describe the slowdebug failures
that I'm seeing. So the "disable" bugs will be closed if/when I integrate these
work arounds much like a ProblemListing bug is closed when a test is added
to a ProblemList. However, the parent bugs will remain open so that someone
can investigate and fix these slowdebug issue in the future.

It's not clear what is meant by "Test is unstable". Is the test buggy, or are these JVM issues?

I suspect that the tests have inherent assumptions about how long
things take to happen and they don't happen "on time" when slowdebug
bits are used.

In either case shouldn't we be trying to understand why it is unstable with slowdebug bug not fastdebug?

Yes and that's why the parent bugs will still be open. This is just like ProblemListing a
test when it is too noisy in the CI. However, in this case, these tests are being disabled
in slowdebug configs instead of being ProblemListed for all configs. These two parent
issues only affect folks running the tests in slowdebug configs when the system is
heavily stressed. As far as I know, I'm the only person that regularly runs slowdebug
testing... :-)

@dcubed-ojdk
Copy link
Member Author

@jonathan-gibbons, @sspitsyn, @dholmes-ora, @plummercj and @lmesnik -

I think I've replied to all of the comments made so far. I still have to checkout
the suggestion that @dholmes-ora made so I may be updating this PR again.

Please let me know if these replies are acceptable to you.

@lmesnik
Copy link
Member

lmesnik commented Nov 29, 2022

The suggested approach is good enough for me. The comments and bugs to fix/investigate slowdebug behaviour are welcome!

@dcubed-ojdk
Copy link
Member Author

dcubed-ojdk commented Nov 30, 2022

@dholmes-ora:

Something like:

@requires vm.debug != slowdebug
@requires !(os.arch == "aarch64" && os.family == "mac")

A change like this:

@@ -25,6 +25,7 @@
  * @test
  * @bug 8190312
  * @summary test redirected URLs for -link
+ * @requires (vm.debug != slowdebug)
  * @library /tools/lib ../../lib
  * @modules jdk.compiler/com.sun.tools.javac.api
  *          jdk.compiler/com.sun.tools.javac.main

results in a complaint from jtreg like this:

test result: Error. Parse Exception: Syntax error in @requires expression: invalid name: slowdebug

(vm.debug == true)
(vm.debug == false)

both work as does just plain:

vm.debug

so vm.debug is a boolean and not a string.

@dcubed-ojdk
Copy link
Member Author

I also checked for the name vm.slowdebug with this:
@requires (vm.slowdebug == false)
and that always evaluated to false so the test didn't run at all...

@dcubed-ojdk
Copy link
Member Author

@dholmes-ora - please let me know if you are okay with these fixes since
the @requires idea did not work.

@dholmes-ora
Copy link
Member

@dcubed-ojdk no objection from me. I was just offering what I hoped was a solution. But I see now that vm.debug is treated as a boolean: true for slowdebug and (fast)debug; and false otherwise. We would have to add a new property to jtreg-ext/requires/VMProps.java to allow checking for slowdebug.

@dcubed-ojdk
Copy link
Member Author

My jdk-20+26 stress run #1 includes these patches (as have stress runs for several
earlier jdk-20 promotions) and there's no signs of issues with these patches on either
linux-x64 or macosx-aarch64 stress testing.

/integrate

@openjdk
Copy link

openjdk bot commented Dec 2, 2022

Going to push as commit 6e54705.
Since your change was applied there have been 188 commits pushed to the master branch:

  • 562bc17: 8291359: Specification of method j.l.foreign.VaList::skip still deserves clarification
  • 2821fa9: 8280798: com.sun.jdi.ObjectReference::setValue spec should prohibit any final field modification
  • fb6fd03: 8291830: jvmti/RedefineClasses/StressRedefine failed: assert(!is_null(v)) failed: narrow klass value can never be zero
  • 1b92465: 8297608: JFR: Incorrect duration after chunk rotation
  • 6065696: 8297982: Exclude vmTestbase/nsk/monitoring/stress/lowmem/ with ZGC until 8297979 is fixed
  • 415cfd2: 8297285: Shenandoah pacing causes assertion failure during VM initialization
  • df07255: 8297984: Turn on warnings as errors for javadoc
  • 227364d: 8297953: Fix several C2 IR matching tests for RISC-V
  • 1370228: 8297941: Add override modifier in space.hpp
  • 319faa5: 8296084: javax/swing/JSpinner/4788637/bug4788637.java fails intermittently on a VM
  • ... and 178 more: https://git.openjdk.org/jdk/compare/5a45c25151b1da8e329ea2be21a0e4d2652f8b4a...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Dec 2, 2022
@openjdk openjdk bot closed this Dec 2, 2022
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Dec 2, 2022
@openjdk
Copy link

openjdk bot commented Dec 2, 2022

@dcubed-ojdk Pushed as commit 6e54705.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@dcubed-ojdk dcubed-ojdk deleted the JDK-8295424 branch December 8, 2022 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot-compiler hotspot-compiler-dev@openjdk.org hotspot-runtime hotspot-runtime-dev@openjdk.org integrated Pull request has been integrated javadoc javadoc-dev@openjdk.org serviceability serviceability-dev@openjdk.org
Development

Successfully merging this pull request may close these issues.

6 participants