Accepting request 1102120 from Virtualization
OBS-URL: https://build.opensuse.org/request/show/1102120 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kubevirt?expand=0&rev=62
This commit is contained in:
commit
8e95cec8b4
128
0008-fix-ticker-leak.patch
Normal file
128
0008-fix-ticker-leak.patch
Normal file
@ -0,0 +1,128 @@
|
||||
From f18f0988669908b4bdc5c4152fc7f5863d5ef3cd Mon Sep 17 00:00:00 2001
|
||||
From: rokkiter <101091030+rokkiter@users.noreply.github.com>
|
||||
Date: Mon, 31 Jul 2023 16:51:08 +0800
|
||||
Subject: [PATCH 1/2] fix ticker leak
|
||||
|
||||
Signed-off-by: rokkiter <101091030+rokkiter@users.noreply.github.com>
|
||||
---
|
||||
cmd/virt-launcher/virt-launcher.go | 16 ++++++++++------
|
||||
1 file changed, 10 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/cmd/virt-launcher/virt-launcher.go b/cmd/virt-launcher/virt-launcher.go
|
||||
index e8d7c553f..c682c1bc6 100644
|
||||
--- a/cmd/virt-launcher/virt-launcher.go
|
||||
+++ b/cmd/virt-launcher/virt-launcher.go
|
||||
@@ -237,14 +237,18 @@ func detectDomainWithUUID(domainManager virtwrap.DomainManager) *api.Domain {
|
||||
|
||||
func waitForDomainUUID(timeout time.Duration, events chan watch.Event, stop chan struct{}, domainManager virtwrap.DomainManager) *api.Domain {
|
||||
|
||||
- ticker := time.NewTicker(timeout).C
|
||||
- checkEarlyExit := time.NewTicker(time.Second * 2).C
|
||||
- domainCheckTicker := time.NewTicker(time.Second * 10).C
|
||||
+ ticker := time.NewTicker(timeout)
|
||||
+ defer ticker.Stop()
|
||||
+ checkEarlyExit := time.NewTicker(time.Second * 2)
|
||||
+ defer checkEarlyExit.Stop()
|
||||
+ domainCheckTicker := time.NewTicker(time.Second * 10)
|
||||
+ defer domainCheckTicker.Stop()
|
||||
+
|
||||
for {
|
||||
select {
|
||||
- case <-ticker:
|
||||
+ case <-ticker.C:
|
||||
panic(fmt.Errorf("timed out waiting for domain to be defined"))
|
||||
- case <-domainCheckTicker:
|
||||
+ case <-domainCheckTicker.C:
|
||||
log.Log.V(3).Infof("Periodically checking for domain with UUID")
|
||||
domain := detectDomainWithUUID(domainManager)
|
||||
if domain != nil {
|
||||
@@ -258,7 +262,7 @@ func waitForDomainUUID(timeout time.Duration, events chan watch.Event, stop chan
|
||||
}
|
||||
case <-stop:
|
||||
return nil
|
||||
- case <-checkEarlyExit:
|
||||
+ case <-checkEarlyExit.C:
|
||||
if cmdserver.ReceivedEarlyExitSignal() {
|
||||
panic(fmt.Errorf("received early exit signal"))
|
||||
}
|
||||
--
|
||||
2.41.0
|
||||
|
||||
|
||||
From e8941fad18234293e10fd3b968491bc4d22a6c09 Mon Sep 17 00:00:00 2001
|
||||
From: rokkiter <101091030+rokkiter@users.noreply.github.com>
|
||||
Date: Wed, 2 Aug 2023 10:18:39 +0800
|
||||
Subject: [PATCH 2/2] fix ticker leak
|
||||
|
||||
Signed-off-by: rokkiter <101091030+rokkiter@users.noreply.github.com>
|
||||
---
|
||||
pkg/monitoring/domainstats/downwardmetrics/scraper.go | 1 +
|
||||
pkg/virt-handler/retry_manager.go | 1 +
|
||||
pkg/virt-launcher/monitor.go | 3 +--
|
||||
pkg/virt-launcher/virtwrap/agent-poller/agent_poller.go | 2 +-
|
||||
4 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pkg/monitoring/domainstats/downwardmetrics/scraper.go b/pkg/monitoring/domainstats/downwardmetrics/scraper.go
|
||||
index 8ca6ae4c3..1ca2465cf 100644
|
||||
--- a/pkg/monitoring/domainstats/downwardmetrics/scraper.go
|
||||
+++ b/pkg/monitoring/domainstats/downwardmetrics/scraper.go
|
||||
@@ -149,6 +149,7 @@ func RunDownwardMetricsCollector(context context.Context, nodeName string, vmiIn
|
||||
|
||||
go func() {
|
||||
ticker := time.NewTicker(DownwardmetricsRefreshDuration)
|
||||
+ defer ticker.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-ticker.C:
|
||||
diff --git a/pkg/virt-handler/retry_manager.go b/pkg/virt-handler/retry_manager.go
|
||||
index dc14fb66d..ba549a157 100644
|
||||
--- a/pkg/virt-handler/retry_manager.go
|
||||
+++ b/pkg/virt-handler/retry_manager.go
|
||||
@@ -145,6 +145,7 @@ func (f *FailRetryManager) ShouldDelay(key string, isFailure func() bool) (bool,
|
||||
// Run starts the manager.
|
||||
func (f *FailRetryManager) Run(stopCh chan struct{}) {
|
||||
ticker := time.NewTicker(f.maxWait)
|
||||
+ defer ticker.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-ticker.C:
|
||||
diff --git a/pkg/virt-launcher/monitor.go b/pkg/virt-launcher/monitor.go
|
||||
index 6620ac4df..d82c5c669 100644
|
||||
--- a/pkg/virt-launcher/monitor.go
|
||||
+++ b/pkg/virt-launcher/monitor.go
|
||||
@@ -181,7 +181,7 @@ func (mon *monitor) monitorLoop(startTimeout time.Duration, signalStopChan chan
|
||||
log.Log.Infof("Monitoring loop: rate %v start timeout %s", rate, timeoutRepr)
|
||||
|
||||
ticker := time.NewTicker(rate)
|
||||
-
|
||||
+ defer ticker.Stop()
|
||||
mon.isDone = false
|
||||
mon.timeout = startTimeout
|
||||
mon.start = time.Now()
|
||||
@@ -200,7 +200,6 @@ func (mon *monitor) monitorLoop(startTimeout time.Duration, signalStopChan chan
|
||||
}
|
||||
}
|
||||
|
||||
- ticker.Stop()
|
||||
}
|
||||
|
||||
func (mon *monitor) RunForever(startTimeout time.Duration, signalStopChan chan struct{}) {
|
||||
diff --git a/pkg/virt-launcher/virtwrap/agent-poller/agent_poller.go b/pkg/virt-launcher/virtwrap/agent-poller/agent_poller.go
|
||||
index 83265f3e5..ba681b204 100644
|
||||
--- a/pkg/virt-launcher/virtwrap/agent-poller/agent_poller.go
|
||||
+++ b/pkg/virt-launcher/virtwrap/agent-poller/agent_poller.go
|
||||
@@ -243,10 +243,10 @@ func (p *PollerWorker) Poll(execAgentCommands agentCommandsExecutor, closeChan c
|
||||
}
|
||||
|
||||
ticker := time.NewTicker(pollInterval)
|
||||
+ defer ticker.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-closeChan:
|
||||
- ticker.Stop()
|
||||
return
|
||||
case <-ticker.C:
|
||||
execAgentCommands(p.AgentCommands)
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 3 06:27:57 UTC 2023 - Vasily Ulyanov <vasily.ulyanov@suse.com>
|
||||
|
||||
- Fix leaking tickers
|
||||
0008-fix-ticker-leak.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 28 08:20:41 UTC 2023 - Vasily Ulyanov <vasily.ulyanov@suse.com>
|
||||
|
||||
|
@ -35,6 +35,7 @@ Patch4: 0004-tests-leave-some-space-for-metadata-on-the-backend-P.patch
|
||||
Patch5: 0005-Support-multiple-watchdogs-in-the-domain-schema.patch
|
||||
Patch6: 0006-isolation-close-file-when-exits.patch
|
||||
Patch7: 0007-Fix-volume-detach-on-hotplug-attachment-pod-delete.patch
|
||||
Patch8: 0008-fix-ticker-leak.patch
|
||||
BuildRequires: glibc-devel-static
|
||||
BuildRequires: golang-packaging
|
||||
BuildRequires: pkgconfig
|
||||
|
Loading…
x
Reference in New Issue
Block a user