Skip to content

ovsdb-server.service Warning and Network Timeout After Upgrade

Problem Statement

After updating Ubuntu systems with apt upgrade and rebooting, many users encounter two related issues:

  1. OVSDB Service Warning:
    When applying network configurations with sudo netplan apply, the system outputs:

    none
    WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.

    This occurs despite Open vSwitch (OVS) never being installed.

  2. Network Configuration Timeout:
    The systemd-networkd-wait-online.service fails with a timeout:

    none
    × systemd-networkd-wait-online.service - Wait for Network to be Configured
      Active: failed (Result: timeout)

    This happens even though Ethernet/Wi-Fi interfaces obtain valid IP addresses.

These issues are caused by:

  • A known bug in netplan that incorrectly checks for OVS
  • Overly broad network interface waiting logic in systemd
  • Specific package interactions in recent Ubuntu updates

Solutions

1. Resolving OVSB Server Warning

bash
sudo apt update
sudo apt install openvswitch-switch
sudo netplan apply  # Verify warning disappears

For Raspberry Pi Systems:

bash
sudo apt install linux-modules-extra-raspi
sudo apt install openvswitch-switch
sudo netplan try

If you prefer not to install OVS, ignore the harmless warning (bug fix pending).


2. Fixing Network Timeout Failure

Modify the wait service to target only essential interfaces:

Step 1: Find Active Interfaces

bash
ip a

Identify critical interfaces (e.g., eth0, wlan0)

Step 2: Create Service Override

bash
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo nano /etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf

Add this configuration (adapt interfaces as needed):

ini
[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=eth0 --interface=wlan0
TimeoutStartSec=30sec

Step 3: Apply Changes

bash
sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd-wait-online.service
sudo systemctl status systemd-networkd-wait-online.service  # Verify active status

Alternative Network Wait Approach

To skip waiting entirely (not recommended for servers):

bash
sudo systemctl mask systemd-networkd-wait-online.service

Explanation

Why Does This Happen?

  1. OVS Warning Bug
    Recent netplan updates contain a defect that incorrectly checks for OVS database services, triggering false warnings.

  2. Network Timeout Causes
    The default systemd-networkd-wait-online.service waits for all interfaces, including:

    • Dormant virtual interfaces
    • Disconnected ports
    • Non-essential devices
      This causes unnecessary timeouts.

Best Practice Recommendations

  1. Prefer Targeted Interface Waiting
    Constraining --interface to essential connections aligns with the Ubuntu 22.04+ recommendation for headless servers.

  2. Adjust Timeouts Conservatively
    30sec works for most systems - increase only if using complex network topologies.

  3. Monitor Bug Fixes
    Track Launchpad Bug #2041727 for native resolution of OVS warnings.


Verification

Confirm both issues are resolved with:

bash
sudo netplan apply  # Should show no warnings
systemctl status systemd-networkd-wait-online.service  # Should show active

Important: After fixing, reboot once to confirm persistence:

bash
sudo reboot