Whamcloud - gitweb
LU-11444 ptlrpc: resend may corrupt the data 14/35114/15
authorAndriy Skulysh <c17819@cray.com>
Sat, 8 Jun 2019 11:30:55 +0000 (14:30 +0300)
committerOleg Drokin <green@whamcloud.com>
Mon, 30 Sep 2019 23:12:15 +0000 (23:12 +0000)
commit23773b32bfe15fccc9c029d722dc1bd5b0144779
tree02de235796b99e1fbd67ab1e37509c35dfa4855c
parenta7299cb012f8c5574a0cc07ff0e32218fb49d733
LU-11444 ptlrpc: resend may corrupt the data

Late resend if arrives much later than another modification RPC
which has been already handled on this slot, may be still applied
and therefore overrides the last one

Send RPCs from client in increasing order for each tag
and check it on server to check late resend.

A slot can be reused by a client after kill while
the server continue to rely on it.

Add flag for such obsolete requests, here we trust the
client and perform xid check for all in progress requests.

Cray-bug-id: LUS-6272, LUS-7277, LUS-7339
Signed-off-by: Andriy Skulysh <c17819@cray.com>
Reviewed-by: Vitaly Fertman <c17818@cray.com>
Reviewed-by: Alexander Boyko <c17825@cray.com>
Reviewed-by: Andrew Perepechko <c17827@cray.com>
Change-Id: I97806577cf979f49a75379ffc55947cc3dcd02b1
Reviewed-on: https://review.whamcloud.com/35114
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
18 files changed:
lustre/include/lu_target.h
lustre/include/lustre_export.h
lustre/include/lustre_mdc.h
lustre/include/lustre_net.h
lustre/include/obd_support.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/llite/llite_lib.c
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_reint.c
lustre/obdclass/genops.c
lustre/ptlrpc/client.c
lustre/ptlrpc/service.c
lustre/target/tgt_handler.c
lustre/target/tgt_internal.h
lustre/target/tgt_lastrcvd.c
lustre/tests/recovery-small.sh
lustre/tests/sanity.sh