• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
No new info detected.

ovn-kubernetes / libovsdb
50%
main: 48%

Build:
Build:
LAST BUILD BRANCH: conmgr
DEFAULT BRANCH: main
Repo Added 15 Apr 2021 05:45PM UTC
Token FBHmVryAtOC95uh0zdETtZHdbzPZ1o7QC regen
Build 962 Last
Files 75
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH conmgr
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • allow_prom_ns_definition
  • any
  • api-fix
  • applymod-set
  • auto-reconnect
  • avoid-multi-level-map-access
  • base-type
  • bench
  • benchmark-apicreate
  • bug/433
  • bugfix/connect-with-timeout
  • cache
  • cache-clone-not-lookup-twice
  • cache-debuglogging
  • cache-exit-run
  • cache-indexes
  • check-sid
  • cleanup
  • cli-options
  • client
  • client-iface
  • client-validate
  • close-without-serve
  • codeql
  • cond_mon
  • condition
  • conmgr
  • create_multiple
  • cutdown_reconnect_logging
  • db_change_aware
  • deepcopy
  • dep_bot_merge
  • dependabot
  • dependabot/github_actions/github-actions-970b8d0e10
  • dependabot/github_actions/github-actions-a331d3ec2d
  • dependabot/github_actions/github-actions-c836e40089
  • dependabot/go_modules/github.com/docker/docker-20.10.24incompatible
  • dependabot/go_modules/github.com/docker/docker-24.0.7incompatible
  • dependabot/go_modules/github.com/docker/docker-24.0.9incompatible
  • dependabot/go_modules/github.com/docker/docker-28.0.0incompatible
  • dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.3.0
  • dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.4.0
  • dependabot/go_modules/github.com/opencontainers/runc-1.1.12
  • dependabot/go_modules/github.com/opencontainers/runc-1.1.14
  • dependabot/go_modules/github.com/opencontainers/runc-1.1.5
  • dependabot/go_modules/github.com/opencontainers/runc-1.2.8
  • dependabot/go_modules/go-dependencies-0f877749ad
  • dependabot/go_modules/go-dependencies-2410d55ef4
  • dependabot/go_modules/go-dependencies-52cc044f02
  • dependabot/go_modules/go-dependencies-e457808fc3
  • dependabot/go_modules/go-dependencies-fddcb94d8d
  • dependabot/go_modules/golang.org/x/crypto-0.35.0
  • dependabot/go_modules/golang.org/x/net-0.17.0
  • dependabot/go_modules/golang.org/x/net-0.23.0
  • dependabot/go_modules/golang.org/x/net-0.7.0
  • dependabot/go_modules/golang.org/x/text-0.3.8
  • dependabot/go_modules/google.golang.org/protobuf-1.33.0
  • doc
  • dynamic-ep
  • empty_list
  • encodingCleanup
  • enforce_index_checking
  • enum
  • enum-num
  • errors
  • events-list
  • events-pointer
  • expand-named-uuids-rows
  • export-ovsdbclient
  • faster-mutliarch
  • feat/modelgen-enum
  • feat/refact-new-gen
  • feature/cluster-support
  • feature/logger-metrics
  • fix-201
  • fix-212
  • fix-216
  • fix-arg
  • fix-caps
  • fix-comment-op
  • fix-deadlock
  • fix-delete
  • fix-digest
  • fix-indexes
  • fix-make-lint-path
  • fix-make-local
  • fix-modelgen-path
  • fix-monitor-fallback
  • fix-overflow
  • fix-play-with-ovs
  • fix-pointer-issue
  • fix-readme
  • fix-reconnect
  • fix-row
  • fix-rpc-shutdown-race
  • fix-server
  • fix-server-again
  • fix-set-size-1
  • fix-trafficSeen-race
  • fix-trafficseen-close-race
  • fix-types-api
  • fix/203
  • fix/add-print-schema-test
  • fix/print-schema-without-reftype
  • fix_cache_errors
  • fix_conn_leak_at_monitor_failure
  • fix_handling_cache
  • fix_import
  • fix_mod_missing_column
  • fix_monitors_deadlock
  • fix_nil_column_keys
  • fix_null_ptr_metric
  • fix_ovs_set
  • fix_ptr_indirect
  • fix_rebase
  • fix_reg_once
  • fix_server_close
  • fix_server_err
  • fix_wait_timeout
  • gen_refactor
  • getExternalIDs
  • getbyindex
  • go-up
  • golangci-fix
  • implement_wait_method
  • inactivity-check
  • index-deferred
  • insert-not-present
  • issue/319
  • issue232
  • issue303_monitorFields
  • issue303_monitorFields.try2
  • it
  • json-adapter
  • libovsdb-txn-log
  • log-more
  • macos-integration
  • main
  • makefile.merge
  • mapper-field-by-column-error
  • me-maintainer
  • moar-fixes
  • moar-linting
  • moar-panics
  • moar_fixes
  • modelgen
  • modelgen-const
  • modelgen-diff-not-detected-in-ci
  • modelgen-order
  • modelgen-schema
  • modelgen-table-name
  • modelgen_fix
  • monitor
  • monitor-cond-since
  • monitor-cond-since-simple
  • monitor-select
  • monitor_condition_v1
  • move_api
  • multi-arch-ovs
  • multi_column_cache
  • mv-cache
  • named-uuid-cleanup
  • no-clone-where
  • no-index
  • noptr
  • old
  • optional
  • optional_blocking_with_reconnect
  • optional_nil_update
  • orm
  • orm-crud
  • otel
  • ovn-kubernetes
  • ovs-perms
  • ovs-test-up
  • ovs-up
  • ovs-update
  • ovsdb-server
  • ovsdb-tag
  • patch-1
  • perf/list-mem
  • perf/wherecache
  • pointer-column
  • protect_cache_read
  • ptr
  • ptrs
  • rando_fixes2
  • readme-fix
  • reconnect
  • reconnect-to-something-else
  • reduce-name-stutter
  • refactor
  • references
  • reg_metrics_once
  • release
  • remove-clone
  • revert-412-dependabot/go_modules/go-dependencies-e457808fc3
  • rlock-row-by-model
  • rowcache-deadlock
  • rowupdate-easyjson
  • runc-upgrade
  • schema
  • select
  • select-columns
  • select-new
  • select-refact
  • send-echo-async-for-inactivity-check
  • send-echo-async-v2
  • separate_timeout
  • server
  • server-error-handling
  • server-map-mutate
  • server-panic
  • server-txn
  • sets-as-slice
  • show_me_your_uuids
  • stress
  • test
  • test-focus
  • test-images-wf
  • test_integration_multiple_ops
  • testgen
  • tidy
  • timeout
  • tmp-fix
  • transact-fix
  • transact-no-log
  • translog
  • tweak-loglevel
  • uint64
  • update
  • update-channels
  • update-perf
  • update-refactor
  • update_go118
  • us_fixes
  • use-contexts
  • uuid_map
  • variadic
  • verify-indexes
  • wait-check-now
  • wait_api
  • wait_api_integration_test
  • wait_fixes
  • where
  • where-many
  • wherecachetyped

14 May 2026 08:22PM UTC coverage: 49.512% (+1.4%) from 48.092%
25911161236

Pull #472

github

dave-tucker
client: fix lifecycle event drops and remove grace-timer reconnect suppression

Two correctness issues identified in code review:

1. EventDisconnected/Reconnected/SchemaData competed with EventInboundRPC on
   a single 64-slot non-blocking channel. Under an inbound-update burst,
   lifecycle events could be silently dropped, leaving the client with stale
   state and unrepaired monitors.

   Fix: introduce a dedicated lifecycleCh (cap 8, blocking send) for lifecycle
   events. EventInboundRPC stays on eventCh (cap 64, non-blocking) where
   occasional drops under load are acceptable. runEventLoop uses a priority
   double-select that drains lifecycleCh before blocking on eventCh.

2. After Connect(), setReconnectTime() armed a 3-second suppression window.
   When the OVS container restarted within that window, withinReconnectGrace()
   swallowed the disconnect signal from rpc2, leaving the client in Connected
   state with a dead TCP socket. TestWithReconnect was permanently skipped
   because of this.

   Fix: use rpcClient.DisconnectNotify() directly as the disconnect signal in
   the run-loop select. rpc2 closes this channel when that specific client
   closes; each new connection produces a new channel, so signals from a
   previous connection are naturally abandoned — no grace timer needed.
   Remove setReconnectTime/withinReconnectGrace/startDisconnectWatcher and the
   drain-sleep-drain loops in doCmdConnect and runReconnectLoop.

