Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
3
-
9223372036854775807
Description
When a Lustre client is evicted (or otherwise suffers fatal RPC interruption), it is supposed to print a warning (ll_dirty_page_discard_warn) for any dirty pages (once per set...) which may have been lost due to the eviction.
This is handled in vvp_vmpage_error, with a condition that checks the return code in the RPC.
Unfortunately, LU-1030 changed the error code set on RPCs in an eviction from -EINTR to -EIO:
http://review.whamcloud.com/#/c/2270/25/lustre/ptlrpc/client.c
But did not update the check in vvp_vmpage_error:
if ((ioret == -ESHUTDOWN || ioret == -EINTR) &&
obj->vob_discard_page_warned == 0) {
obj->vob_discard_page_warned = 1;
ll_dirty_page_discard_warn(vmpage, ioret);
It's still possible to get -EINTR here for an interrupted RPC (see osc_brw_redo_request), so I think we need to add -EIO to this mix.
Cray noticed this because we were seeing dropped pages after evictions without the message printed. Adding -EIO to this condition resolves this.