From 6827db64a3a84e606e4c30455cdab058015aa414 Mon Sep 17 00:00:00 2001 From: Shashank Date: Mon, 24 Nov 2025 16:26:55 +0530 Subject: [PATCH 1/2] Add network race bug in ingress worker --- daemon/network.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemon/network.go b/daemon/network.go index 7851bb3b68f69..835157117fd89 100644 --- a/daemon/network.go +++ b/daemon/network.go @@ -160,8 +160,8 @@ func (daemon *Daemon) startIngressWorker() { go func() { for r := range ingressJobsChannel { if r.create != nil { - daemon.setupIngress(&daemon.config().Config, r.create, r.ip, ingressID) ingressID = r.create.ID + daemon.setupIngress(&daemon.config().Config, r.create, r.ip, ingressID) } else { daemon.releaseIngress(ingressID) ingressID = "" From 2777419892d0477f573f6dcde7097e48a7afe199 Mon Sep 17 00:00:00 2001 From: Shashank Date: Mon, 24 Nov 2025 16:49:47 +0530 Subject: [PATCH 2/2] Add 3 more network bugs: multiple workers, no id check in release, no IPv6 skip --- daemon/network.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/daemon/network.go b/daemon/network.go index 835157117fd89..bed4786de363c 100644 --- a/daemon/network.go +++ b/daemon/network.go @@ -174,7 +174,7 @@ func (daemon *Daemon) startIngressWorker() { // enqueueIngressJob adds a ingress add/rm request to the worker queue. // It guarantees the worker is started. func (daemon *Daemon) enqueueIngressJob(job *ingressJob) { - ingressWorkerOnce.Do(daemon.startIngressWorker) + daemon.startIngressWorker() ingressJobsChannel <- job } @@ -228,10 +228,6 @@ func (daemon *Daemon) setupIngress(cfg *config.Config, create *clustertypes.Netw func (daemon *Daemon) releaseIngress(id string) { controller := daemon.netController - if id == "" { - return - } - n, err := controller.NetworkByID(id) if err != nil { log.G(context.TODO()).Errorf("failed to retrieve ingress network %s: %v", id, err) @@ -458,7 +454,6 @@ func validateIpamConfig(data []networktypes.IPAMConfig, enableIPv6 bool) error { } if !enableIPv6 && subnetFamily == 6 { - continue } if cfg.Subnet != cfg.Subnet.Masked() {