ovn-kubernetes/libovsdb

Panic when server initiated disconnect happens at the same time as client transaction

Open

#464 opened on Feb 27, 2026

View on GitHub
 (3 comments) (1 reaction) (2 assignees)Go (164 forks)auto 404
buggood first issue

Repository metrics

Stars
 (211 stars)
PR merge metrics
 (PR metrics pending)

Description

Observed in https://github.com/ovn-kubernetes/ovn-kubernetes/pull/5897

16  0x0000000000479692 in runtime.gopanic
    at /usr/local/go/src/runtime/panic.go:792
17  0x000000000041105e in runtime.chansend
    at /usr/local/go/src/runtime/chan.go:226
18  0x000000000041235a in runtime.selectnbsend
    at /usr/local/go/src/runtime/chan.go:782
19  0x0000000001b55c26 in github.com/ovn-kubernetes/libovsdb/client.(*ovsdbClient).transact
    at /workspace/ovn-kubernetes/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/client.go:844
20  0x0000000001b55165 in github.com/ovn-kubernetes/libovsdb/client.(*ovsdbClient).Transact
    at /workspace/ovn-kubernetes/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/client.go:809
21  0x0000000001eec9eb in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops.TransactWithRetry.func1
    at /workspace/ovn-kubernetes/go-controller/pkg/libovsdb/ops/transact.go:25
22  0x00000000008f4102 in k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func1
    at /workspace/ovn-kubernetes/go-controller/vendor/k8s.io/apimachinery/pkg/util/wait/loop.go:53
23  0x00000000008f3cd5 in k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext
    at /workspace/ovn-kubernetes/go-controller/vendor/k8s.io/apimachinery/pkg/util/wait/loop.go:54
24  0x00000000008f4296 in k8s.io/apimachinery/pkg/util/wait.PollUntilContextCancel
    at /workspace/ovn-kubernetes/go-controller/vendor/k8s.io/apimachinery/pkg/util/wait/poll.go:33
25  0x0000000001eec905 in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops.TransactWithRetry
    at /workspace/ovn-kubernetes/go-controller/pkg/libovsdb/ops/transact.go:23
26  0x0000000001eecd46 in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops.TransactAndCheck
    at /workspace/ovn-kubernetes/go-controller/pkg/libovsdb/ops/transact.go:48
27  0x0000000001eed1db in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops.TransactAndCheckAndSetUUIDs
    at /workspace/ovn-kubernetes/go-controller/pkg/libovsdb/ops/transact.go:66
28  0x0000000002115b10 in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.EnsureLBs
    at /workspace/ovn-kubernetes/go-controller/pkg/ovn/controller/services/loadbalancer.go:293
29  0x0000000002122d8e in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).syncService
    at /workspace/ovn-kubernetes/go-controller/pkg/ovn/controller/services/services_controller.go:503
30  0x0000000002120210 in github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).processNextWorkItem
    at /workspace/ovn-kubernetes/go-controller/pkg/ovn/controller/services/services_controller.go:299

The channel is trafficSeen. We probably should drain the channel instead of closing/reopening.

Contributor guide