Bug 1181779
Summary: | rpcbind prevents Gluster/NFS from registering itself after a restart/reboot | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Marcelo Barbosa "firemanxbr" <marcelo.barbosa> |
Component: | rpcbind | Assignee: | Steve Dickson <steved> |
Status: | CLOSED ERRATA | QA Contact: | Yongcheng Yang <yoyang> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.0 | CC: | asmarre, eguan, fs-qe, jiyin, joe, ndevos, smayhew, steved, yoyang |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | rpcbind-0.2.0-27.el7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-11-19 05:32:10 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Marcelo Barbosa "firemanxbr"
2015-01-13 18:07:06 UTC
The problem was that rpcbind always starts with the -w option. This prevents the Gluster/NFS server from registering itself at rpcbind after a reboot. Removing the -w option from the rpcbind.service does not do a warm-restart on boot, and all RPC-programs should be able to register themselves without problem. This might be related to the fact that upon reboot the Gluster/NFS service does not (always) unregister itself from rpcbind. I think the rpcbind.service should only add the -w option on reload, not on (re)start. (In reply to Niels de Vos from comment #1) > The problem was that rpcbind always starts with the -w option. This prevents > the Gluster/NFS server from registering itself at rpcbind after a reboot. > > Removing the -w option from the rpcbind.service does not do a warm-restart > on boot, and all RPC-programs should be able to register themselves without > problem. > > This might be related to the fact that upon reboot the Gluster/NFS service > does not (always) unregister itself from rpcbind. > > I think the rpcbind.service should only add the -w option on reload, not on > (re)start. How do you do this with systemd scripts??? (In reply to Steve Dickson from comment #3) > How do you do this with systemd scripts??? Uh, yeah, well, that does not seem as trivial as I thought it would be. This simple configuration doesn't work, probably because the PID changes: [Service] Type=forking EnvironmentFile=/etc/sysconfig/rpcbind ExecStart=/sbin/rpcbind ${RPCBIND_ARGS} ExecReload=-/bin/kill ${MAINPID} ; /sbin/rpcbind -w ${RPCBIND_ARGS} So, trying to fake a rpcbind.pid in the hope it would do something more (line breaks added in this comment, commands should be on one line): [Service] Type=forking PIDFile=/run/rpcbind.pid EnvironmentFile=/etc/sysconfig/rpcbind ExecStart=/bin/sh -c "/sbin/rpcbind ${RPCBIND_ARGS} ; sleep 1 ; \ /usr/sbin/pidof rpcbind > /run/rpcbind.pid" ExecReload=-/bin/kill ${MAINPID} ; /sbin/rpcbind -w ${RPCBIND_ARGS} ; \ -/usr/sbin/pidof rpcbind > /run/rpcbind.pid But no luck :-/ The problem is caused because the Gluster/NFS server is not stopped on a shutdown/reboot. It therefore does not unregister at rpcbind. I guess a similar problem would happen when an RPC-service crashes. Do you have a recommendation on how to handle this kind of issue? I need to look into decently stopping the Gluster/NFS service on systemd environments, but a potential crashing/unclean de-registrations seems unhandled. (Idea: maybe move the -w status file to /var/run which is cleared upon reboot?) (In reply to Niels de Vos from comment #4) > (Idea: maybe move the -w status file to /var/run which is cleared upon > reboot?) Working with Anand at this year's Connectathon, I see what the problem is. I think moving the warm up file /var/run is a good idea because rpcbind needs to remember server over restarts not reboots! (In reply to Steve Dickson from comment #5) > (In reply to Niels de Vos from comment #4) > > (Idea: maybe move the -w status file to /var/run which is cleared upon > > reboot?) > Working with Anand at this year's Connectathon, I see what the problem is. > I think moving the warm up file /var/run is a good idea because > rpcbind needs to remember server over restarts not reboots! I was playing around with this in Fedora and it turns just moving the rpcbind directory to /var/run didn't work because the the /var/run/rpcbind was being created on reboot... But I just stumbled over systemd-tmpfiles which appears create directories durning boot which is exactly what is needed (I think! ;-) ) *** Bug 1184661 has been marked as a duplicate of this bug. *** Hello, There were some changes made to the latest rpcbind package Would you mind retesting with http://people.redhat.com/steved/.bz1240817/rpcbind-0.2.0-30.el7.x86_64.rpm to ensure there are no regressions Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-2205.html |