Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.16.0
-
3
-
9223372036854775807
Description
The process of refreshing an entry via refresh_entry() goes through an upcall/downcall. If the upcall succeeds, we enter a wait queue. If after that the downcall is never called, we hit the expiry timeout, and we get removed from the wait queue. But if the entry is not new, the expiry time will be MAX_SCHEDULE_TIMEOUT, which is actually an infinite wait because we have:
#define MAX_SCHEDULE_TIMEOUT LONG_MAX
So avoid waiting forever if an entry could not be refreshed, and call wake_up_all() if the wait for the ACQUIRING state failed.