Bug #75
closedmds: fix rdlock semantics
0%
Description
The rdlock does not take which client is doing the locking into account.
Consequently,
clienta$ ls
clientb$ touch foo
clienta$ la
in quick succession will now show 'foo' on clienta.
Updated by Sage Weil almost 14 years ago
rdlock does, actually. The problem was specifically the LOCK->SYNC transition allows rdlock on auth, when it shouldn't.
Updated by Sage Weil almost 14 years ago
broken result: rdlock succeedes during lock->sync:
10.05.03 13:56:19.316016 7fb391bb0910 mds0.locker rdlock_start on (ifile lock->sync w=1) on [inode 10000000006 [...2,head] /s/2/ auth v48 pv50 ap=3 f(v0 m10.05.03 13:56:10.607981 6=6+0) ds=6=6+0 rb=0(0/0) rf=6(7/7) rd=1(1/1) (iauth sync) (ilink sync) (idft sync) (isnap sync r=1) (inest mix w=1) (ifile lock->s
ync w=1) (ixattr sync) (iversion lock w=1 last_client=4110) caps={4108=pAsLsXs/p@23,4110=pAsLsXs/-@15} | nref=9 0x7fb388019a90]
10.05.03 13:56:19.316053 7fb391bb0910 mds0.locker got rdlock on (ifile lock->sync r=1 w=1) [inode 10000000006 [...2,head] /s/2/ auth v48 pv50 ap=3 f(v0 m10.05.03 13:56:10.607981 6=6+0) ds=6=6+0 rb=0(0/0) rf=6(7/7) rd=1(1/1) (iauth sync) (ilink sync) (idft sync) (isnap sync r=1) (inest mix w=1) (ifile lock->sy
nc r=1 w=1) (ixattr sync) (iversion lock w=1 last_client=4110) caps={4108=pAsLsXs/p@23,4110=pAsLsXs/-@15} | nref=10 0x7fb388019a90]
Updated by Sage Weil almost 14 years ago
- Status changed from New to Resolved
fixed by commit:409a54f17515a417f72fb0e1d70733624fe4b609
Updated by John Spray over 7 years ago
- Project changed from Ceph to CephFS
- Category deleted (
1) - Target version deleted (
v0.21)
Bulk updating project=ceph category=mds bugs so that I can remove the MDS category from the Ceph project to avoid confusion.