From 9e560841c25f5cc8c04dfe832983b4746da8dde2 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 3 Jun 2022 00:21:58 +0530 Subject: [PATCH] Update source-controller with libgit2 race fixes Also, removes the panic recovery code added in cloneInto() as the underlying Checkout() in SC already has a panic handler. The issues were due to goroutine panicking, which are now handled in the SC libgit managed transport. Signed-off-by: Sunny --- api/go.mod | 2 +- api/go.sum | 4 ++-- controllers/imageupdateautomation_controller.go | 10 +--------- go.mod | 4 ++-- go.sum | 8 ++++---- 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/api/go.mod b/api/go.mod index b8e9157d..a09e4e57 100644 --- a/api/go.mod +++ b/api/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/fluxcd/pkg/apis/meta v0.14.1 - github.com/fluxcd/source-controller/api v0.25.0 + github.com/fluxcd/source-controller/api v0.25.1 k8s.io/apimachinery v0.24.0 sigs.k8s.io/controller-runtime v0.11.2 ) diff --git a/api/go.sum b/api/go.sum index d9e41cc2..3eaf3d61 100644 --- a/api/go.sum +++ b/api/go.sum @@ -21,8 +21,8 @@ github.com/fluxcd/pkg/apis/acl v0.0.3 h1:Lw0ZHdpnO4G7Zy9KjrzwwBmDZQuy4qEjaU/RvA6 github.com/fluxcd/pkg/apis/acl v0.0.3/go.mod h1:XPts6lRJ9C9fIF9xVWofmQwftvhY25n1ps7W9xw0XLU= github.com/fluxcd/pkg/apis/meta v0.14.1 h1:lPDs9yV67DnwalHPb13bbnDkAatALfUiAMRHjUm4UBw= github.com/fluxcd/pkg/apis/meta v0.14.1/go.mod h1:1uJkTJGSZWrZxL5PFpx1IxGLrFmT1Cd0C2fFWrbv77I= -github.com/fluxcd/source-controller/api v0.25.0 h1:+uL+hQb/6h2MHuE9/Iq054TrDWF70puAuWBcoBrZK5M= -github.com/fluxcd/source-controller/api v0.25.0/go.mod h1:tuMrqHHpRt7mxdLeRXGIMtTKAMufLwLTm5uXkEOJWFw= +github.com/fluxcd/source-controller/api v0.25.1 h1:bqxMIeOSEIOH4f0UC+psgjC5qU3+B1KcOKgm7szZGoc= +github.com/fluxcd/source-controller/api v0.25.1/go.mod h1:tuMrqHHpRt7mxdLeRXGIMtTKAMufLwLTm5uXkEOJWFw= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= diff --git a/controllers/imageupdateautomation_controller.go b/controllers/imageupdateautomation_controller.go index e53d9e85..3399107d 100644 --- a/controllers/imageupdateautomation_controller.go +++ b/controllers/imageupdateautomation_controller.go @@ -542,9 +542,7 @@ func (r repoAccess) remoteCallbacks(ctx context.Context) libgit2.RemoteCallbacks // can be `nil`). It returns a `*libgit2.Repository` since that is used // for committing changes. func cloneInto(ctx context.Context, access repoAccess, ref *sourcev1.GitRepositoryRef, - path string) (_ *libgit2.Repository, err error) { - defer recoverPanic(&err) - + path string) (*libgit2.Repository, error) { opts := git.CheckoutOptions{} if ref != nil { opts.Tag = ref.Tag @@ -983,9 +981,3 @@ func templateMsg(messageTemplate string, templateValues *TemplateData) (string, } return b.String(), nil } - -func recoverPanic(err *error) { - if r := recover(); r != nil { - *err = fmt.Errorf("recovered from git2go panic: %v", r) - } -} diff --git a/go.mod b/go.mod index 6cf309fd..4f85912a 100644 --- a/go.mod +++ b/go.mod @@ -15,8 +15,8 @@ require ( github.com/fluxcd/pkg/gittestserver v0.5.4 github.com/fluxcd/pkg/runtime v0.16.1 github.com/fluxcd/pkg/ssh v0.4.1 - github.com/fluxcd/source-controller v0.25.0 - github.com/fluxcd/source-controller/api v0.25.0 + github.com/fluxcd/source-controller v0.25.1 + github.com/fluxcd/source-controller/api v0.25.1 github.com/go-logr/logr v1.2.3 github.com/google/go-containerregistry v0.9.0 github.com/libgit2/git2go/v33 v33.0.9 diff --git a/go.sum b/go.sum index 3c8d2804..2f22c6bb 100644 --- a/go.sum +++ b/go.sum @@ -196,10 +196,10 @@ github.com/fluxcd/pkg/ssh v0.4.1 h1:O5FCjb5NIZ9PeRjdF2iL9jaPNM+RL+IjrMBZPkqF9W4= github.com/fluxcd/pkg/ssh v0.4.1/go.mod h1:KGgOUOy1uI6RC6+qxIBLvP1AeOOs/nLB25Ca6TZMIXE= github.com/fluxcd/pkg/version v0.1.0 h1:v+SmCanmCB5Tj2Cx9TXlj+kNRfPGbAvirkeqsp7ZEAQ= github.com/fluxcd/pkg/version v0.1.0/go.mod h1:V7Z/w8dxLQzv0FHqa5ox5TeyOd2zOd49EeuWFgnwyj4= -github.com/fluxcd/source-controller v0.25.0 h1:57FnGVTeMGfGIoRyekSPkhqMqbg+haaW/k/GlxQI7v0= -github.com/fluxcd/source-controller v0.25.0/go.mod h1:S/VQ8B0bsr5BqhQ5ts5yc662znMkhnNNF8k+De2NI3M= -github.com/fluxcd/source-controller/api v0.25.0 h1:+uL+hQb/6h2MHuE9/Iq054TrDWF70puAuWBcoBrZK5M= -github.com/fluxcd/source-controller/api v0.25.0/go.mod h1:tuMrqHHpRt7mxdLeRXGIMtTKAMufLwLTm5uXkEOJWFw= +github.com/fluxcd/source-controller v0.25.1 h1:UWoIWjI0O+o2isyx+Lezvbx1KJ0lrz/OT/Sf4FMGZzQ= +github.com/fluxcd/source-controller v0.25.1/go.mod h1:NJzvyK5QCwxj2OMZSMMgkW9m+cuG2VOnzXJ9d5Mvfy4= +github.com/fluxcd/source-controller/api v0.25.1 h1:bqxMIeOSEIOH4f0UC+psgjC5qU3+B1KcOKgm7szZGoc= +github.com/fluxcd/source-controller/api v0.25.1/go.mod h1:tuMrqHHpRt7mxdLeRXGIMtTKAMufLwLTm5uXkEOJWFw= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=