Skip to content
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

Race conditions #48

Closed
mbauman opened this issue Jun 21, 2018 · 3 comments
Closed

Race conditions #48

mbauman opened this issue Jun 21, 2018 · 3 comments

Comments

@mbauman
Copy link
Member

mbauman commented Jun 21, 2018

It appears as though the exact versions that get compared depend upon the time they get started. This can lead to unrelated commits getting involved in the comparison. Based purely upon the behavior I've seen in the reported logs, it appears as though the following things occur:

  • Job gets submitted
  • Nanosoldier begins building master, grabbing the tip of the master at the time the build starts
  • Nanosoldier begins building the merge of the PR, grabbing the tip of the master and the tip of the PR branch at the time this build starts

This can lead to the PR build having extra, unexpected commits in its history, both from the master and PR branch (although the latter can actually work in our favor given the long lead time). Ideally, we'd just figure out the master and the PR merge hashes immediately upon submission to avoid these problems.

@vchuravy
Copy link
Member

Hm cursory glancing at the code I think the race condition comes from

run(`git fetch --quiet origin +refs/pull/$(pr)/merge:`)
and
againstbuild = branchref(submission.config, againstrepo, againstbranch)
The latter is setting the the versus to the at the time current master sha, and the former is getting the merge commit at a later point.

@jrevels
Copy link
Member

jrevels commented Jun 25, 2018

Yeah, the git fetches in build_julia! just need to be moved into the BenchmarkJob constructor

vtjnash added a commit that referenced this issue Mar 5, 2021
remove global working directory

drop syntactic support for Julia before v1.5

improves #48 (fixed if there is no pending job queue?)
@maleadt
Copy link
Member

maleadt commented Nov 24, 2022

Fixed in #134; the BenchmarkJob constructor now determines what to test, and build.jl only checks out the configured sha.

@maleadt maleadt closed this as completed Nov 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants