Skip to content

Conversation

@adamfarley
Copy link
Contributor

This change lists known unreliable tests in a consistent format.

Resolves #6471

@adamfarley adamfarley changed the title WIP: Creating unreliables files and adding first set of infrequent fails Creating lists of intermittent tests Aug 11, 2025
@adamfarley adamfarley changed the title Creating lists of intermittent tests Creating lists of intermittently failing tests Aug 11, 2025
@adamfarley
Copy link
Contributor Author

Requesting reviews from @ShelleyLambert and @sophia-guo please.

@smlambert
Copy link
Contributor

thanks @adamfarley - a heads up that my active Github tag is @smlambert ... but I did see this review request in any event.

Copy link
Contributor

@smlambert smlambert left a comment

Choose a reason for hiding this comment

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

Thank you for compiling this list @adamfarley. Only openjdk testcase failures are handled by jtreg exclude Problemlist format. For the other test groups that are part of AQAvit, they get excluded via playlist exclusions.

I would have expected the perf and system targets to be listed via playlist files (which do not use a different file for each version as the problem lists do).

I guess it depends on what we intend to do with these lists. If we are adding a feature to exclude unreliable targets on the fly, or post-process failures against a list, we have to consider what format to use, and how to organize them within the directory (as different vendors may eventually have different lists).

@adamfarley
Copy link
Contributor Author

Thank you for compiling this list @adamfarley. Only openjdk testcase failures are handled by jtreg exclude Problemlist format. For the other test groups that are part of AQAvit, they get excluded via playlist exclusions.

I noticed that. For Perf and Systemtest, I used the jtreg format for consistency, rather than explicit usability (though a consistent format does make any future parsing easier)

I would have expected the perf and system targets to be listed via playlist files (which do not use a different file for each version as the problem lists do).

I considered that, but opted not to because I'm unaware of a mechanism for disabling targets via the playlist files sometimes. As far as I know, for a given vendor, platform, and version, a target is either enabled or disabled. An openjdk test can include an extra exclude file dynamically, so we can choose whether to exclude the test in some runs or not.

I guess it depends on what we intend to do with these lists. If we are adding a feature to exclude unreliable targets on the fly, or post-process failures against a list, we have to consider what format to use, and how to organize them within the directory (as different vendors may eventually have different lists).

My first priority with this task was to provide a unified list of all intermittently failing tests.

  • The lists should use a single format to allow parsing and easy-reading.
  • The lists should be stored in the repository to allow use at runtime.

Specific uses were a secondary priority. My first thought was that they could be used as exclude files during releases (or during reruns, or reruns during a release), but I didn't want to sidetrack myself looking too much into applications. I figured that if we did pick an application for this data, the best thing I can do right now is to use a consistent format across the board, to make conversion/parsing easier later on.

I'll add a note to the General Retrospective to start discussion into some of our options here.

@smlambert
Copy link
Contributor

openjdk jtreg problemlists are the 'odd man out'... no other test group uses that format

I do not want to store non-openjdk test material in problemlist format as it might lead people to think that is the commonly used format, which it is not.

Agree that we need to have a requirements gathering session and design discussion on this (in terms of formats, and how to structure and where to locate such files). If this is merely a form of documentation, and not a plan for using for debug / temp exclude, then likely all could be in a doc folder.

@adamfarley
Copy link
Contributor Author

openjdk jtreg problemlists are the 'odd man out'... no other test group uses that format

I do not want to store non-openjdk test material in problemlist format as it might lead people to think that is the commonly used format, which it is not.

Fair. Perhaps I was over-focused on the OpenJDK ProblemList format due to the majority of the intermittent failures being OpenJDK tests.

Agree that we need to have a requirements gathering session and design discussion on this (in terms of formats, and how to structure and where to locate such files). If this is merely a form of documentation, and not a plan for using for debug / temp exclude, then likely all could be in a doc folder.

In my mind, this is a debug/exclude tool first. Mind if I get the ball rolling on Slack?

@smlambert
Copy link
Contributor

Thanks for focussing on the intermittent tests for openjdk @adamfarley ! One last request, can you please put the unreliables dir under the excludes dir (alongside vendors and alpine dirs), thanks! (You'll need to update the link in your README once reorganized).

@adamfarley
Copy link
Contributor Author

The perf and system tests are a goal for later, so I've split those files out into #6571

The work to exclude these tests at runtime (and the discussion around that) will be in a third PR so we can get this PR merged and ready for reference.

@adamfarley
Copy link
Contributor Author

adamfarley commented Sep 10, 2025

Thanks for focussing on the intermittent tests for openjdk @adamfarley ! One last request, can you please put the unreliables dir under the excludes dir (alongside vendors and alpine dirs), thanks! (You'll need to update the link in your README once reorganized).

Sure.

Note: I see this displeases the disableTestsLinter. Looking into this now.

@adamfarley
Copy link
Contributor Author

adamfarley commented Sep 10, 2025

@sophia-guo

Heya. I see that the exclude_parser.py specifies that every uncommented line needs to be exactly 3 elements.

In the jtreg FAQ, it allows for the 4+ elements to be comments.

What do you think about me changing that code to be a minimum of 3, rather than exactly 3?

(I've add this change to the PR. Let me know your thoughts.)

@adamfarley
Copy link
Contributor Author

Our other option, of course, it to strip off the date. I think it's useful information and saves anyone having to access every link to get a sense for the oldest intermittent tests, but perhaps that information doesn't have as much significance as I presume it has.

@sophia-guo
Copy link
Contributor

sophia-guo commented Sep 10, 2025

@adamfarley yes, you can do that. Though personally I think description item is unnecessary as the second element of links( In adoptium we use links as bug information) should already have enough information include description.

@karianna karianna requested a review from smlambert September 10, 2025 21:21
@adamfarley
Copy link
Contributor Author

@adamfarley yes, you can do that. Though personally I think description item is unnecessary as the second element of links( In adoptium we use links as bug information) should already have enough information include description.

Okie dokie. I've spoken with Shelley as well, and her take was that keeping each line to 3 elements is a good way to keep the files clean, so I'll undo the change to the parser and strip out the dates.

Also limiting the files we retrieve to the versions we need.

Otherwise we're fetching 70+ of them.

Signed-off-by: Adam Farley <[email protected]>
Now that these ProblemLists are in an alpine directory, they no
longer need "alpine" in their names.

Also, removing "alpine" simplifies the build.xml regex.

Signed-off-by: Adam Farley <[email protected]>
@karianna
Copy link
Contributor

@adamfarley will need a small rebase

@adamfarley
Copy link
Contributor Author

@karianna - The conflict has been resolved. Thanks for pointing it out.

I've also renamed the alpine exclude files and corrected other pieces of code so this doesn't break anything.

@sophia-guo
Copy link
Contributor

I noticed a few problemlist files under unreliable/apline/ are blank. Are those files just place holder? Place holders aren't necessary. See my former comment #6462 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consolidate intermittent test failure list issues

4 participants