Skip to content

Conversation

@MBaesken
Copy link
Member

@MBaesken MBaesken commented Oct 20, 2025

When using stripped and not full pdb files on WIndows, the test CheckForProperDetailStackTrace.java misses source information (but this is not surprise with those much smaller pdb files; so probably we should not rely on having the source info available).
error output is :

java.lang.RuntimeException: Expected source information missing from output
at CheckForProperDetailStackTrace.main(CheckForProperDetailStackTrace.java:145)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
at java.base/java.lang.Thread.run(Thread.java:1474)

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

Issue

  • JDK-8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files (Bug - P4)

Reviewers

Reviewing

Using git

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

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

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 27899

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

Using diff file

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

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 20, 2025

👋 Welcome back mbaesken! 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.

Copy link
Contributor

@RealCLanger RealCLanger left a comment

Choose a reason for hiding this comment

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

Seems reasonable.

@openjdk
Copy link

openjdk bot commented Oct 20, 2025

@MBaesken 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:

8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files

Reviewed-by: dholmes, clanger

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 88 new commits pushed to the master branch:

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 changed the title JDK-8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files 8370064: Test runtime/NMT/CheckForProperDetailStackTrace.java fails on Windows when using stripped pdb files Oct 20, 2025
@openjdk
Copy link

openjdk bot commented Oct 20, 2025

@MBaesken The following label will be automatically applied to this pull request:

  • hotspot-runtime

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added ready Pull request is ready to be integrated rfr Pull request is ready for review labels Oct 20, 2025
@mlbridge
Copy link

mlbridge bot commented Oct 20, 2025

Webrevs

@MBaesken
Copy link
Member Author

Seems reasonable.

Thanks for the review !

Copy link
Member

@dholmes-ora dholmes-ora left a comment

Choose a reason for hiding this comment

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

You can't just disable this aspect of the test for Windows because it may fail in your environment. We want to test this aspect as broadly as possible.

@MBaesken
Copy link
Member Author

You can't just disable this aspect of the test for Windows because it may fail in your environment. We want to test this aspect as broadly as possible.

I could read in pdb file(s) are look at the binary to find out if it is a stripped or full pdb.
Or use some external tools to do so.
Or transfer the info into the build, that I create stripped pdb files.

@openjdk openjdk bot added build [email protected] hotspot [email protected] and removed ready Pull request is ready to be integrated labels Oct 21, 2025
@openjdk
Copy link

openjdk bot commented Oct 21, 2025

@MBaesken build, hotspot have been added to this pull request based on files touched in new commit(s).

Comment on lines 161 to 163
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JVM_CFLAGS += -DHAS_STRIPPED_DEBUGINFO
endif
Copy link
Member

Choose a reason for hiding this comment

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

But IIUC building the stripped pdb files doesn't necessarily mean you have deployed them in your image.

Also isn't there a way to define file specific flags so this only gets set for whitebox.cpp?

@MBaesken
Copy link
Member Author

But IIUC building the stripped pdb files doesn't necessarily mean you have deployed them in your image.

True, but in the end you have the stripped pdbs in place so it is possible you test with those and the test fails (for a good reason).
It is better than ALWAYS switching off the source file name check on Windows .

Also isn't there a way to define file specific flags so this only gets set for whitebox.cpp?

Yes I could do this, if you prefer ?

@dholmes-ora
Copy link
Member

Also isn't there a way to define file specific flags so this only gets set for whitebox.cpp?

Yes I could do this, if you prefer ?

Please - best to always do the most minimal build change. Thanks

Copy link
Member

@dholmes-ora dholmes-ora left a comment

Choose a reason for hiding this comment

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

One style nit.

This still needs build team approval.

Thanks

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 24, 2025
@openjdk openjdk bot removed the ready Pull request is ready to be integrated label Oct 24, 2025
@MBaesken
Copy link
Member Author

This still needs build team approval.

Christoph is from the build group / team too.

@RealCLanger
Copy link
Contributor

I think the change is good, however, we should wait for resolution of the PR #24012. Maybe even inline these changes into that. Because without #24012, this here will not be necessary...

@MBaesken
Copy link
Member Author

MBaesken commented Oct 24, 2025

If you build OpenJDK on Windows with stripped debug symbols, you will most likely need it.
Assuming you always have the source info in is not valid; I think the change is a good compromise. Instead of using the wrong assumption, or of doing complicated things e.g. with the DIA SDK to analyze the debug info.

@erikj79
Copy link
Member

erikj79 commented Oct 24, 2025

This test is only run on debug builds. In the discussion in #24012 it was pointed out that --with-external-symbols-in-bundles=public was an option meant for distribution builds and developers would opt out of it for a reasonable developer experience. Given that, I think this would be quite a rare combination. Especially without #24012 since we are currently replacing the stripped PDB files in the image with the full ones anyway, for a local build-test, this test would work anyway. That said, I don't think this change hurts much either, given the rarity of the combination.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 26, 2025
@MBaesken
Copy link
Member Author

Thanks for the reviews !

/integrate

@openjdk
Copy link

openjdk bot commented Oct 28, 2025

Going to push as commit 69a9b4c.
Since your change was applied there have been 117 commits pushed to the master branch:

Your commit was automatically rebased without conflicts.

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

openjdk bot commented Oct 28, 2025

@MBaesken Pushed as commit 69a9b4c.

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

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

Development

Successfully merging this pull request may close these issues.

4 participants