`Found ordering cycle on _SERVICE_` loops due to `local-fs.target` with `Requires` instead of `Wants` for mounts generated from `/etc/fstab`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



26.04.2018 23:20, John Florian пиÑ?еÑ?:
> On 2018-04-26 16:04, John Florian wrote:
>> On 2018-04-25 04:53, Lennart Poettering wrote:
>>> There have been requests in improving the cycle breaking algorithm,
>>> but not much has been done in this area, since it's not clear what can
>>> be done. Ultimately it's just polishing a broken situation, and
>>> the better way out is to fix things properly, i.e. just correct the
>>> cycle in the dependencies in the first place.
>>
>> Having been the author of numerous custom services that are intended
>> to wedge into those provided by systemd/Fedora I've faced resolving
>> these several times and I've never felt all that competent at the
>> task.  Lennart, you were immensely helpful on one occasion by pointing
>> me to `systemctl show FOO` but even then hunting the problem down was
>> far from simple (for me).  I've done the dot/graphviz thing and found
>> it just as useless to me as when I've tried applying it to Puppet's
>> ordering/dependency looping. I'm not blaming those tools (or systemd)
>> because I'm well aware much of the problem is my inability to use them
>> effectively.  The graphs always seem to be overly simple and revealing
>> no problem or overly detailed and obscuring the problem.  Compound
>> that with "an arrow pointing this way means what exactly?"
>>
>> Is there anything else that could be done to make hunting these loops
>> down easier?  Is there an example of any product that has a similar
>> situation where they excel at helping the developer?  Or are we
>> already there and I just need more practice?  I'm sure part of my
>> struggle is just not encountering these very regularly and integrating
>> into much that I'm only partly familiar with, but the result is the
>> same, trepidation and loathing.
> 
> Since I hate to grumble w/o so much as offering any possible
> suggestions... It seems like it might be helpful to have something like
> `systemctl show` but only dumping the properties used for ordering and
> dependencies.  Ideally, only ordering OR dependencies as the case
> warrants and for all units involved, but only those units.

Well, you could use "systemctl show -p Id -p After -p Before" but the
problem is to find the correct unit set. You really need something that
simulates transaction and evaluates dependencies like systemd does it.

Note that systemd should print offending cycle when it hits it:

апÑ? 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
ordering cycle on foo.service/start
апÑ? 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on bar.service/start
апÑ? 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on baz.service/start
апÑ? 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on foo.service/start
апÑ? 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Breaking
ordering cycle by deleting job baz.service/start


It would be helpful it if additionally printed kind of dependency (like
foo.service is After bar.service) because this is by far not obvious for
average user.


[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux