Gentoo Archives: gentoo-dev

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] rfc: openrc service script dependency checker
Date: Fri, 05 Dec 2014 10:45:20
Message-Id: 20141205134502.1e1a90c57578b58659666af1@gentoo.org
In Reply to: Re: [gentoo-dev] rfc: openrc service script dependency checker by William Hubbs
1 On Thu, 4 Dec 2014 12:55:44 -0600 William Hubbs wrote:
2 > Several issues not related to the original have been brought up, which I
3 > will briefly respond to, but let's try to move back to the original
4 > issue I brought up, which is whether the early loop solver should break
5 > loops or just output messages about them.
6
7 Just make it configurable and let users to decide what they want.
8 People who want their loops to be broken will use it. Algorithm
9 itself looks quite reasonable and safe. If someone hesitates and
10 prefers handle such cases manually, loop breaker may be disabled.
11
12 > > > It seems to be a statement of fact that OpenRC ISN'T compatible with
13 > > > LSB dependencies. What it "should" be is anything but a statement of
14 > > > fact, which is what the word "should" means...
15 > >
16 > > Yes, it is not compatible now. And if OpenRC wants to step out of
17 > > Gentoo scope to other distros, it should be. But as one can see,
18 > > Gentoo will also benefit from proposed fixes, which will made OpenRC
19 > > init system more robust and error-prone.
20 >
21 > We are talking about two issues; I did not mean for the lsb support to
22 > get into this thread. I was just wanting to discuss the early loop solver.
23
24 Issues are connected, that's why there were put into consideration
25 also. Anyway discussion seems to be quite productive :)
26
27 > > > I don't get why Gentoo gets by just fine with things as they are, but
28 > > > nobody else apparently can. Just fix your dependencies.
29 > >
30 > > I don't have broken dependencies on my systems right now. And this
31 > > is not a discussion of my personal issues at all. What I'm trying
32 > > to do is to make OpenRC robust and resilient to errors which may
33 > > occur as well as expand its scope outside of Gentoo as a mature
34 > > init system.
35 >
36 > Being error-resistant is a good thing, but the issue with breaking
37 > dependency loops without human intervention is we can't be sure we are
38 > breaking them in a sane way.
39
40 We can discuss early loop solver algorithm then.
41
42 1. It respects need > after > use priority and never breaks need
43 deps. "After" deps will be broken only if there is no "use" deps to
44 broke.
45
46 2. In case we have not a simple loop but branches, inner loops and
47 so on algorithm uses heuristics to break as little dependencies as
48 possible, keeping "after" upon "use".
49
50 On algorithm details you should talk directly to xai (dyokunev),
51 since he wrote them. But from my analysis they look safe, though
52 some details may be optimized in future.
53
54 > > > > Warnings for users about loops is a good idea for Gentoo, but will
55 > > > > produce a lot of not always wanted output on Debian, that's why
56 > > > > this option should be configurable.
57 >
58 > I'm not completely opposed to it being configurable. However, I am
59 > opposed to the configurability being implemented the way it is in the
60 > patch, because it breaks the public API for what I see as a minor gain,
61 > if it is a gain at all.
62
63 Then we should either look for a way to add it without API breaking
64 or update the public API, if current version doesn't allow required
65 features to be implemented.
66
67 > For more ways to control how services stop/start/deal with the timeout
68 > issue, you might want to look up the -stop and -timeout keywords in man
69 > openrc-run.
70
71 I'm aware of this option, but this is not exactly what I need. I'm
72 interested in some kind of trigger which can change global timeout
73 value to something like 1 second, so that a wrapper may be put into
74 SHUDOWNCMD of upsmon.conf or OpenRC should support some hook to
75 check for /etc/killpower and adjust timeout accordingly. Maybe I'm
76 asking too much...
77
78 Best regards,
79 Andrew Savchenko