Skip to content

Conversation

@erikj79
Copy link
Member

@erikj79 erikj79 commented May 9, 2022

The way LauncherCommon.gmk is currently written, it's only meant to be included from "make/module//Launcher.gmk", or at least only from one single place for each module. This is because the man page generation that happens in LauncherCommon.gmk is module global. For the jdk.jpackage module, LauncherCommon.gmk is now called from two separate sub makefiles, both make/module/jdk.jpackage/Lib.gmk and make/module/jdk.jpackage/Launcher.gmk. These files are called from the top level targets jdk.jpackage-libs and jdk.jpackage-launchers respectively. These top level targets are assumed to be able to run independently of each other, which is normally fine, but now they define the same rules for the same files. This creates a race where one may be deleting files that the other one is creating, causing directories to disappear while files are being written to them. This can fail the build, but also risks silently corrupting the build.

This patch fixes this by adding a conditional around the man page generation, which helps guarantee that man pages are only processed when called from make/module//Launcher.gmk. It's a bit of a hack, but it's building on top of the existing design of piggybacking man page generation on the launchers build.

Also fixing broken whitespace further down in the file (tabs->space).


Progress

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

Issue

  • JDK-8286429: jpackageapplauncher build fails intermittently in Tier[45]

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/8618/head:pull/8618
$ git checkout pull/8618

Update a local copy of the PR:
$ git checkout pull/8618
$ git pull https://git.openjdk.java.net/jdk pull/8618/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 8618

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/8618.diff

@bridgekeeper
Copy link

bridgekeeper bot commented May 9, 2022

👋 Welcome back erikj! 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-8286429 8286429: jpackageapplauncher build fails intermittently in Tier[45] May 9, 2022
@openjdk openjdk bot added the rfr Pull request is ready for review label May 9, 2022
@openjdk
Copy link

openjdk bot commented May 9, 2022

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

  • build

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 build build-dev@openjdk.org label May 9, 2022
@mlbridge
Copy link

mlbridge bot commented May 9, 2022

Webrevs

@dholmes-ora
Copy link
Member

I'm still unclear how --disable-manpages is supposed to affect this logic, as they seemed to be the failing configs.

@openjdk
Copy link

openjdk bot commented May 10, 2022

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

8286429: jpackageapplauncher build fails intermittently in Tier[45]

Reviewed-by: asemenyuk, ihse

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

  • 3fa1c40: 8286298: Remove unused methods in sun.invoke.util.VerifyType
  • 3462190: 8286163: micro-optimize Instant.plusSeconds
  • 60a91d1: 8286285: G1: Rank issues with ParGCRareEvent_lock and Threads_lock
  • d478958: 8286179: Node::find(int) should not traverse from new to old nodes
  • de8f4d0: 8286191: misc tests fail due to JDK-8285987
  • bf0dc4f: 8286367: riscv: riscv port is broken after JDK-8284161
  • 4fd79a6: 8285730: unify _WIN32_WINNT settings
  • bd6026c: 7124282: [macosx] Can't see table cell highlighter when the highlight border is the same color as the cell.
  • 9a3cb93: 8030121: java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java fails
  • ace4230: 8261650: Add a comment with details for MTLVC_MAX_INDEX
  • ... and 1 more: https://git.openjdk.java.net/jdk/compare/61450bb061ecda9700ddbd387a1f0659ebd1cced...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 May 10, 2022
@magicus
Copy link
Member

magicus commented May 10, 2022

I think this looks good. I'm just curious why this started to show up now. There have been no changes in this area lately, have it? Is it just pure (bad) luck that the race did not happen before?

Edit: I get it now, this was introduced by JDK-8284675.

@magicus
Copy link
Member

magicus commented May 10, 2022

@dholmes-ora That option is a bit weirdly named. It is used to enable new generation of man pages from markdown files instead of copying the static troff files. So without that option, this could not have failed.

@erikj79
Copy link
Member Author

erikj79 commented May 10, 2022

/integrate

@openjdk
Copy link

openjdk bot commented May 10, 2022

Going to push as commit 65f5067.
Since your change was applied there have been 12 commits pushed to the master branch:

  • c4bd449: 8238373: Punctuation should be same in jlink help usage on Japanese language
  • 3fa1c40: 8286298: Remove unused methods in sun.invoke.util.VerifyType
  • 3462190: 8286163: micro-optimize Instant.plusSeconds
  • 60a91d1: 8286285: G1: Rank issues with ParGCRareEvent_lock and Threads_lock
  • d478958: 8286179: Node::find(int) should not traverse from new to old nodes
  • de8f4d0: 8286191: misc tests fail due to JDK-8285987
  • bf0dc4f: 8286367: riscv: riscv port is broken after JDK-8284161
  • 4fd79a6: 8285730: unify _WIN32_WINNT settings
  • bd6026c: 7124282: [macosx] Can't see table cell highlighter when the highlight border is the same color as the cell.
  • 9a3cb93: 8030121: java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java fails
  • ... and 2 more: https://git.openjdk.java.net/jdk/compare/61450bb061ecda9700ddbd387a1f0659ebd1cced...master

Your commit was automatically rebased without conflicts.

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

openjdk bot commented May 10, 2022

@erikj79 Pushed as commit 65f5067.

💡 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

build build-dev@openjdk.org integrated Pull request has been integrated

Development

Successfully merging this pull request may close these issues.

4 participants