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

Gitlab - atlantis/apply goes into "running" state prematurely #2138

Closed
cwstrommer opened this issue Mar 14, 2022 · 11 comments · Fixed by #2173
Closed

Gitlab - atlantis/apply goes into "running" state prematurely #2138

cwstrommer opened this issue Mar 14, 2022 · 11 comments · Fixed by #2173
Labels
bug Something isn't working help wanted Good feature for contributors provider/gitlab

Comments

@cwstrommer
Copy link

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Overview of the Issue

The atlantis/apply job for the pipeline enters the running state immediately when the atlantis/plan workflow runs. It should enter pending state first (to prevent the merge request from being merged before atlantis apply has been run) and only enter the running state when the apply workflow begins. I suspect that this may have occurred as a result of #1971 . I believe that ideally all jobs in the pipeline would be set to pending on init, running when their respective workflow begins, and failed/success when the workflow concludes.

Reproduction Steps

Open a merge request in Gitlab, wait for Atlantis to respond with the terraform plan. At this point the Atlantis pipeline will have three jobs with the following respective states:

  • atlantis/policy_check, success
  • atlatnis/plan, success
  • atlantis/apply, running

This is despite the atlantis/apply job not having been triggered yet.

Environment details

  • Atlantis versions tested: v0.19.1 and v0.19.2, deployed with the respective Helm chart
  • Using custom workflows (init, plan, apply)

Additional Context

#1971

@cwstrommer cwstrommer added the bug Something isn't working label Mar 14, 2022
@ichasco-heytrade
Copy link

I have the same error:

atlantis-0 atlantis {"level":"warn","ts":"2022-03-16T10:50:32.883Z","caller":"events/plan_command_runner.go:187","msg":"unable to update plan commit status: POST https://gitlab.com/api/v4/projects/xxxxxxxxx/statuses/6cbaba6fb71ece24062a55b053b74ee8b4f17ff3: 400 {message: Cannot transition status via :run from :running (Reason(s): Status cannot transition via \"run\")}","json":{"repo":"heytrade/devops/terraform/projects/fortinet/fortigate","pull":"40"},"stacktrace":"github.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:187\ngithub.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).Run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:234\ngithub.com/runatlantis/atlantis/server/events.(*DefaultCommandRunner).RunCommentCommand\n\tgithub.com/runatlantis/atlantis/server/events/command_runner.go:259"}

Thanks!

@sujeets-toast
Copy link

Same issue I am facing on github. Its shoing atlantis/apply pending. I closed the pull request and created the new pullrequet there without running atlantis command in pullrequest its showing pending. What could be issue.

@hhsnow
Copy link

hhsnow commented Mar 16, 2022

I think this is also an issue for Atlantis setups that have --disable-apply/ATLANTIS_DISABLE_APPLY=true configured. I'm seeing apply checks pending in GitHub that never clear and block merging.

Screen Shot 2022-03-16 at 17 20 01

@jamengual
Copy link
Contributor

Does anyone try an older version of atlantis?

I wonder if there was a change on the Github Api or Github go library.

PRs are welcome.

@jamengual
Copy link
Contributor

0.18.5 was reported to work.

@chenrui333 chenrui333 added the help wanted Good feature for contributors label Mar 23, 2022
@cwstrommer
Copy link
Author

@jamengual 1.17.6 also works. FWIW since this also affects Gitlab I think the likelihood of this being a Github-specific API issue is very low. There's 2 symptoms that are being reported here:

  1. The apply pipeline starts as "running" even if plan is still in process. This was the original intent of my submitted issue. I don't know if this happens in Github, but it is reproducible in Gitlab. This is a "cosmetic" issue in that it does not affect the merge request or Atlantis workflows.
  2. There is more than one apply pipeline being created (equivalent to the multiple plan pipelines in this comment), but only one of them gets updated when the apply workflow finishes. I consider this to be a separate issue, but I think this is what @sujeets-toast and @hhsnow are referring to. This is also a breaking issue, because even after a successful "apply" workflow the request will be unmergeable because at least one pipeline is considered pending/running.

@jamengual
Copy link
Contributor

but the gitlab issue mentioned was merged and since then we did not hear about this until now but we did some security updates to a bunch of client libraries so we are wondering if this could have been something related to that.

@gtg3vv
Copy link

gtg3vv commented Mar 28, 2022

Can confirm that we see this for bitbucket server as well (not github specific). The apply state shows as running as soon as the PR is planned and remains that way until actually applied.

@jamengual
Copy link
Contributor

We just released a fix for the VCS status issue some of you have reported on our dev image docker pull ghcr.io/runatlantis/atlantis:dev Please test it and report back, Thanks.

@notnmeyer
Copy link

notnmeyer commented Apr 4, 2022

can confirm ghcr.io/runatlantis/atlantis:dev fixed the issue for me. appreciate it!

@gtg3vv
Copy link

gtg3vv commented Jul 3, 2022

We are still seeing this issue on the most recent release (0.19.4). Can anyone confirm if the fix made it into that version? All prs show an in-progress apply from the moment the first plan is initialized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Good feature for contributors provider/gitlab
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants