This is tracking the upstream effort needed to deliver the solution to the bug described below.
Problem Description: Clearly explain the issue.
Conditional monitoring for "opt" tables is not working/non functional. The sb_table_set_opt_mon_condition macro checks sbrec_server_has_##table##_table(idl) before setting conditions, but this check returns false at startup even though the schema has already been retrieved from the server. As a result, conditions are never applied to these tables.
FWIW, it's a know, though forgotten, behavior in ovn-controller to start with an unconditional monitoring for the "new" tables: https://github.com/ovn-org/ovn/commit/f66abc59e173a13eb299902006874d41fea40302 . But still should be fixed in one way or another.
Impact Assessment: Describe the severity and impact (e.g., network down,availability of a workaround, etc.).
All "opt" SB tables are fetched unconditionally, regardless of the ovn-monitor-all setting.
Software Versions: Specify the exact versions in use (e.g.,openvswitch3.1-3.1.0-147.el8fdp).
Issue Type: Indicate whether this is a new issue or a regression (if a regression, state the last known working version).
New issue.
Reproducibility: Confirm if the issue can be reproduced consistently. If not, describe how often it occurs.
Always
Reproduction Steps: Provide detailed steps or scripts to replicate the issue.
- Start ovn-controller with ovn-monitor-all=false.
- Inspect the monitor_cond_since request in jsonrpc logs.
- Observe that opt tables such as Advertised_MAC_Binding are included without any where clause, meaning all data is fetched unconditionally.
Expected Behavior: Describe what should happen under normal circumstances.
When ovn-monitor-all=false, opt tables should have appropriate conditional monitoring clauses. When ovn-monitor-all=true, they should include where: true.
Observed Behavior: Explain what actually happens.
Opt tables are always transferred without a where clause regardless of monitoring settings.
Troubleshooting Actions: Outline the steps taken to diagnose or resolve the issue so far.