Bug 1477190
Summary: | [GNFS] GNFS got crashed while mounting volume on solaris client | ||
---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | Niels de Vos <ndevos> |
Component: | nfs | Assignee: | Niels de Vos <ndevos> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | urgent | ||
Version: | 3.12 | CC: | bugs, pasik, srangana |
Target Milestone: | --- | Keywords: | Regression |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | glusterfs-3.12.0 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2017-09-05 17:38: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: | |||
Bug Depends On: | 1468291 | ||
Bug Blocks: | 1472773, 1473826 |
Description
Niels de Vos
2017-08-01 12:40:27 UTC
REVIEW: https://review.gluster.org/17946 (libglusterfs: the global_xlator should have valid cbks) posted (#1) for review on release-3.12 by Niels de Vos (ndevos) REVIEW: https://review.gluster.org/17947 (nfs: use "/" as subdir for volume mounts) posted (#1) for review on release-3.12 by Niels de Vos (ndevos) COMMIT: https://review.gluster.org/17946 committed in release-3.12 by Shyamsundar Ranganathan (srangana) ------ commit 64391ea321d269671814afd13cbdfe099b893e4d Author: Niels de Vos <ndevos> Date: Tue Aug 1 14:41:22 2017 +0200 libglusterfs: the global_xlator should have valid cbks There is a case where Gluster/NFS needs to resolve a path outside of the nfs-xlator itself. While resolving the path to fetch the GFID for creating the NFS-filehandle, gfapi may set an inode-ctx through glfs_resolve_at(). This inode-ctx is linked with the global_xlator. Because the global_xlator does not have any cbks, loc_wipe() will cause a segfault when it calls inode_unref() and xl->cbks->forget(). It is assumed that all xlators have a cbks symbol, otherwise loading of the xlator will fail. The global_xlator is not loaded in the same way, so there is no failure noticed when the instance is created. By adding an empty `struct xlator_cbks`, the global_xlator behaves similat to other xlators that do not implement all callbacks. I would have preferred to keep the inode-ctx setting through glfs_resolve_at() contained within Gluster/NFS. Unfortunately Gluster/NFS also uses the inode-ctx, and is not prepared to see the values that glfs_resolve_at() stores there. This problem is not easily reproducible because it involves mounting over WebNFS (like Solaris 10 can do). The segfault will also not be immediate, unless the following is done: 1. create a subdir on a volume 2. mount the volume/subdir over WebNFS 3. unmount the volume/subdir 4. mount the root of the volume 5. delete the subdir on the volume -> segfault of Gluster/NFS Cherry picked from commit cec5036f7e99ae265bb5e0e7f3df30166466eb2c: > Change-Id: I2bd71d033e97edc07ba93b2d4ada558f65d68999 > BUG: 1468291 > Signed-off-by: Niels de Vos <ndevos> > Reviewed-on: https://review.gluster.org/17897 > Smoke: Gluster Build System <jenkins.org> > Reviewed-by: Amar Tumballi <amarts> > Reviewed-by: jiffin tony Thottan <jthottan> > CentOS-regression: Gluster Build System <jenkins.org> > Reviewed-by: Jeff Darcy <jeff.us> Change-Id: I2bd71d033e97edc07ba93b2d4ada558f65d68999 BUG: 1477190 Signed-off-by: Niels de Vos <ndevos> Reviewed-on: https://review.gluster.org/17946 Smoke: Gluster Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Shyamsundar Ranganathan <srangana> COMMIT: https://review.gluster.org/17947 committed in release-3.12 by Shyamsundar Ranganathan (srangana) ------ commit 726797d3e62bfe1ebf0c3af63b00084e1b159886 Author: Niels de Vos <ndevos> Date: Tue Aug 1 14:41:54 2017 +0200 nfs: use "/" as subdir for volume mounts For cases where subdir mounting is checked, it makes it much easier to return a subdir of "/" in case no subdir is passed. This reduces the number of corner cases where permissions are checked for subdir mounts, but not for volume mounts (or the other way around). The problem was identified by WebNFS mounting a volume, which got denied after commit e3f48fa2. Handling this would require an exception for non-subdir mounts, or make non-subdir mounts equal to subdir mounts. This change takes the 2nd approach. Cherry picked from commit 45c973576d6356dbe4da897e9f0528eac7529d48: > Change-Id: I0d810ae90b267a2cc3eac8d55368a0f1b0787f6a > Fixes: e3f48fa2 ("nfs: add permission checking for mounting over WebNFS") > BUG: 1468291 > Signed-off-by: Niels de Vos <ndevos> > Reviewed-on: https://review.gluster.org/17898 > Smoke: Gluster Build System <jenkins.org> > Reviewed-by: soumya k <skoduri> > CentOS-regression: Gluster Build System <jenkins.org> > Reviewed-by: jiffin tony Thottan <jthottan> Change-Id: I0d810ae90b267a2cc3eac8d55368a0f1b0787f6a BUG: 1477190 Signed-off-by: Niels de Vos <ndevos> Reviewed-on: https://review.gluster.org/17947 Smoke: Gluster Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Shyamsundar Ranganathan <srangana> This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.12.0, please open a new bug report. glusterfs-3.12.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://lists.gluster.org/pipermail/announce/2017-September/000082.html [2] https://www.gluster.org/pipermail/gluster-users/ |