Write to env version before polling #808
Open
opened 2026-03-26 11:08:08 +00:00 by iexos
·
4 comments
No Branch/Tag Specified
main
fix/492
renovate/golang-1.26
local-integration-testing
renovate/github.com-charmbracelet-lipgloss-2.x
renovate/otel-weaver-0.x
renovate/codespell-2.x
renovate/github.com-charmbracelet-bubbletea-2.x
renovate/tonistiigi-xx-1.x
renovate/alpine-3.x
renovate/github.com-charmbracelet-log-2.x
chore-deps
fix/deps
fix/613
0.13.0-beta
0.13.0-rc2-beta
0.13.0-rc1-beta
0.12.0-beta
0.11.0-beta
0.10.1-beta
0.10.0-beta
0.10.0-rc2-beta
0.10.0-rc1-beta
0.9.0-beta
0.8.1-beta
0.8.0-beta
0.8.0-rc2-beta
0.8.0-rc1-beta
0.7.0-beta
0.7.0-rc3-beta
0.7.0-rc2-beta
0.6.0-beta
0.5.1-beta
0.5.0-alpha
0.4.1-alpha
0.4.0-alpha
0.4.0-alpha-rc8
0.4.0-alpha-rc7
0.4.0-alpha-rc6
0.4.0-alpha-rc5
0.4.0-alpha-rc4
0.4.0-alpha-rc3
0.4.0-alpha-rc2
0.4.0-alpha-rc1
0.3.1-alpha-rc2
0.3.1-alpha-rc1
0.3.1-rc1
0.3.0-alpha
0.2.2-alpha
0.2.1-alpha
0.2.0-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
10.0.5
10.0.3
10.0.2
10.0.1
10.0.0
9.0.0
8.0.1
8.0.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
checkout
0.6.0
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Labels
Clear labels
bug
build
ci/cd
critical fix
design
documentation
duplicate
easy-first-issue
enhancement
help wanted
i10n
i18n
installer
invalid
question
release
release-candidate
security
tech-debt
test
wontfix
Something is not working
go build related issues
Building things with CI/CD
https://docs.coopcloud.tech/federation/resolutions/passed/010/
UI/UX
Documenting all the things
This issue or pull request already exists
Something for new people to get stuck into. We hope it's easy!
New feature
Need some help
Everything to do with localisation
Everything to do with internationalisation
Everything to do with the install script.
Something is wrong
More information is needed
Release management
Related to the new release candidate
Security related
Unit/integration testing
This won't be fixed
No labels
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
BornDeleuze
Brooke
carla
cas (Cassowary)
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
iexos
jade (Jade Ambrose)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
renovate-bot (Comrade Renovate Bot)
ripclap
simon
sixsmith (Sixsmith)
stevensting
trav (Trav Fryer)
val (val (he/him))
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: toolshed/abra#808
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
When polling fails for some reason (user aborted, timeout) the deployed version will not be recorded in the
.envfile. Though in the cases I encounter the deployed version is always that one, even though it might be failing. If I retry deploy/undeploy it will deploy an old version than which is likely to not work due to data migrations. For me it makes much more sense to write to the env version before polling starts, after swarm accepted the new config.Is there anything I might be missing here?
Would that interfere with how rollback currently works? I never used it, curious how you would use that one and why not simply
deploy -f.Yes, this is definitely a pain point. We are struggling because it is just really hard to understand what exactly it is that Swarm runtime is doing. I started to document this on https://docs.coopcloud.tech/abra/swarm/#limitations.
The Swarm runtime might automatically rollback the deployment version depending on the kind of failure. This will shown in the
abra app deployoutput. Some times, the deployment will fail but keep trying to start up and not get rolled back.To make another ductape patch on the already thousand ductape patches, I think you'd need to do deployment version check on the failure (user abort, timeout, etc.) and check what exactly is the deployed version and then writing it. In that case, with a warning: "it failed but we still wrote it to the
.env?It's messy 🙈
I see, so this would need extensive testing of swarm failure states. I guess some of them might not be easy to provocate...
Yes, we'd need a reliable way to understand how to trigger all failure scenarios of Swarm in an integration test suite. I am not sure what all those states are tbh but that is probably documented somewhere. You can start to get an idea of what is going on with:
The whole rabbit hole is documented well here. If you do this by hand a few times, you can start to see what the Swarm runtime is doing. Is there a way to map out what events happen and what they mean?
I'm not sure what is the appropriate level of commitment to throw into this so far bottomless pit of technical debt. I am personally more interested in investing into a backwards compatible approach to get away from swarm and into "one after the other" linear deployment model. Both approaches are time consuming and perilous 🙃
My pain point relates to when swarm does not abort with a failure, i.e. user aborting (probably because its continually falling over) or timeout. Does it really happen that swarm is rolling back after trying for a while? I would hope that its safe enough to assume its going to stay that way and write the env file. If its not, it could be wrong either way.
And yes, I would not want to invest too much time in handling swarm anymore as well.