Skip to content

Commit a256fcb

Browse files
committed
fix: continue cleanup loop on per-device error in CleanupAllUruncTaps
Log errors for individual tap device cleanup failures but continue processing remaining devices, returning a joined error at the end.
1 parent cfeaadb commit a256fcb

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

pkg/network/network.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ func CleanupAllUruncTaps() error {
277277
return fmt.Errorf("failed to list links: %w", err)
278278
}
279279

280+
var retErr error
280281
tapRe := regexp.MustCompile(`^tap_\d+_urunc$`)
281282
for _, link := range links {
282283
attrs := link.Attrs()
@@ -289,22 +290,26 @@ func CleanupAllUruncTaps() error {
289290
}
290291

291292
netlog.Debugf("cleaning up tap device %s", name)
293+
var devErr error
292294
if err := deleteAllTCFilters(link); err != nil {
293295
netlog.Errorf("failed to delete TC filters for %s: %v", name, err)
294-
return err
296+
devErr = errors.Join(devErr, err)
295297
}
296298
if err := deleteAllQDiscs(link); err != nil {
297299
netlog.Errorf("failed to delete qdiscs for %s: %v", name, err)
298-
return err
300+
devErr = errors.Join(devErr, err)
299301
}
300302
if err := deleteTapDevice(link); err != nil {
301303
netlog.Errorf("failed to delete tap %s: %v", name, err)
302-
return err
304+
devErr = errors.Join(devErr, err)
303305
}
304-
netlog.Debugf("deleted tap device %s", name)
306+
if devErr == nil {
307+
netlog.Debugf("deleted tap device %s", name)
308+
}
309+
retErr = errors.Join(retErr, devErr)
305310
}
306311

307-
return nil
312+
return retErr
308313
}
309314

310315
func deleteIngressQdisc(link netlink.Link) error {

0 commit comments

Comments
 (0)