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 <anto...@stefanutti.fr>
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)
 

Reply via email to