Skip to content

Commit b5744e6

Browse files
committed
Fix CNIEnv concurrency isse on NetworkByNameOrID
Signed-off-by: apostasie <spam_blackhole@farcloser.world>
1 parent 28d77b6 commit b5744e6

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

pkg/netutil/netutil.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,14 @@ func (e *CNIEnv) NetworkMap() (map[string]*NetworkConfig, error) { //nolint:revi
243243
}
244244

245245
func (e *CNIEnv) NetworkByNameOrID(key string) (*NetworkConfig, error) {
246-
networks, err := e.networkConfigList()
247-
if err != nil {
248-
return nil, err
246+
var networks []*NetworkConfig
247+
var err error
248+
249+
fn := func() error {
250+
networks, err = e.networkConfigList()
251+
return err
249252
}
253+
err = lockutil.WithDirLock(filepath.Join(e.NetconfPath, ".nerdctl.lock"), fn)
250254

251255
for _, n := range networks {
252256
if n.Name == key {

0 commit comments

Comments
 (0)