Skip to content

Commit b4842a0

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

File tree

20 files changed

+54
-53
lines changed

20 files changed

+54
-53
lines changed

lifecycle/cmd/sealos/cmd/exec.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ func runCommand(cluster *v2.Cluster, targets, args []string) error {
8888
return err
8989
}
9090
eg, _ := errgroup.WithContext(context.Background())
91-
for _, ipAddr := range targets {
92-
ipAddr := ipAddr
91+
for i := range targets {
92+
addr := targets[i]
9393
eg.Go(func() error {
94-
return execer.CmdAsync(ipAddr, args...)
94+
return execer.CmdAsync(addr, args...)
9595
})
9696
}
9797
return eg.Wait()

lifecycle/cmd/sealos/cmd/scp.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ func runCopy(cluster *v1beta1.Cluster, targets, args []string) error {
7272
return err
7373
}
7474
eg, _ := errgroup.WithContext(context.Background())
75-
for _, ipAddr := range targets {
76-
ipAddr := ipAddr
75+
for i := range targets {
76+
addr := targets[i]
7777
eg.Go(func() error {
78-
return execer.Copy(ipAddr, args[0], args[1])
78+
return execer.Copy(addr, args[0], args[1])
7979
})
8080
}
8181
if err = eg.Wait(); err != nil {

lifecycle/pkg/apply/applydrivers/apply_drivers_default.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,10 +336,10 @@ func (c *Applier) syncWorkdir() {
336336
logger.Error("failed to create ssh client: %v", err)
337337
}
338338
eg, _ := errgroup.WithContext(context.Background())
339-
for _, ipAddr := range ipList {
340-
ipAddr := ipAddr
339+
for i := range ipList {
340+
addr := ipList[i]
341341
eg.Go(func() error {
342-
return execer.Copy(ipAddr, workDir, workDir)
342+
return execer.Copy(addr, workDir, workDir)
343343
})
344344
}
345345
if err := eg.Wait(); err != nil {

lifecycle/pkg/apply/processor/create.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ func (c *CreateProcessor) preProcess(cluster *v2.Cluster) error {
120120
func (c *CreateProcessor) RunConfig(cluster *v2.Cluster) error {
121121
logger.Info("Executing pipeline RunConfig in CreateProcessor.")
122122
eg, _ := errgroup.WithContext(context.Background())
123-
for _, cManifest := range cluster.Status.Mounts {
124-
cManifest := cManifest
123+
for i := range cluster.Status.Mounts {
124+
cManifest := cluster.Status.Mounts[i]
125125
eg.Go(func() error {
126126
cfg := config.NewConfiguration(
127127
cManifest.ImageName,

lifecycle/pkg/apply/processor/delete.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ func (d *DeleteProcessor) UnMountRootfs(cluster *v2.Cluster) error {
114114

115115
func (d *DeleteProcessor) UnMountImage(cluster *v2.Cluster) error {
116116
eg, _ := errgroup.WithContext(context.Background())
117-
for _, mount := range cluster.Status.Mounts {
118-
mount := mount
117+
for i := range cluster.Status.Mounts {
118+
mount := cluster.Status.Mounts[i]
119119
eg.Go(func() error {
120120
return d.Buildah.Delete(mount.Name)
121121
})

lifecycle/pkg/apply/processor/install.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ func (c *InstallProcessor) RunConfig(_ *v2.Cluster) error {
239239
return nil
240240
}
241241
eg, _ := errgroup.WithContext(context.Background())
242-
for _, cManifest := range c.NewMounts {
243-
cManifest := cManifest
242+
for i := range c.NewMounts {
243+
cManifest := c.NewMounts[i]
244244
eg.Go(func() error {
245245
cfg := config.NewConfiguration(
246246
cManifest.ImageName,

lifecycle/pkg/apply/processor/scale.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,8 @@ func (c *ScaleProcessor) PreProcessImage(cluster *v2.Cluster) error {
263263
func (c *ScaleProcessor) RunConfig(cluster *v2.Cluster) error {
264264
logger.Info("Executing pipeline RunConfig in ScaleProcessor.")
265265
eg, _ := errgroup.WithContext(context.Background())
266-
for _, cManifest := range cluster.Status.Mounts {
267-
cManifest := cManifest
266+
for i := range cluster.Status.Mounts {
267+
cManifest := cluster.Status.Mounts[i]
268268
eg.Go(func() error {
269269
cfg := config.NewConfiguration(
270270
cManifest.ImageName,

lifecycle/pkg/buildah/create.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,14 @@ func runRender(mountPoints, env []string) error {
161161
eg, _ := errgroup.WithContext(context.Background())
162162
envs := maps.FromSlice(env)
163163

164-
for _, mountPoint := range mountPoints {
165-
mountPoint := mountPoint
164+
for i := range mountPoints {
165+
path := mountPoints[i]
166166
eg.Go(func() error {
167-
if !file.IsExist(mountPoint) {
168-
logger.Debug("MountPoint %s does not exist, skipping", mountPoint)
167+
if !file.IsExist(path) {
168+
logger.Debug("MountPoint %s does not exist, skipping", path)
169169
return nil
170170
}
171-
return stringsutil.RenderTemplatesWithEnv(mountPoint, envs)
171+
return stringsutil.RenderTemplatesWithEnv(path, envs)
172172
})
173173
}
174174

lifecycle/pkg/buildah/manifest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@ func manifestInspect(
988988
if latestErr == nil {
989989
latestErr = e
990990
} else {
991-
latestErr = fmt.Errorf("tried %v: %w", e, latestErr)
991+
latestErr = errors.Join(fmt.Errorf("tried %w", e), latestErr)
992992
}
993993
}
994994

lifecycle/pkg/filesystem/rootfs/rootfs_default.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ func (f *defaultRootfs) mountRootfs(cluster *v2.Cluster, ipList []string) error
5757
eg, _ := errgroup.WithContext(ctx)
5858
envProcessor := env.NewEnvProcessor(cluster)
5959
// TODO: remove this when rendering on client side is GA
60-
for _, mount := range f.mounts {
61-
mount := mount
60+
for i := range f.mounts {
61+
mount := f.mounts[i]
6262
eg.Go(func() error {
6363
if !file.IsExist(mount.MountPoint) {
6464
logger.Debug("Image %s not exist, render env continue", mount.ImageName)
@@ -120,8 +120,8 @@ func (f *defaultRootfs) mountRootfs(cluster *v2.Cluster, ipList []string) error
120120
}
121121
rootfsEnvs := v2.MergeEnvWithBuiltinKeys(rootfs.Env, *rootfs)
122122

123-
for _, ip := range ipList {
124-
ip := ip
123+
for i := range ipList {
124+
ip := ipList[i]
125125
eg.Go(func() error {
126126
var renderingRequired bool
127127
for i := range f.mounts {
@@ -192,8 +192,8 @@ func (f *defaultRootfs) unmountRootfs(cluster *v2.Cluster, ipList []string) erro
192192
return err
193193
}
194194

195-
for _, ip := range ipList {
196-
ip := ip
195+
for i := range ipList {
196+
ip := ipList[i]
197197
eg.Go(func() error {
198198
return execer.CmdAsync(ip, rmRootfs, deleteHomeDirCmd)
199199
})

0 commit comments

Comments
 (0)