http://bugzilla.novell.com/show_bug.cgi?id=543911
Summary: upgrading from 11.2 to 11.2M8, the update of nfs-client unmounts nfs directories Classification: openSUSE Product: openSUSE 11.2 Version: Factory Platform: x86-64 OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: Installation AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: jnelson-suse@jamponi.net QAContact: jsrain@novell.com Found By: ---
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.0.14) Gecko/2009090900 SUSE/3.0.14-0.1.2 Firefox/3.0.14
I had the 11.2M8 repo available over NFS, and was going through an upgrade from 11.1 to 11.2M8. At the point where nfs-client gets upgraded, the nfs mount was unmounted and of course was unable to continue (I manually remounted it and was thereafter able to continue - however - it shouldn't have done that.)
It would seem as though upgrades over NFS would be problematic!
Reproducible: Always
Steps to Reproduce: 1. 2. 3.
http://bugzilla.novell.com/show_bug.cgi?id=543911
Martin Vidner mvidner@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|bnc-team-screening@forge.pr |nfbrown@novell.com |ovo.novell.com |
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c1
Neil Brown nfbrown@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nfbrown@novell.com AssignedTo|nfbrown@novell.com |bnc-team-screening@forge.pr | |ovo.novell.com
--- Comment #1 from Neil Brown nfbrown@novell.com 2009-10-28 16:51:09 MDT --- I'll need help from someone who knows about the installation process and related policies.
When "/etc/init.d/nfs stop" is run it normally makes sense to stop all NFS client usage, unmount the filesystems and kill the support services.
However when we are only stopping so as to install a new version, that doesn't make so much sense, particularly when installing over NFS.
So my question to someone in the "Installation" team is "How can I tell in '/etc/init.d/nfs' whether this is just part of an installation stop-and-restart, or if it is a real user-requested or at-shut-down stop?
Thanks.
http://bugzilla.novell.com/show_bug.cgi?id=543911
zhu rensheng rszhu@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rszhu@novell.com AssignedTo|bnc-team-screening@forge.pr |nfbrown@novell.com |ovo.novell.com |
http://bugzilla.novell.com/show_bug.cgi?id=543911
User aj@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c4
Andreas Jaeger aj@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |ro@novell.com
--- Comment #4 from Andreas Jaeger aj@novell.com 2009-10-30 02:44:30 MDT --- Rudi, could you help with this, please?
http://bugzilla.novell.com/show_bug.cgi?id=543911
User locilka@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c5
Lukas Ocilka locilka@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Info Provider|ro@novell.com |jkupec@novell.com
--- Comment #5 from Lukas Ocilka locilka@novell.com 2009-10-30 02:47:03 MDT --- Neil, I'd use ENV variable YAST_IS_RUNNING which is defined and non-empty in case of upgrading an RPM from YaST (Installation, YaST, etc.) but one can also run `zypper dup` which is one of the preferred ways by the community.
I don't think zypper sets that too but maybe I'm wrong.
To request an information in Bugzilla, we have a NEEDINFO state. This also applies to BNC screening team: Don't reassign bugs if the assignee is a correct one, don't use Cc: for requesting an information.
Setting NEEDINFO: Jano, what zypper does (similarly to Installation adjusting YAST_IS_RUNNING) that upgraded RPMs don't do dangerous actions?
http://bugzilla.novell.com/show_bug.cgi?id=543911
User ro@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c6
Ruediger Oertel ro@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED CC| |ro@novell.com Info Provider|jkupec@novell.com |
--- Comment #6 from Ruediger Oertel ro@novell.com 2009-10-30 04:02:16 MDT --- well, looking at the problems we are seeing here, I'd question if the "%restart_on_update nfs" for the nfs client start script does make sense at all here.
This restart_on_update is meant for daemon processes to be restarted upon package update to make sure the new binary is running.
I think it would make more sense for a "reload" in case of update the way the current nfs script is written: reload does a restart of all possibly running daemons, and that is all that is needed.
http://bugzilla.novell.com/show_bug.cgi?id=543911
Andreas Jaeger aj@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|bnc-team-screening@forge.pr |nfbrown@novell.com |ovo.novell.com |
http://bugzilla.novell.com/show_bug.cgi?id=543911
User jkupec@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c7
--- Comment #7 from Ján Kupec jkupec@novell.com 2009-11-02 03:43:11 MST --- (In reply to comment #5)
Setting NEEDINFO: Jano, what zypper does (similarly to Installation adjusting YAST_IS_RUNNING) that upgraded RPMs don't do dangerous actions?
Nothing. The rpms are supposed to work even with plain rpms, they should not do any dangerous actions :O) AFAIK, YAST_IS_RUNNING is just telling the packages to avoid running suseconfig, since yast will do it once for all at the end of installation. Nevertheless, zypper does not set this variable, as this solution should be replaced with a better one at the RPM level (see bug 365649).
http://bugzilla.novell.com/show_bug.cgi?id=543911
User jkupec@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c8
--- Comment #8 from Ján Kupec jkupec@novell.com 2009-11-02 03:44:06 MST --- (In reply to comment #7)
Nothing. The rpms are supposed to work even with plain rpms
i mean 'plain rpm command'
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c9
--- Comment #9 from Neil Brown nfbrown@novell.com 2009-11-02 15:53:34 MST --- Thanks for the hint that "restart_on_update" is the key here. It runs /etc/init.d/nfs try-restart which stops and restarts nfs.
I suspect the problem here is that restart also unmounts and remounts all filesystems - but only remounts those that are listed in /etc/fstab. So if you have mounted a filesystem by hand (as I suspect Jon did), then it will get unmounted and then lost.
I think I will change 'restart' and 'try-restart' to not do any unmounting or mounting. It will just stop and restart the relevant daemons.
Thanks.
http://bugzilla.novell.com/show_bug.cgi?id=543911
User jnelson-suse@jamponi.net added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c10
--- Comment #10 from Jon Nelson jnelson-suse@jamponi.net 2009-11-02 15:55:37 MST --- Will that work in the context of SuSEfirewall (which, for NFSv3, uses obtains the rpc port numbers dynamically) or will they remain bound to the same port?
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c11
Neil Brown nfbrown@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |lnussel@novell.com
--- Comment #11 from Neil Brown nfbrown@novell.com 2009-11-02 17:15:25 MST --- (In reply to comment #10)
Will that work in the context of SuSEfirewall (which, for NFSv3, uses obtains the rpc port numbers dynamically) or will they remain bound to the same port?
That is a very good point. statd is the only service which this might be a problem for.
If statd was started without specifying a port to use (as is normal) it will typically choose different ports numbers for UDP and TCP. If we kill and restart it, it is not possible to ask it to choose the same two port numbers. If a port number is specified, it will be used for both UDP and TCP.
So the options seem to be to either - rerun the firewall rules after restarting statd - not restart statd if there is a firewall active. - hard code a number to be used by statd always
While the last would be simplest, it is not possible to choose a number that will always be free. The second would also be fairly simply I suspect, if we found a security hole in statd, we would really want it to be restarted on an update. So that leaves the first option.
I think that would be if [ -e /sbin/SuSEfirewall2 ]; then if /sbin/SuSEfirewall2 status < /dev/null > /dev/null then /sbin/SuSEfirewall2 on > /dev/null fi fi
Ludwig: I think you are the maintainer of SuSEfirewall2 - would that be a safe thing to put in /etc/init.d/nfs to run after 'statd' has been restarted in response to "/etc/init.d/nfs restart" ??
Thanks.
http://bugzilla.novell.com/show_bug.cgi?id=543911
User lnussel@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c12
Ludwig Nussel lnussel@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|lnussel@novell.com |
--- Comment #12 from Ludwig Nussel lnussel@novell.com 2009-11-03 00:39:26 MST --- "/sbin/SuSEfirewall2 on" will actually enable the init scripts whereas SuSEfirewall2 could have been started by other means. Better use /etc/init.d/SuSEfirewall2_setup try-restart
Yes, I think it's ok to do that in the manual restart case.
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c13
--- Comment #13 from Neil Brown nfbrown@novell.com 2009-11-04 18:58:47 MST --- Thanks.
I have modified /usr/sbin/start-statd to restart the firewall after starting statd, and have modified "try-restart" in /etc/init.d/nfs to only restart the daemons, not the mount points, and to use /usr/sbin/start-statd to restart statd.
I will attach the new 'start-statd' and 'nfs' scripts. I think it is too late for these to get in to 11.2.
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c14
--- Comment #14 from Neil Brown nfbrown@novell.com 2009-11-04 18:59:58 MST --- Created an attachment (id=325623) --> (http://bugzilla.novell.com/attachment.cgi?id=325623) New start-statd script which makes sure firewall knows of new port.
http://bugzilla.novell.com/show_bug.cgi?id=543911
User nfbrown@novell.com added comment http://bugzilla.novell.com/show_bug.cgi?id=543911#c15
--- Comment #15 from Neil Brown nfbrown@novell.com 2009-11-04 19:00:39 MST --- Created an attachment (id=325624) --> (http://bugzilla.novell.com/attachment.cgi?id=325624) New nfs.init script (/etc/nit.d/nfs)
http://bugzilla.novell.com/show_bug.cgi?id=543911#c16
Neil Brown nfbrown@novell.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Comment #16 from Neil Brown nfbrown@novell.com 2009-11-18 01:19:32 UTC --- These fixes are now in 'factory' so they will be in future releases, so I'll close this bug now. Thanks.
http://bugzilla.novell.com/show_bug.cgi?id=543911
http://bugzilla.novell.com/show_bug.cgi?id=543911#c17
Swamp Workflow Management swamp@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status Whiteboard| |maint:released:11.2:29028
--- Comment #17 from Swamp Workflow Management swamp@suse.com 2010-01-07 17:33:44 UTC --- Update released for: nfs-client, nfs-client-debuginfo, nfs-doc, nfs-kernel-server, nfs-kernel-server-debuginfo, nfs-utils, nfs-utils-debugsource Products: openSUSE 11.2 (debug, i586, x86_64)
http://bugzilla.novell.com/show_bug.cgi?id=543911 http://bugzilla.novell.com/show_bug.cgi?id=543911#c18
--- Comment #18 from Bernhard Wiedemann bwiedemann@suse.com --- This is an autogenerated message for OBS integration: This bug (543911) was mentioned in https://build.opensuse.org/request/show/24932 11.2 / nfs-utils