• L
    network: only reload firewall after firewalld is finished restarting · fc79e738
    Laine Stump 提交于
    The network driver used to reload the firewall rules whenever a dbus
    NameOwnerChanged message for org.fedoraproject.FirewallD1 was
    received. Presumably at some point in the past this was successful at
    reloading our rules after a firewalld restart. Recently though I
    noticed that once firewalld was restarted, libvirt's logs would get this
    message:
    
      The name org.fedoraproject.FirewallD1 was not provided by any .service files
    
    After this point, no networks could be started until libvirtd itself
    was restarted.
    
    The problem is that the NameOwnerChanged message is sent twice during
    a firewalld restart - once when the old firewalld is stopped, and
    again when the new firewalld is started. If we try to reload at the
    point the old firewalld is stopped, none of the firewalld dbus calls
    will succeed.
    
    The solution is to check the new_owner field of the message - we
    should reload our firewall rules only if new_owner is non-empty (it is
    set to "" when firewalld is stopped, and some sort of epoch number
    when it is again started).
    Signed-off-by: NLaine Stump <laine@laine.org>
    Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
    fc79e738
bridge_driver.c 185.6 KB