At bootup, all the services that depend on net wait for net.ppp0 in sys-apps/openrc-0.11.8 even though rc_depend_strict="NO" is set in /etc/rc.conf and many other interfaces start before net.ppp0. This can cause some services to never start and they are forever waiting for net.ppp0 even after it has finished starting. I also have rc_parallel="YES" and haven't tested with rc_parallel="NO" yet. I didn't have this problem in openrc-0.9.8.4 "/etc/init.d/net.ppp0 needsme" and "/etc/init.d/net.ppp0 usesme" outputs no services. Reproducible: Always Steps to Reproduce: 1. Reboot Linux
Here is some more info: The problem message is "WARNING: <servicename> is scheduled to start when net.ppp0 has started" where <servicename> includes every service that has "need net" as its dependency even if I have rc_need="net.eth0" in /etc/conf.d/<servicename> net-dialup/ppp version: 2.4.5-r3 net-dialup/rp-pppoe version: 3.8-r2 sha1sum: 62ff1bbd296809e505119018cd624719bb03af9f /etc/init.d/net.lo All other net.* files are symlinked to /etc/init.d/net.lo . All net.* services except for net.lo are in the default runlevel. net.lo is in the boot runlevel. The net.ppp0 config in /etc/conf.d/net: config_ppp0="ppp" rc_net_ppp0="net.eth1" link_ppp0="eth1" plugins_ppp0="pppoe" username_ppp0='<isp_username>' pppd_ppp0="noauth noipdefault defaultroute lcp-echo-adaptive lcp-echo-interval 15 lcp-echo-failure 4 mtu 1456 ipv6 ,"
(In reply to comment #1) > Here is some more info: > The problem message is "WARNING: <servicename> is scheduled to start when > net.ppp0 has started" where <servicename> includes every service that has > "need net" as its dependency even if I have rc_need="net.eth0" in > /etc/conf.d/<servicename> What happens if you put this line in /etc/conf.d/<servicename>: rc_need="!net net.eth0" Also, I'm not familiar with how ppp works at all, so I want to confirm, do you have net.ppp0 in your default runlevel?
(In reply to comment #2) > (In reply to comment #1) > > Here is some more info: > > The problem message is "WARNING: <servicename> is scheduled to start when > > net.ppp0 has started" where <servicename> includes every service that has > > "need net" as its dependency even if I have rc_need="net.eth0" in > > /etc/conf.d/<servicename> > > What happens if you put this line in /etc/conf.d/<servicename>: > > rc_need="!net net.eth0" I just realized this when I hit save, before you do that, try this in /etc/conf.d/net: rc_net_lo_provide="net" I want to find out if this is because of us dropping "provide net" from the loopback interface. Also, please test your original setup with rc_parallel="no" and let me know what happens with that setup.
It looks like adding rc_net_lo_provide="net" to /etc/conf.d/net has fixed the problem. Also, the problem doesn't occur with rc_parallel="no", but I really try to tweak the dependencies in the /etc/conf.d/ files for each system so I can use rc_parallel="yes" as the startup and shutdown time is greatly increased.
(In reply to comment #4) > It looks like adding rc_net_lo_provide="net" to /etc/conf.d/net has fixed > the problem. Also, the problem doesn't occur with rc_parallel="no", but I > really try to tweak the dependencies in the /etc/conf.d/ files for each > system so I can use rc_parallel="yes" as the startup and shutdown time is > greatly increased. Thanks for doing this; this shows what the real issue is. Your services which are not starting are misusing "need net". The fix is to actually remove this line you added then check bug #439092 and the blog entry linked to there for the information on the fix until the new service scripts are stabled.
Okay thanks. I probably won't be able to help much with figuring out which of those services really need networking, but here is a list of some services/packages that had problems that might not have been updated yet: radvd, http-replicator, syslog-ng (when listening on network ports), tftp-hpa, saslauthd, bind, openvpn, sys-power/nut, dhcpd (from net-misc/dhcp), vsftpd, apache2, asterisk.
This issue might be related Setup: net.if1 provides net net.if2 provides net rc_depend_strict=NO net.if1 sometimes fails to start (this is intended) Problem: when net.if1 fails to start, openrc does not attempt to start net.if2 starting a service dependent on net fails. Workaround: make sure interfaces are up before any service requests them (e.g. add to boot) Possible reason - regression: 11.8 resolves net to first net.* which is started and provides net. Otherwise it resolves to first net.* service, and only attempts to start this one. It seems some older openrc tried to start all items providing net, and then carry on whenever any of those started. This probably was the expected behaviour. Parallel/sequential boot doesn't affect this issue Talking about misusing rc_need -> It seems rc_depend_strict=no itself serves this purpose. And also simplifying kinda weird configuration a lot.