Project

General

Profile

Actions

Bug #38744

closed

rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf)

Added by Matt Benjamin about 5 years ago. Updated about 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
luminous mimic nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

From Asish Singh:

  • Description of problem:

Whenever the psuedo path contains an empty directory "//" (Example : s3://myfiles/new_data//new.pdf), accessing the files results in nfs-ganesha service aborting with SIGNAL 6.
In s3 namespace "//" is empty directory whereas in FS namespace "//" would be treated as "/" and not as an empty dir.

In 'audit.log' :
------
type=ANOM_ABEND msg=audit(1552413839.195:40148): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=system_u:system_r:ganesha_t:s0 pid=7325 comm="ganesha.nfsd" reason="memory violation" sig=6
------

In 'messages' :
------
Mar 12 23:42:30 ceph-a1 abrt-hook-ccpp: Process 8654 (ganesha.nfsd) of user 0 killed by SIGABRT - dumping core
Mar 12 23:42:35 ceph-a1 abrt-hook-ccpp: Failed to create core_backtrace: waitpid failed: No child processes
Mar 12 23:42:35 ceph-a1 systemd: nfs-ganesha.service: main process exited, code=killed, status=6/ABRT
Mar 12 23:42:35 ceph-a1 systemd: Unit nfs-ganesha.service entered failed state.
Mar 12 23:42:35 ceph-a1 systemd: nfs-ganesha.service failed.
------

  • Version-Release number of selected component (if applicable):
    RHCS 3.2z1
    nfs-ganesha.x86_64-2.7.1-3.el7cp
    nfs-ganesha-rgw.x86_64-2.7.1-3.el7cp
  • How reproducible:
    Always
  • Steps to Reproduce:
    1. Create an s3 directory without any name and upload a file it it : # s3cmd put /bin/ceph s3://myfiles/new_data//new.pdf

2. Configure nfs-ganesha and mount the user to access bucket 'myfiles'. # mount -t nfs -o nfsvers=4.1,noauto,soft,sync,proto=tcp <IP>:/ /mnt

3. Try accessing the file under the directory without the name : # ls -l /mnt/myfiles/new_data//new.pdf

  • Actual results:
    nfs-ganesha aborts with signal 6.
  • Expected results:
    nfs-ganesha can error out and should handle it gracefully.
  • Additional info:
    The name convention in s3 namespace is not correct and while using nfs-ganesha, we should make sure that Customer's do not have such directories without any name.
    The data isn't correct. However, nfs-ganesha shouldn't abort but should error out handle gracefully.

Related issues 3 (0 open3 closed)

Copied to rgw - Backport #38771: luminous: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) ResolvedPrashant DActions
Copied to rgw - Backport #38772: mimic: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) ResolvedPrashant DActions
Copied to rgw - Backport #38773: nautilus: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) ResolvedPrashant DActions
Actions #1

Updated by Matt Benjamin about 5 years ago

  • Status changed from New to In Progress
Actions #2

Updated by Matt Benjamin about 5 years ago

  • Status changed from In Progress to Fix Under Review
Actions #3

Updated by Casey Bodley about 5 years ago

  • Status changed from Fix Under Review to Pending Backport
  • Backport set to luminous mimic nautilus
Actions #4

Updated by Nathan Cutler about 5 years ago

  • Copied to Backport #38771: luminous: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) added
Actions #5

Updated by Nathan Cutler about 5 years ago

  • Copied to Backport #38772: mimic: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) added
Actions #6

Updated by Nathan Cutler about 5 years ago

  • Copied to Backport #38773: nautilus: rgw: nfs: process asserts on empty path name segment (e.g., s3://myfiles//data/file.pdf) added
Actions #7

Updated by Nathan Cutler about 5 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF