> I've been following this discussion casually and am a bit confused. > The Client will happily send off an explicit getattr request if it > doesn't have enough capabilities to answer it locally. > > Is the problem here that the MDS is not answering all pending > CEPH_MDS_OP_GETATTR requests in one go? (Which I suppose it doesn't > really have a way of doing, if they haven't all been processed into > interior pending locks — but I think they should have gotten there if > caps are being recalled?) > Or are the clients for some reason requesting capabilities instead of > the single getattr message? > -Greg Hi, Greg. In our case, the mds does answer each CEPH_MDS_OP_GETATTR request seperately, even when there caps are recalled. According to our mds log, when the caps are recalled, all of these CEPH_MDS_OP_GETATTR requests are added to the waiter queue, and when the filelock goes into a stable state, they would be dispatched to be reprocessed one by one. However, as there are writing clients that want "Fw", the very first CEPH_MDS_OP_GETATTR request of those in the waiter queue would, again, turn the filelock into LOCK_SYNC_MIX state which would blocked all remaining CEPH_MDS_OP_GETATTR requests to get processed. -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html