Skip to content

8263054: [testbug] SharedArchiveConsistency.java reuses jsa files #2839

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

Closed

Conversation

iklam
Copy link
Member

@iklam iklam commented Mar 5, 2021

SharedArchiveConsistency.java runs a child process with a JSA file. Then, it modifies the JSA file, and then reuses this same JSA file to run another child process.

However, on Windows, after first child process has exited, some sort of file lock is still held on the JSA file, so when we try to modify the JSA file for the second process, sometimes we get the "The requested operation cannot be performed on a file with a user-mapped section open" error.

The fix is to always create a new JSA file for every new test case, and never modify/reuse the JSA files. (We have been following this rule for other CDS tests).


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8263054: [testbug] SharedArchiveConsistency.java reuses jsa files

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/2839/head:pull/2839
$ git checkout pull/2839

@bridgekeeper
Copy link

bridgekeeper bot commented Mar 5, 2021

👋 Welcome back iklam! 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
Copy link

openjdk bot commented Mar 5, 2021

@iklam 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 the hotspot-runtime hotspot-runtime-dev@openjdk.org label Mar 5, 2021
@iklam iklam marked this pull request as ready for review March 5, 2021 02:39
@openjdk openjdk bot added the rfr Pull request is ready for review label Mar 5, 2021
@mlbridge
Copy link

mlbridge bot commented Mar 5, 2021

Webrevs

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.

Hi Ioi,

Seems reasonable. One comment below.

Thanks,
David

Comment on lines 292 to 293
newJsaFile.createNewFile();
Files.copy(orgJsaFile.toPath(), newJsaFile.toPath(), REPLACE_EXISTING);
Copy link
Member

Choose a reason for hiding this comment

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

Not clear why you need to create the file if you are going to immediately replace it.

Copy link
Member Author

Choose a reason for hiding this comment

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

I removed the call to createNewFile and it seems to work just fine. I don't remember why the call was there before. I'll do more testing before integrating.

@openjdk
Copy link

openjdk bot commented Mar 5, 2021

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

8263054: [testbug] SharedArchiveConsistency.java reuses jsa files

Reviewed-by: dholmes, minqi

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 no new commits pushed to the master branch. If another commit should be pushed before you perform the /integrate command, your PR will be automatically rebased. If you prefer to avoid any potential 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 Mar 5, 2021
Copy link
Contributor

@yminqi yminqi left a comment

Choose a reason for hiding this comment

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

LGTM.

@iklam
Copy link
Member Author

iklam commented Mar 6, 2021

Thanks @dholmes-ora and @yminqi for the review.
/integrate

@openjdk openjdk bot closed this Mar 6, 2021
@openjdk openjdk bot added integrated Pull request has been integrated and removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Mar 6, 2021
@openjdk
Copy link

openjdk bot commented Mar 6, 2021

@iklam Since your change was applied there have been 3 commits pushed to the master branch:

  • 2afbd5d: 8250804: Can't set the application icon image for Unity WM on Linux.
  • fa43f92: 8261845: File permissions of packages built by jpackage
  • 23ee60d: 8261008: Optimize Xor

Your commit was automatically rebased without conflicts.

Pushed as commit 75a5be8.

💡 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
Labels
hotspot-runtime hotspot-runtime-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

3 participants