cephfs: Test failure: test_data_isolated (tasks.cephfs.test_volume_client.TestVolumeClient)
#1 Updated by John Spray about 2 years ago
Hmm, so this is happening because volume client creates a pool, then tries to use it as a layout at a time before its libcephfs Client instance's Objecter has seen the osdmap epoch that contains the pool. The Server::check_layout_vxattr logic waits for the client's osdmap epoch before concluding ENOENT -- if it waited for the global latest osdmap epoch then it would work.
I'm not sure the Server behaviour makes sense: setting up pools is almost always an out-of-band thing with respect to cephfs clients, so why would we assume that a client setting a layout xattr has the right osdmap epoch for the newly set up pool?
#5 Updated by Zheng Yan almost 2 years ago
- Status changed from New to Verified
- Assignee deleted (
The error is because MDS had outdated osdmap and thought the newly creately pool does not exist. (MDS has code that makes sure its osdmap is the same as or newer than fs client's osdmap) For this case, It seems both mds and fs client had outdated osdmap. Pool creation was through self.rados. self.rados had the newest olsdmap, but self.fs might have outdated osdmap
We saw this type of error before http://www.spinics.net/lists/ceph-devel/msg31902.html. Not sure how to fix it