While testing a
LU-11444 with a racer, we found a crash related to the assert in this patch.
This assert have checked we have no xid step down for the slot.
Original idea was regression from a patch, but later we have decided it's bug in open replay code. Bug looks addressed to the valid situation when object may don't 'exist' or object fid is different than client requested.
operation order restored from requests history hash
1) fileA created from client 1
2) fileA open(O_CREATE) from client 2
3) link to the client2 failed before reply send (from client view)
4) unlink(fileA) from client1, it have blocked until reply arrived to the client2
5) client2 started to resend a open(O_CREATE)
6) unlink(fileA) was finished
– it looks lu_site cache remove this object from cache in this time.
7) resend handled by MDT and found request->fid2 isn't exist, so full create needs.
---- thats all.
variant of this case.
a) without unlink - p.2 need to found an object by name and reply with different fid, so resend will don't found a child by fid2 from request (object created without LOHA_EXIST)