Bug #16066
closedclient: FAILED assert(root_ancestor->qtree == __null)
0%
Description
Seen on test branch where client quota was enabled by default (https://github.com/ceph/ceph/pull/9346) -- presumably this is an existing bug that we didn't notice because we don't usually have client quota enabled during testing.
Assertion: client/Client.cc: 12008: FAILED assert(root_ancestor->qtree == __null) ceph version 10.2.0-1432-g387a52d (387a52daef4fba042dfd041a54544090a3754abf) 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x85) [0x55e99159efa5] 2: (Client::get_quota_root(Inode*)+0x7b2) [0x55e9913c4cb2] 3: (Client::check_quota_condition(Inode*, std::function<bool (Inode const&)>)+0x3d) [0x55e9913c530d] 4: (Client::is_quota_files_exceeded(Inode*)+0x5e) [0x55e9913c53be] 5: (Client::_mkdir(Inode*, char const*, unsigned int, int, int, boost::intrusive_ptr<Inode>*)+0xd3) [0x55e9913f2b23] 6: (Client::ll_mkdir(Inode*, char const*, unsigned int, stat*, Inode**, int, int)+0xfb) [0x55e9913f353b] 7: (()+0x19ad72) [0x55e991396d72] 8: (()+0x16bdb) [0x7f62351bebdb] 9: (()+0x13471) [0x7f62351bb471] 10: (()+0x7dc5) [0x7f6234614dc5] 11: (clone()+0x6d) [0x7f62334faced]
Updated by John Spray almost 8 years ago
http://pulpito.ceph.com/jspray-2016-05-28_13:42:42-fs-wip-jcsp-testing-20160527b---basic-mira/220171
+other instances in the same suite run
Updated by Zheng Yan almost 8 years ago
- Status changed from New to 12
The quota code expects that directory is alway connected to the FS hierarchy. But this is not true, we can create disconnected directory inode by
Client1> mkdir testdir
Client1> cd testdir
Client1> setfattr -n ceph.quota.max_files -n 100 .
Client1> mkdir dir1
Client2> cd testdir/dir1
Client1> mv dir1 dir2
Client1> mkdir dir1
Client2> stat ../dir1
Client2> seq 1 200 | xargs touch // ceph-fuse crashes
This issue is difficult to handle. For now, we can use lookup-parent request to reconnect the directory. The long-term solution should be something like snaprealm.
Updated by Zheng Yan almost 8 years ago
- Status changed from 12 to Fix Under Review
Updated by John Spray almost 8 years ago
- Status changed from Fix Under Review to Pending Backport
- Backport set to jewel
Updated by Nathan Cutler almost 8 years ago
- Copied to Backport #16313: jewel: client: FAILED assert(root_ancestor->qtree == __null) added
Updated by Greg Farnum almost 8 years ago
- Category changed from 46 to 97
- Component(FS) Client added
Updated by Loïc Dachary over 7 years ago
- Status changed from Pending Backport to Resolved
Updated by Patrick Donnelly about 5 years ago
- Category deleted (
97) - Labels (FS) quotas added