Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
If max_cached_mb is set extremely low, it seems to be possible to get deadlocks because the entire OSC LRU is tied up in requests which cannot even finish starting, so no requests are issued. A little code examination and consideration will be required to determine the exact lower limit required.
Andreas sketched the issue and general idea of the solution elsewhere:
"...we definitely should not allow max_cached_mb < N * max_dirty_mb, where N is a multiplier to handle multiple OSC caches. Otherwise, with a mixed read/write workload it may be that there are partially-formed write RPCs that are blocked waiting for free cache pages, but those pages are pinned by read pages? Alternately, we might want to consider to always allow a read or write RPC to be filled even if it exceeds the cache or dirty limits, to avoid deadlocks."