Unskip TestWithReconnect now that the underlying bug is fixed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Pull Request #472: client: introduce ConnectionManager to fix reconnect/disconnect panics

807 of 967 new or added lines in 5 files covered. (83.45%)

16 existing lines in 1 file now uncovered.

6547 of 13223 relevant lines covered (49.51%)

134.12 hits per line

Relevant lines Covered
Build:
Build:
13223 RELEVANT LINES 6547 COVERED LINES
134.12 HITS PER LINE
Source Files on main
  • Tree
  • List 75
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
25911161236 conmgr client: fix lifecycle event drops and remove grace-timer reconnect suppression Two correctness issues identified in code review: 1. EventDisconnected/Reconnected/SchemaData competed with EventInboundRPC on a single 64-slot non-blocking channe... Pull #472 15 May 2026 09:44AM UTC dave-tucker github
49.51
25870806382 conmgr client: introduce ConnectionManager to fix reconnect/disconnect races Add a ConnectionManager (CM) — a finite-state machine goroutine that owns all OVSDB connection lifecycle and proxies RPC calls, eliminating the data races and panics that occur... Pull #472 14 May 2026 04:08PM UTC dave-tucker github
49.38
25869641553 conmgr test: fix TestMultipleOpsSameRow timeout and model reuse on OVS 3.3.0 The 2-second Eventually timeout was too tight for OVS 3.3.0 given the two-transact setup (create + 5-op modify on the same row). Increase to 5 seconds to match other tests in t... Pull #472 14 May 2026 03:45PM UTC dave-tucker github
49.37
25868380124 conmgr test: fix TestMultipleOpsTransactIntegration map merge bug model.CloneInto uses json.Unmarshal which merges into existing maps rather than replacing them. If the Eventually loop runs once before the update3 modify notification is processed, br.Ex... Pull #472 14 May 2026 03:21PM UTC dave-tucker github
49.26
25801728188 main Merge pull request #477 from dave-tucker/fix-ovs-workflows-permission ci: add workflows permission to check-ovs-versions push 13 May 2026 01:23PM UTC web-flow github
48.09
25799064960 main Merge pull request #474 from ovn-kubernetes/contributing docs: add CONTRIBUTING.md, retire HACKING.md push 13 May 2026 12:31PM UTC web-flow github
48.15
22687191162 fix-trafficseen-close-race client: fix SetOption() to check connected flag instead of rpcClient TestOpsWaitForReconnect was failing because after Disconnect() is called, the connected flag is set to false immediately, but rpcClient is only set to nil later by handleDisconn... Pull #459 04 Mar 2026 08:13PM UTC booxter github
48.22
22687128641 fix-trafficseen-close-race client: fix SetOption() to check connected flag instead of rpcClient TestOpsWaitForReconnect was failing because after Disconnect() is called, the connected flag is set to false immediately, but rpcClient is only set to nil later by handleDisconn... Pull #459 04 Mar 2026 08:11PM UTC booxter github
48.16
22585466877 main Merge pull request #457 from booxter/fix-rpc-shutdown-race push 02 Mar 2026 04:56PM UTC web-flow github
48.15
22584268592 main Merge pull request #453 from ovn-kubernetes/dependabot/go_modules/golang.org/x/crypto-0.45.0 build(deps): bump golang.org/x/crypto from 0.38.0 to 0.45.0 push 02 Mar 2026 04:33PM UTC web-flow github
48.13
See All Builds (962)

Badge your Repo: libovsdb

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc