Bug #56380
closedcrash: Client::_get_vino(Inode*)
0%
3cc66cf8b39f301ffac5cec100c47110fe1e760665355af5367efa3aaf641764
Description
Sanitized backtrace:
Client::_get_vino(Inode*) Client::ll_mknod(Inode*, char const*, unsigned int, unsigned long, stat*, Inode**, UserPerm const&)
Crash dump sample:
{ "backtrace": [ "__kernel_rt_sigreturn()", "(Client::_get_vino(Inode*)+0) [0xaaaac24be5f8]", "(Client::ll_mknod(Inode*, char const*, unsigned int, unsigned long, stat*, Inode**, UserPerm const&)+0xc4) [0xaaaac25264f4]", "ceph-fuse(+0xa0de0) [0xaaaac24b7de0]", "/lib/aarch64-linux-gnu/libfuse.so.2(+0x15064) [0xffff8721e064]", "/lib/aarch64-linux-gnu/libfuse.so.2(+0x12158) [0xffff8721b158]", "/lib/aarch64-linux-gnu/libpthread.so.0(+0x7624) [0xffff86712624]", "/lib/aarch64-linux-gnu/libc.so.6(+0xd149c) [0xffff8644c49c]" ], "ceph_version": "17.2.0", "crash_id": "2022-06-21T22:37:56.074100Z_5c6e8748-68df-42aa-8dc3-b8e345c99c30", "entity_name": "client.779720a56c617f4713d46a0389a5f0b5c78d2903", "os_id": "ubuntu", "os_name": "Ubuntu", "os_version": "20.04.4 LTS (Focal Fossa)", "os_version_id": "20.04", "process_name": "ceph-fuse", "stack_sig": "3cc66cf8b39f301ffac5cec100c47110fe1e760665355af5367efa3aaf641764", "timestamp": "2022-06-21T22:37:56.074100Z", "utsname_machine": "aarch64", "utsname_release": "5.4.0-1065-raspi", "utsname_sysname": "Linux", "utsname_version": "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022" }
Updated by Telemetry Bot almost 2 years ago
Updated by Xiubo Li almost 2 years ago
Updated by Venky Shankar almost 2 years ago
Xiubo Li wrote:
This should be fixed by https://github.com/ceph/ceph/pull/45614, in https://github.com/ceph/ceph/pull/45614/files#diff-27ee28966b05e5763e76677ae87f8626985eae114814c25bdc45eef15c3455f0R596-R601.
Right. Let's get the changes backported.
Updated by Venky Shankar almost 2 years ago
- Status changed from New to Duplicate
Updated by Xiubo Li almost 2 years ago
Venky Shankar wrote:
Xiubo Li wrote:
This should be fixed by https://github.com/ceph/ceph/pull/45614, in https://github.com/ceph/ceph/pull/45614/files#diff-27ee28966b05e5763e76677ae87f8626985eae114814c25bdc45eef15c3455f0R596-R601.
Right. Let's get the changes backported.
Yeah sure, will do it this week.
Updated by Yaarit Hatuka almost 2 years ago
- Is duplicate of Bug #54653: crash: uint64_t CephFuse::Handle::fino_snap(uint64_t): assert(stag_snap_map.count(stag)) added
Updated by Xiubo Li over 1 year ago
I found one case could cause this, such as in the xfstests-dev's open_by_handle.c, which will use the name_to_handle_at() to store the struct fid, which will contains the ino#, but the name_to_handle_at() won't open the file.
118 struct fid { 119 union { 120 struct { 121 u32 ino; 122 u32 gen; 123 u32 parent_ino; 124 u32 parent_gen; 125 } i32; 126 struct { 127 u32 block; 128 u16 partref; 129 u16 parent_partref; 130 u32 generation; 131 u32 parent_block; 132 u32 parent_generation; 133 } udf; 134 __u32 raw[0]; 135 }; 136 };
Then the test case could use the above struct fid to open the file later by using open_by_handle_at(). So when opening the file later the file could be already deleted and the ino# already reused.