source-controller/pkg/git/libgit2
Sunny 7f7490ebf0
libgit2/managed: fix race issues in ssh transport
Race conditions in ssh smart subtransport caused some goroutines to
panic, resulting in crashing the whole controller, mostly evident in
image-automation-controller CI runs. Panic recovery in the main thread
do not handle goroutine panics. So, the existing panic recovery code in
libgit2 Checkout() methods weren't able to handle it.

This change groups the fields in ssh smart subtransport that may be
accessed by multiple goroutines into a new struct with a mutex. Also
adds panic recovery in the created goroutine to handle any other
possible panics.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-06-03 01:45:18 +05:30
..
managed libgit2/managed: fix race issues in ssh transport 2022-06-03 01:45:18 +05:30
checkout.go libgit2: fix checkout logic for CheckoutBranch 2022-06-01 14:14:28 +05:30
checkout_test.go factor out unmanaged checkout into its own functions 2022-05-27 14:01:23 +05:30
libgit2.go gogit: allow checkout of commit without branch 2021-10-27 00:43:31 +05:30
managed_test.go libgit2: fix checkout logic for CheckoutBranch 2022-06-01 14:14:28 +05:30
transport.go fix panics on unmanaged http and proxy on managed http 2022-05-27 14:01:23 +05:30
transport_test.go fix panics on unmanaged http and proxy on managed http 2022-05-27 14:01:23 +05:30