Skip to content

Commit eece193

Browse files
WVerlaekroboquat
authored andcommitted
[ws-manager-mk2] Fix stuck on init/dispose failure
1 parent 0810836 commit eece193

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

components/ws-daemon/pkg/controller/controller.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
ctrl "sigs.k8s.io/controller-runtime"
3030
"sigs.k8s.io/controller-runtime/pkg/client"
3131
"sigs.k8s.io/controller-runtime/pkg/event"
32+
"sigs.k8s.io/controller-runtime/pkg/log"
3233
"sigs.k8s.io/controller-runtime/pkg/predicate"
3334
)
3435

@@ -149,6 +150,7 @@ func (wsc *WorkspaceController) Reconcile(ctx context.Context, req ctrl.Request)
149150
}
150151

151152
func (wsc *WorkspaceController) handleWorkspaceInit(ctx context.Context, ws *workspacev1.Workspace, req ctrl.Request) (result ctrl.Result, err error) {
153+
log := log.FromContext(ctx)
152154
span, ctx := opentracing.StartSpanFromContext(ctx, "handleWorkspaceInit")
153155
defer tracing.FinishSpan(span, &err)
154156

@@ -161,7 +163,7 @@ func (wsc *WorkspaceController) handleWorkspaceInit(ctx context.Context, ws *wor
161163
}
162164

163165
initStart := time.Now()
164-
alreadyInit, failure, err := wsc.operations.InitWorkspaceContent(ctx, InitContentOptions{
166+
alreadyInit, failure, initErr := wsc.operations.InitWorkspaceContent(ctx, InitContentOptions{
165167
Meta: WorkspaceMeta{
166168
Owner: ws.Spec.Ownership.Owner,
167169
WorkspaceId: ws.Spec.Ownership.WorkspaceID,
@@ -171,10 +173,6 @@ func (wsc *WorkspaceController) handleWorkspaceInit(ctx context.Context, ws *wor
171173
Headless: ws.Status.Headless,
172174
})
173175

174-
if err != nil {
175-
return ctrl.Result{}, fmt.Errorf("could not initialize workspace %s: %w", ws.Name, err)
176-
}
177-
178176
if alreadyInit {
179177
return ctrl.Result{}, nil
180178
}
@@ -185,6 +183,7 @@ func (wsc *WorkspaceController) handleWorkspaceInit(ctx context.Context, ws *wor
185183
}
186184

187185
if failure != "" {
186+
log.Error(initErr, "could not initialize workspace", "name", ws.Name)
188187
ws.Status.Conditions = wsk8s.AddUniqueCondition(ws.Status.Conditions, metav1.Condition{
189188
Type: string(workspacev1.WorkspaceConditionContentReady),
190189
Status: metav1.ConditionFalse,
@@ -215,6 +214,7 @@ func (wsc *WorkspaceController) handleWorkspaceInit(ctx context.Context, ws *wor
215214
}
216215

217216
func (wsc *WorkspaceController) handleWorkspaceStop(ctx context.Context, ws *workspacev1.Workspace, req ctrl.Request) (result ctrl.Result, err error) {
217+
log := log.FromContext(ctx)
218218
span, ctx := opentracing.StartSpanFromContext(ctx, "handleWorkspaceStop")
219219
defer tracing.FinishSpan(span, &err)
220220

@@ -246,11 +246,6 @@ func (wsc *WorkspaceController) handleWorkspaceStop(ctx context.Context, ws *wor
246246
BackupLogs: ws.Spec.Type == workspacev1.WorkspaceTypePrebuild,
247247
})
248248

249-
if disposeErr != nil {
250-
err = fmt.Errorf("failed to dispose workspace %s: %w", ws.Name, disposeErr)
251-
return ctrl.Result{}, err
252-
}
253-
254249
if alreadyDisposing {
255250
return ctrl.Result{}, nil
256251
}
@@ -263,6 +258,7 @@ func (wsc *WorkspaceController) handleWorkspaceStop(ctx context.Context, ws *wor
263258
ws.Status.GitStatus = toWorkspaceGitStatus(gitStatus)
264259

265260
if disposeErr != nil {
261+
log.Error(disposeErr, "failed to dispose workspace", "name", ws.Name)
266262
ws.Status.Conditions = wsk8s.AddUniqueCondition(ws.Status.Conditions, metav1.Condition{
267263
Type: string(workspacev1.WorkspaceConditionBackupFailure),
268264
Status: metav1.ConditionTrue,

0 commit comments

Comments
 (0)