From 78a7be5457ad012bf7588a1d8633e512dcc0ad5b Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Fri, 29 May 2020 14:41:27 +0800 Subject: [PATCH] fix a client-go crash handler not working issue. Kubernetes-commit: 4a4d1947b031aa301be6046c641faae275f5223b --- tools/leaderelection/leaderelection.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/leaderelection/leaderelection.go b/tools/leaderelection/leaderelection.go index 777bcd87..4a532968 100644 --- a/tools/leaderelection/leaderelection.go +++ b/tools/leaderelection/leaderelection.go @@ -195,10 +195,11 @@ type LeaderElector struct { // Run starts the leader election loop func (le *LeaderElector) Run(ctx context.Context) { + defer runtime.HandleCrash() defer func() { - runtime.HandleCrash() le.config.Callbacks.OnStoppedLeading() }() + if !le.acquire(ctx) { return // ctx signalled done }