|
Bugzilla – Full Text Bug Listing |
| Summary: | yast fails to enable nfs client services | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Tumbleweed | Reporter: | Olaf Hering <ohering> |
| Component: | YaST2 | Assignee: | Neil Brown <nfbrown> |
| Status: | RESOLVED DUPLICATE | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Major | ||
| Priority: | P5 - None | CC: | fcrozat, jsuchome, locilka, systemd-maintainers |
| Version: | 13.1 Milestone 3 | ||
| Target Milestone: | --- | ||
| Hardware: | x86-64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Found By: | Outsourced Testing | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
|
Description
Olaf Hering
2013-08-02 14:20:45 UTC
if I go to the nfs-client screen, it recognizes the nfs entry in fstab, and if I just leave the screen nfs is enabled afterwards in the runlevel editor. Systemd/nfs should care about the dependencies. Yast sets the desired state of a service, what such service needs it just between systemd and that service. Yast will not go through all the deps and start/enable everything - that's impossible because Yast would not know what to stop/disable if user decides to disable some service. This has to be solved on a different level. Hi Frederick, have you any ideas here? nfs depends on rpcbind, and /etc/init.d/nfs contains # Required-Start: $network $portmap systemd seems to understand "$portmap" to be a synonym for "rpcbind.target". However if you systemctl start nfs.service it doesn't start rpcbind first. Could there be some confusion between "rpcbind.service" and "rpcbind.target"? (In reply to comment #4) > Hi Frederick, > have you any ideas here? > > nfs depends on rpcbind, and /etc/init.d/nfs contains > > # Required-Start: $network $portmap Those requirements should be mapped to other services, using /etc/insserv.conf. On Factory, systemd generator will create "fake" entries in /run/systemd/generator/ to ensure dependencies are correct (see /run/systemd/generator/remote-fs.target.d/50-insserv.conf.conf for instance) > systemd seems to understand "$portmap" to be a synonym for "rpcbind.target". > However if you > systemctl start nfs.service > it doesn't start rpcbind first. > Could there be some confusion between "rpcbind.service" and "rpcbind.target"? It looks like a bug in rpcbind.service which doesn't trigger rpcbind.target (rpcbind.socket was triggering it but rpcbind.service doesn't trigger rpcbind.socket). Might be worth updating both files, based on Fedora version: http://pkgs.fedoraproject.org/cgit/rpcbind.git/tree/ I don't think the files from fedora make any useful difference. The problem seems to be that "Required-Start" in /etc/init.d/nfs is interpreted by systemd to mean "Before" which is independent from "Requires". i.e. I can see no way to specify in /etc/init.d/nfs that rpcbind *must* be started first, only that if it is being started, that must happen before NFS is started. So I cannot see any way to get "systemctl start nfs.service" to first start rpcbind, except by creating a real systemd nfs.service file. Mind you, "chkconfig -a nfs" doesn't automatically add "rpcbind", so maybe this is correct behaviour. So I have no idea how this is supposed to work. We need to find someone who does. Help? Frederic, would you help, please? ^^^ (In reply to comment #6) > I don't think the files from fedora make any useful difference. rpcbind.service MUST trigger rpcbind.target, otherwise systemd won't be able to properly map Requires-Start dependency on $portmap. > The problem seems to be that "Required-Start" in /etc/init.d/nfs is interpreted > by systemd to mean "Before" which is independent from "Requires". This is true, but if rpcbind.service isn't pulled by a dependency on rpcbind.target, it won't work either. This is one part of the problem. > i.e. I can see no way to specify in /etc/init.d/nfs that rpcbind *must* be > started first, only that if it is being started, that must happen before NFS is > started. > > So I cannot see any way to get "systemctl start nfs.service" to first start > rpcbind, except by creating a real systemd nfs.service file. I agree with you. And it was exactly the same in the sysvinit age : running manually one initscript was never pulling its dependencies. Therefore, nfs initscript should be ported to systemd service. > Mind you, "chkconfig -a nfs" doesn't automatically add "rpcbind", so maybe this > is correct behaviour. I'm not 100% sure chkconfig will enable all initscripts when used under systemd. This is the same as bug#845475 and somewhat more progress has been made there, so resolving as a duplicate. *** This bug has been marked as a duplicate of bug 845475 *** Hmm, I think we should reopen it, because bnc#845475 fixes the nfs issue but the more generic issue of Requires-Start services not being enabled at all, in the dependency tree, is still present for any initscripts |