This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new 3f3ba2e fix(builder): Fix race-condition when Build transitions to
running phase
3f3ba2e is described below
commit 3f3ba2ec1ba9840927aa9f8e24ef6d80573d4a6e
Author: Antonin Stefanutti <[email protected]>
AuthorDate: Wed Aug 4 15:16:23 2021 +0200
fix(builder): Fix race-condition when Build transitions to running phase
---
pkg/controller/build/monitor_routine.go | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/pkg/controller/build/monitor_routine.go
b/pkg/controller/build/monitor_routine.go
index 64a3bbd..8ba1b67 100644
--- a/pkg/controller/build/monitor_routine.go
+++ b/pkg/controller/build/monitor_routine.go
@@ -68,7 +68,11 @@ func (action *monitorRoutineAction) Handle(ctx
context.Context, build *v1.Build)
build.Status.Error = "Build routine exists"
return build, nil
}
- // Start the build asynchronously to avoid blocking the
reconcile loop
+ status := v1.BuildStatus{Phase: v1.BuildPhaseRunning}
+ if err := action.updateBuildStatus(ctx, build, status); err !=
nil {
+ return nil, err
+ }
+ // Start the build asynchronously to avoid blocking the
reconciliation loop
routines.Store(build.Name, true)
go action.runBuild(build)
@@ -92,11 +96,7 @@ func (action *monitorRoutineAction) runBuild(build
*v1.Build) {
ctxWithTimeout, cancel := context.WithDeadline(ctx,
build.Status.StartedAt.Add(build.Spec.Timeout.Duration))
defer cancel()
- status := v1.BuildStatus{Phase: v1.BuildPhaseRunning}
- if err := action.updateBuildStatus(ctx, build, status); err != nil {
- return
- }
-
+ status := v1.BuildStatus{}
buildDir := ""
Builder := builder.New(action.client)