[LU-1571] It should not update last xid for replay open. Created: 27/Jun/12  Updated: 17/Mar/14  Resolved: 24/Feb/13

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.4.0
Fix Version/s: Lustre 2.4.0, Lustre 2.1.5

Type: Bug Priority: Blocker
Reporter: Di Wang Assignee: Oleg Drokin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
is duplicated by LU-2277 Text file busy Resolved
Severity: 3
Rank (Obsolete): 3980

 Description   

In recovery, it should not update last xid for open replay, otherwise it will mess the last xid in the last rcvd, which make the following resend (after replay) failed.



 Comments   
Comment by Di Wang [ 27/Jun/12 ]

http://review.whamcloud.com/3195

Comment by Di Wang [ 27/Jun/12 ]

Considering following case. 1. client open the file(with xid_1), keep the replay open req on the client. 2. client mkdir(with xid_2), server finish the create and drop reply, but update last_rcvd_xid with xid_2.

MDT restart, init last_rcvd_xid with xid_2

1. client replay open req. then update last_rcvd_xid with xid_1

2. then replay finish, resend mkdir req. but last_rcvd_xid has been changed to xid_1. so it can not recognize the resend.

Comment by Mikhail Pershin [ 05/Jul/12 ]

We need to update last_rcvd_xid only if open transno is bigger than one in last_rcvd, otherwise that means open wasn't last request from client and doesn't need reconstruct. Please check also LU-971 bug, there was problem with that so we update last_rcvd data for open too but in memory only, looks like it causes LU-1571 now.

Comment by Peter Jones [ 24/Feb/13 ]

Landed for 2.4

Generated at Sat Feb 10 01:17:48 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.