windows-buf-infinite-looping-on-dirty-buffers-
20090607
LICENSE MIT
If there are dirty buffers when the file server becomes unresponsive,
the cache manager will attempt to write them repeatedly resulting in
use of 100% of the cpu of the machine until the file server becomes
responsive.
This patch reduces the cpu utilization by ensuring that only the first
in a list of buffers on the same file needs to fail with timed out,
all down, all busy, all offline, or clock skew. The other dirty buffers
will just be skipped. A small delay is enforced in the buf_IncrSync
thread between invocation.
This patch is not a complete fix for the problem. The buf_IncrSync
thread needs to become more intelligent in order to avoid attempts to
write to volumes that are known to be inaccessible.