[systemd-devel] network/openvswitch dependency loop/deadlock

Thomas Graf tgraf at redhat.com
Wed Feb 13 14:55:23 PST 2013


On 02/13/2013 08:03 PM, Lennart Poettering wrote:
> Well, so first of all, no service needs syslog.service anymore. The
> socket of syslog is established during early boot, and you should not
> add deps for it anymore.

OK, I'll remove that dependency. We inherited that from the upstream
unit file.

> Why is After=network.target actually needed? Shouldn't OVS be capable of
> picking up devices as they appear? Device probing is ansynchronous, so
> we kinda try to get people away from assuming that there was a point in
> time where all devices are finished probing, and we prefer if people
> just pick the devices up as they appear... YOu are the libnl guy, I
> figure you know that anyway...

A virtual switch may depend on a OpenFlow controller doing the switching
decisions for the switch. An OpenFlow controller typically runs
logically centralized but physically distributed on the network.

The virtual switch may also have sFlow and NetFlow agents configured to
send packet samples access the network and the receivers don't want to
miss out on samples just because the network is not ready yet.

Therefore the generic network.target dependency. I agree that it's not
ideal which is why we added a new ifcfg key=value allowing to define
dependencies on specific interfaces but we have a lot of existing setups
that are not using that new key yet.

> But under different configuration, right?
>
> So, you could either enable that target I mentioned before as a barrier
> that is enabled only sometimes, or you could just use two different unit
> files for this, and pull in one for the configuration a) and the other
> for b)?

Alright, two separate unit files sounds good to me. The point of
this discussion was to figure out if there was another well known best
practice.

Thanks


More information about the systemd-devel mailing list