vinyl: fix memory dump trigger
vy_quota_signal() doesn't wake up a consumer if it won't be able to proceed because of the memory limit. This is OK, but it doesn't attempt to trigger memory dump in this case either. As a result, it may occur that dump isn't triggered and all waiting consumers are aborted by timeout. E.g. this happens if memory dump releases no memory, which is possible because memory is allocated and freed in 16 MB chunks. This results in occasional vinyl/quota_tmeout test failures. Fix this by moving the dump trigger right in vy_quota_may_use() so that it's called whenever we consider a consumer for wakeup.
Loading
Please register or sign in to comment