Skip to content

Commit f7daeed

Browse files
committed
refactor: capture loop variables to avoid closure issues in goroutines across multiple files
Signed-off-by: cuisongliu <[email protected]>
1 parent 20b0450 commit f7daeed

File tree

14 files changed

+18
-0
lines changed

14 files changed

+18
-0
lines changed

lifecycle/cmd/sealos/cmd/exec.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ func runCommand(cluster *v2.Cluster, targets, args []string) error {
8989
}
9090
eg, _ := errgroup.WithContext(context.Background())
9191
for _, ipAddr := range targets {
92+
ipAddr := ipAddr
9293
eg.Go(func() error {
9394
return execer.CmdAsync(ipAddr, args...)
9495
})

lifecycle/cmd/sealos/cmd/scp.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ func runCopy(cluster *v1beta1.Cluster, targets, args []string) error {
7373
}
7474
eg, _ := errgroup.WithContext(context.Background())
7575
for _, ipAddr := range targets {
76+
ipAddr := ipAddr
7677
eg.Go(func() error {
7778
return execer.Copy(ipAddr, args[0], args[1])
7879
})

lifecycle/pkg/buildah/create.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ func runRender(mountPoints, env []string) error {
162162
envs := maps.FromSlice(env)
163163

164164
for _, mountPoint := range mountPoints {
165+
mountPoint := mountPoint
165166
eg.Go(func() error {
166167
if !file.IsExist(mountPoint) {
167168
logger.Debug("MountPoint %s does not exist, skipping", mountPoint)

lifecycle/pkg/filesystem/rootfs/rootfs_default.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ func (f *defaultRootfs) mountRootfs(cluster *v2.Cluster, ipList []string) error
5858
envProcessor := env.NewEnvProcessor(cluster)
5959
// TODO: remove this when rendering on client side is GA
6060
for _, mount := range f.mounts {
61+
mount := mount
6162
eg.Go(func() error {
6263
if !file.IsExist(mount.MountPoint) {
6364
logger.Debug("Image %s not exist, render env continue", mount.ImageName)
@@ -120,6 +121,7 @@ func (f *defaultRootfs) mountRootfs(cluster *v2.Cluster, ipList []string) error
120121
rootfsEnvs := v2.MergeEnvWithBuiltinKeys(rootfs.Env, *rootfs)
121122

122123
for _, ip := range ipList {
124+
ip := ip
123125
eg.Go(func() error {
124126
var renderingRequired bool
125127
for i := range f.mounts {
@@ -191,6 +193,7 @@ func (f *defaultRootfs) unmountRootfs(cluster *v2.Cluster, ipList []string) erro
191193
}
192194

193195
for _, ip := range ipList {
196+
ip := ip
194197
eg.Go(func() error {
195198
return execer.CmdAsync(ip, rmRootfs, deleteHomeDirCmd)
196199
})

lifecycle/pkg/runtime/k3s/bootstrap.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ func (k *K3s) copyKubeConfigFileToNodes(hosts ...string) error {
268268
}
269269
eg, _ := errgroup.WithContext(context.Background())
270270
for _, node := range hosts {
271+
node := node
271272
eg.Go(func() error {
272273
home, err := k.execer.CmdToString(node, "echo $HOME", "")
273274
if err != nil {

lifecycle/pkg/runtime/k3s/k3s.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ func (k *K3s) SyncNodeIPVS(mastersIPList, nodeIPList []string) error {
135135
image := k.cluster.GetLvscareImage()
136136
eg, _ := errgroup.WithContext(context.Background())
137137
for _, node := range nodeIPList {
138+
node := node
138139
eg.Go(func() error {
139140
logger.Info("start to sync lvscare static pod to node: %s master: %+v", node, masters)
140141
err := k.remoteUtil.StaticPod(

lifecycle/pkg/runtime/kubernetes/certs.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ func (k *KubeadmRuntime) deleteAPIServer() error {
192192
logger.Info("delete pod apiserver from crictl")
193193
eg, _ := errgroup.WithContext(context.Background())
194194
for _, master := range k.getMasterIPAndPortList() {
195+
master := master
195196
eg.Go(func() error {
196197
podIDJson, err := k.sshCmdToString(master, podIDSh)
197198
if err != nil {

lifecycle/pkg/runtime/kubernetes/kubeconfig.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func (k *KubeadmRuntime) copyKubeConfigFileToNodes(hosts ...string) error {
2929
src := k.pathResolver.AdminFile()
3030
eg, _ := errgroup.WithContext(context.Background())
3131
for _, node := range hosts {
32+
node := node
3233
eg.Go(func() error {
3334
home, err := k.execer.CmdToString(node, "echo $HOME", "")
3435
if err != nil {

lifecycle/pkg/runtime/kubernetes/master.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ func (k *KubeadmRuntime) imagePull(hostAndPort, version string) error {
114114
func (k *KubeadmRuntime) sendJoinCPConfig(joinMaster []string) error {
115115
eg, _ := errgroup.WithContext(context.Background())
116116
for _, master := range joinMaster {
117+
master := master
117118
eg.Go(func() error {
118119
k.mu.Lock()
119120
defer k.mu.Unlock()
@@ -224,6 +225,7 @@ func (k *KubeadmRuntime) deleteMasters(masters []string) error {
224225
}
225226
eg, _ := errgroup.WithContext(context.Background())
226227
for _, master := range masters {
228+
master := master
227229
eg.Go(func() error {
228230
logger.Info("start to delete master %s", master)
229231
if err := k.deleteMaster(master); err != nil {

lifecycle/pkg/runtime/kubernetes/node.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func (k *KubeadmRuntime) joinNodes(newNodesIPList []string) error {
4141
}
4242
eg, _ := errgroup.WithContext(context.Background())
4343
for _, node := range newNodesIPList {
44+
node := node
4445
eg.Go(func() error {
4546
logger.Info("start to join %s as worker", node)
4647
k.mu.Lock()
@@ -101,6 +102,7 @@ func (k *KubeadmRuntime) deleteNodes(nodes []string) error {
101102
}
102103
eg, _ := errgroup.WithContext(context.Background())
103104
for _, node := range nodes {
105+
node := node
104106
eg.Go(func() error {
105107
logger.Info("start to delete worker %s", node)
106108
if err := k.deleteNode(node); err != nil {

0 commit comments

Comments
 (0)