-
Notifications
You must be signed in to change notification settings - Fork 728
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
Feedback on test reproduction quirks for the test team #4548
Comments
@smlambert @llxia FYI. I'm more than happy to help with any of the above. |
It is in the link i.e. https://ci.eclipse.org/openj9/job/Test-extended.system-JDK8-linux_390-64_cmprssptrs/181/
You need to look at the parent job(s) of the test failure, find the build job for the platform, and the jvm is an artifact of the job. It is only available for a short time, depending on how many other builds are run, as we have limited space. |
I will try to clarify some of the questions.
TKG does print info at beginning of the tests with
It is documented in:
The information is in the job name. For example, Test-extended.functional-JDK11-linux_x86-64_cmprssptrs means running
In Openj9 Jenkins, we can get parameters from test build https://ci.eclipse.org/openj9/view/Test/job/Test-extended.functional-JDK11-linux_x86-64_cmprssptrs/169/parameters/ It shows Or another way to do this #3697 (comment)
The grinder can take JDK from any public url (i.e., AdoptOpenJDK, Artifactory, etc). We may not have enough infromation to determine OpenJ9 build ID.
@Mesbah-Alam we may need to update STF to handle this.
We are working on this #442. The idea is we do not need to provide JDK_VERSION, JDK_IMPL and SPEC. All the information can be auto-detected when JAVA_BIN is provided.
We can use
Test job does not have all parameters defined in config, so rebuild maynot work. One thing that is on our to-do list is to auto generate test jobs, so that we can avoid this issue.
Issue is created adoptium/aqa-tests#836
Unfortunately, test team does not have control of the machines access. fyi @jdekonin |
Right, this is also obvious from the test name. So where do I find this test? Is "extended.system" == "systemtest"? That part is confusing, at least to me.
Using your example: I navigate to "build number 850", then to "build number 383", then I seem to be at the top level for this nightly build: I fail to see how to navigate to the build artifact you describe. Can you describe the steps from here? |
There are quirks. For example it is non-obvious how to input the following command:
Through experimentation and help from others it seems you have to double quote the full command and escape the quotes, so the actual thing you have to input is:
Neither of these seem to work for the test failure example at hand from #4526:
Navigating to the build artifact from a test failure would be good to know, however my original question was if there is a way to navigate to the build artifact only using the
Ah I see, I think I encountered the systemtest limitation here then. Thanks for all the answers! |
You do not need to get to Hopefully, this comment lists the steps clearly #3697 (comment) |
JDK build 1178 passed but not having JDK archived. I do see And the next nightly build have JDK archived https://ci.eclipse.org/openj9/view/Build/job/Build-JDK8-linux_390-64_cmprssptrs/1184/ @AdamBrousseau Is there a limitaton on how long the artifacts are kept? |
Right but there is no archive link anywhere.
Yeah it says:
Not sure why it worked on the very next build. Does that mean I can't get a hold of the exact binary JDK package used from that build? (without having to rebuild the entire JDK using the SHAs) |
We only have space to keep 10 artifacts per build at the moment |
We should be able to pass in the build number and have it appear in the -version output, fairly certain there is a configure parameter to allow this. In this part below I think we could change the |
A lot of these items have now been addressed through several major updates and features added, including and not limited to:
Most other items have been addressed in comments above. The suggested enhancement to STF output should be raised against the STF repo, though I do not believe it will get any priority (no resources to spare), and that STF output is already too verbose (would want to reduce noise, before adding new 'content' to the output stream). Given all of that, I believe we can/should close this issue, @fjeremic ? |
Agreed. Many thanks to the test team who invested resource into fixing most of these issues. I certainly have observed the improvements and am very grateful for the investment in this area. Thank you! |
GCR (guarded counting recompilations is a mechanism that is supposed to upgrade cold or AOT compilations to warm opt level. In theory it should work with any opt level, but due to a bug it seems that GCR is incompatible with hot compilations (see eclipse-openj9#4548 for details). To allow stress testing with hot compilations this commit disables GCR for hot compilations. This should have no bearing on behavior in production because the natural way of upgrading hot compilations to scorching is through sampling. Fixes: eclipse-openj9#4445 eclipse-openj9#8064 Signed-off-by: Marius Pirvu <[email protected]>
While attempting to launch Grinders and reproduce #4526 locally I kept notes of some of the quirks I encountered or issues I stumbled upon. Some of these have been detailed in the various documentation, others are unspecified. I hope this feedback can be used to improve our documentation and/or processes for debugging:
Pain Points:
java -version
output it is not clear where to download the JDKcurl
command from the Grinder so I can find the JDK from there but why shouldn't we be able to extract the build ID fromjava -version
somehow? If someone just pasted me thejava -version
output I would have no idea how to grab that same build, and that is a problem.$JAVA_BIN/java -version
output?make compile
command from instructions from [2] seems to compile all tests (sometimes comping ~6000 java source files) however a Grinder launched for the same test seems only compile and run the one specific test [3]. Why is that? How can I locally do thet same thing as the Grinder? i.e. I only want to compile and run my one test I care about.[1] #4526
[2] https://github.com/eclipse/openj9/wiki/Reproducing-Test-Failures-Locally#run-sanity-system-tests-on-jdk10_x86-64_linux_openj9-sdk
[3] https://hyc-runtimes-jenkins.swg-devops.com/view/Test_grinder/job/Grinder/1363/consoleText
Issues:
./get.sh
without settingJAVA_BIN
first which seems to be step 6 so the instructions need to get updatedJAVA_HOME
to be../../
fromJAVA_BIN
, so it meansJAVA_BIN
has to be the "jre/bin" directory, bot the "bin" directory. This is non-obvious.make _sanity.system
does not work due to class loadernet.adoptopenjdk.stf.runner.StfClassLoader
exception being thrown. Exporting bothJAVA_BIN
andJAVA_HOME
does not seem to work on s390 Linux as implied by other people.The issue seems to be that System tests define
JAVA_HOME
themselves by exporting$JAVA_BIN/../../
, however the instructions in [1] specifyJAVA_BIN
should be/someLocation/bin
, which appears to be incorrect as the instructions state to download/unpack the SDK to/someLocation
.System tests seem to expect
JAVA_BIN
to be/someLocation/jre/bin
, not/someLocation/bin
. After changing this, rerunningmake -f run_configure.mk
andmake compile
things seem to work now.make SharedClassesAPI
however this results in errorsmake _SharedClassesAPI_0
?General Feedback:
The text was updated successfully, but these errors were encountered: