-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Make TakeSnapshot more reliable #6144
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
Conversation
|
/werft run 👍 started the job as gitpod-build-gpl-5862-snapshot.5 |
0f0db41 to
ccff46b
Compare
ccff46b to
61c9cef
Compare
a6fa036 to
d04812d
Compare
61ca4b1 to
c19e486
Compare
Codecov Report
@@ Coverage Diff @@
## main #6144 +/- ##
===========================================
+ Coverage 19.04% 33.48% +14.43%
===========================================
Files 2 23 +21
Lines 168 4680 +4512
===========================================
+ Hits 32 1567 +1535
- Misses 134 2988 +2854
- Partials 2 125 +123
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
4f87159 to
0e47cfc
Compare
13514a5 to
0491ef5
Compare
|
/werft run 👍 started the job as gitpod-build-gpl-5862-snapshot.45 another try--- |
0491ef5 to
ef7cdd5
Compare
|
/werft run 👍 started the job as gitpod-build-gpl-5862-snapshot.47 ...and again |
|
/werft run with-clean-slate-deployment 👍 started the job as gitpod-build-gpl-5862-snapshot.48 The best things come in threes. 🤞 |
8f4fe1c to
9ed6299
Compare
|
/unhold Ready to merge now |
|
/lgtm |
|
LGTM label has been added. Git tree hash: e74e73cd5ea3964fe6b81a871af7253bdf9429f6
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tried this for a workspace larger than 3.5GB which used to fail and worked as expected! 🔮
Thanks @geropl! 🏁
|
did not test, but API and service changes lgtm /lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: csweichel, JanKoehnlein Associated issue: #5862 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
I can't wait for this feature to be working again 🎉 |
|
Thanks, @shaal! The fix should probably land in production within a week. FYI, we're trying to get better at deploying to production sooner and more often. |
|
@gtsiolis Just to clarify: This PR is just introducing the server/workspace changes. IDE change will land later, I expect next week. |
|
It's the same issue: #5862 Draft PR is here: gitpod-io/openvscode-server#169 |
Description
This fixes #5862 by following this idea: #5862 (comment)
In detail
state: 'pending' | 'error' | 'available''field toSnapshot(+messageandavailableTime)content-service.WorkspaceSnapshotExistsws-daemon.TakeSnapshotreturns earlyserver.waitForSnapshotSnapshotServicetoserverwhich is responsible for making sure allserver.takeSnapshotto:ws-daemon, stored that in the DB (with state: 'pending') and return thesnapshotIdSnapshotServicemonitors this DB entry and regularly checks if it's done or timed out, resulting in an update to the DBsnapshotIdand have to callserver.waitForSnapshotto wait for the snapshot to becomeavailable(orerrorin case sth went south). This internally waits for the same PromiseSnapshotServiceis already drivingRegarding deployment
This change has breaking changes to IDE and workspace. To untangle and make the deployment as easy as possible:
serverand workspace are fully backwards-compatible to each other;serverAPI is backwards compatible as well. Thus we have to make sure meta is deployed before IDE, the rest does not matter.Related Issue(s)
Fixes #5862
IDE companion PR: gitpod-io/openvscode-server#169
How to test
kubectl rollout restart deployment proxykubectl rollout restart deployment proxyfrom the dev workspace (this simulates ws connection loss)note how the snapshot process is not interrupted in the IDE of the test workspace2mins the snapshot is successfultest the snapshot link and note that it worksRelease Notes
Documentation