Project

General

Profile

Bug #40085

FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()"

Added by Jeff Layton 3 months ago. Updated 3 months ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Source:
Community (user)
Tags:
Backport:
nautilus,mimic,luminous
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Client, libcephfs
Labels (FS):
crash
Pull request ID:

Description

A customer reported a crash in nfs-ganesha that indicated a problem down in libcephfs:

#0  0x00007f5c88c1a207 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007f5c88c1b8f8 in __GI_abort () at abort.c:90
#2  0x00007f5c7f13d4d4 in ceph::__ceph_assert_fail (assertion=assertion@entry=0x7f5c77d9856b "parent->is_dir()", 
    file=file@entry=0x7f5c77d945a0 "/builddir/build/BUILD/ceph-12.2.8/src/client/Client.cc", line=line@entry=8371, 
    func=func@entry=0x7f5c77d9ae80 <Client::_lookup_name(Inode*, Inode*, UserPerm const&)::__PRETTY_FUNCTION__> "int Client::_lookup_name(Inode*, Inode*, const UserPerm&)") at /usr/src/debug/ceph-12.2.8/src/common/assert.cc:66
#3  0x00007f5c77d0117e in Client::_lookup_name (this=this@entry=0x561bea8048d0, ino=<optimized out>, parent=0x561be8c2d4b0 <xdr_entry4>, perms=
      @0x561bea775760: {m_uid = 4294967295, m_gid = 4294967295, gid_count = 0, gids = 0x0, alloced_gids = false}) at /usr/src/debug/ceph-12.2.8/src/client/Client.cc:8371
#4  0x00007f5c77d0e26b in Client::ll_lookup_inode (this=0x561bea8048d0, ino={val = 1099616490059}, perms=
      @0x561bea775760: {m_uid = 4294967295, m_gid = 4294967295, gid_count = 0, gids = 0x0, alloced_gids = false}, inode=inode@entry=0x7f5c384f0bf8)
    at /usr/src/debug/ceph-12.2.8/src/client/Client.cc:10410
#5  0x00007f5c77cc9852 in ceph_ll_lookup_inode (cmount=<optimized out>, ino=<optimized out>, inode=inode@entry=0x7f5c384f0bf8)
    at /usr/src/debug/ceph-12.2.8/src/libcephfs.cc:1396
#6  0x00007f5c77fcf7eb in create_handle (export_pub=0x561bea70d110, desc=<optimized out>, pub_handle=0x7f5c384f0d28, attrs_out=0x7f5c384f0d50)
    at /usr/src/debug/nfs-ganesha-2.7.1/src/FSAL/FSAL_CEPH/export.c:250
#7  0x0000561be8d0b18f in mdcache_locate_host (fh_desc=0x7f5c384f0f20, export=export@entry=0x561bea70ce10, entry=entry@entry=0x7f5c384f0eb0, 
    attrs_out=attrs_out@entry=0x0) at /usr/src/debug/nfs-ganesha-2.7.1/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c:1003
#8  0x0000561be8d0490a in mdcache_create_handle (exp_hdl=0x561bea70ce10, fh_desc=<optimized out>, handle=0x7f5c384f0f18, attrs_out=0x0)
    at /usr/src/debug/nfs-ganesha-2.7.1/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_handle.c:1573
#9  0x0000561be8c46d72 in nfs4_mds_putfh (data=data@entry=0x7f5c384f14e0) at /usr/src/debug/nfs-ganesha-2.7.1/src/Protocols/NFS/nfs4_op_putfh.c:211
#10 0x0000561be8c472a8 in nfs4_op_putfh (op=0x7f5c5834bd50, data=0x7f5c384f14e0, resp=0x7f5c5834d460)
    at /usr/src/debug/nfs-ganesha-2.7.1/src/Protocols/NFS/nfs4_op_putfh.c:281
#11 0x0000561be8c35623 in nfs4_Compound (arg=<optimized out>, req=<optimized out>, res=0x7f5c58321830)
    at /usr/src/debug/nfs-ganesha-2.7.1/src/Protocols/NFS/nfs4_Compound.c:942
#12 0x0000561be8c28a3f in nfs_rpc_process_request (reqdata=0x7f5c5814f230) at /usr/src/debug/nfs-ganesha-2.7.1/src/MainNFSD/nfs_worker_thread.c:1328
#13 0x0000561be8c27eea in nfs_rpc_decode_request (xprt=0x7f5c5c00fe30, xdrs=0x7f5c5834b820)
    at /usr/src/debug/nfs-ganesha-2.7.1/src/MainNFSD/nfs_rpc_dispatcher_thread.c:1341
#14 0x00007f5c8b19377d in svc_rqst_xprt_task () from /lib64/libntirpc.so.1.7
#15 0x00007f5c8b193aca in svc_rqst_run_task () from /lib64/libntirpc.so.1.7
#16 0x00007f5c8b19b98b in work_pool_thread () from /lib64/libntirpc.so.1.7
#17 0x00007f5c8973add5 in start_thread (arg=0x7f5c384f4700) at pthread_create.c:307
#18 0x00007f5c88ce1ead in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) info args
this = 0x561bea8048d0
ino = {val = 1099616490059}
perms = @0x561bea775760: {m_uid = 4294967295, m_gid = 4294967295, gid_count = 0, gids = 0x0, alloced_gids = false}
inode = 0x7f5c384f0bf8

The issue seems to be that _lookup_parent can return 0 without setting the parent pointer, leaving it unintialized.


Related issues

Copied to fs - Backport #40160: luminous: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" Resolved
Copied to fs - Backport #40161: nautilus: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" Resolved
Copied to fs - Backport #40162: mimic: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" In Progress

History

#1 Updated by Jeff Layton 3 months ago

  • Assignee set to Jeff Layton

#2 Updated by Patrick Donnelly 3 months ago

  • Target version set to v15.0.0
  • Start date deleted (05/30/2019)
  • Source set to Community (user)
  • Backport set to nautilus,mimic,luminous
  • Component(FS) Client added
  • Labels (FS) crash added

#3 Updated by Jeff Layton 3 months ago

#4 Updated by Patrick Donnelly 3 months ago

  • Status changed from In Progress to Need Review
  • Pull request ID set to 28324

#5 Updated by Patrick Donnelly 3 months ago

  • Status changed from Need Review to Pending Backport

#6 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #40160: luminous: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" added

#7 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #40161: nautilus: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" added

#8 Updated by Nathan Cutler 3 months ago

  • Copied to Backport #40162: mimic: FSAL_CEPH assertion failed in Client::_lookup_name: "parent->is_dir()" added

Also available in: Atom PDF