Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.5.1, Lustre 2.7.0
-
3
-
15386
Description
Buggy code at ptlrpc_connect_interpret()
finish:
rc = ptlrpc_import_recovery_state_machine(imp);
...
Set import connection flags
When import has FULL state ptlrpc_import_recovery_state_machine() wakeup all waiters on import and all delayed request, which was resented. And it could happened that request was send without updated flags and AT is disabled. After that, server could drop resend request if server already processing it and send early reply for client, base on the first incarnation of the request. Client got early reply for request without AT and became confused, touch the buffer outside the reply and fail with EPROTO.