Fixed a bug in future::Cache that pending run_pending_tasks calls may cause
infinite busy loop in an internal schedule_write_op method
(#412[gh-issue-0412]):
This bug was introduced in v0.12.0 when the background threads were removed
from future::Cache.
This bug can occur when run_pending_task method is called by user code while
cache is receiving a very high number of concurrent cache write operations.
(e.g. insert, get_with, invalidate etc.)
When it occurs, the schedule_write_op method will be spinning in a busy loop
forever, causing high CPU usage and all other async tasks to be starved.
Changed
Upgraded async-lock crate used by future::Cache from v2.4 to the latest
v3.3.
Commits
1d2af53 Merge pull request #416 from moka-rs/fix-stacked-borrow-violation
7879dde Fix Miri error (Stacked Borrow violation) in the test code of the timer wheel
2f23e5c Merge pull request #415 from moka-rs/avoid-async-scheduler-busy-loop
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps moka from 0.12.5 to 0.12.6.
Changelog
Sourced from moka's changelog.
Commits
1d2af53
Merge pull request #416 from moka-rs/fix-stacked-borrow-violation7879dde
Fix Miri error (Stacked Borrow violation) in the test code of the timer wheel2f23e5c
Merge pull request #415 from moka-rs/avoid-async-scheduler-busy-loopc50d186
Update the changelog6c4f0ac
Bump the version tov0.12.6
8805940
Prevent the busy loop of async schedulersdc960af
Fix typos in comments5996c87
Prevent the busy loop of async schedulers6ba5445
Merge pull request #413 from moka-rs/fix-ci-2024-04-10/v0.124042c4a
Fix Clippy warningsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show