mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-23 03:17:43 +08:00
* fix: add MFS operation limit for --flush=false
adds a global counter that tracks consecutive MFS operations performed
with --flush=false and fails with clear error after limit is reached.
this prevents unbounded memory growth while avoiding the data corruption
risks of auto-flushing.
- adds Internal.MFSNoFlushLimit config
- operations fail with actionable error at limit
- counter resets on successful flush or any --flush=true operation
- operations with --flush=true reset and don't count
this commit removes automatic flush from https://github.com/ipfs/kubo/pull/10971
and instead errors to encourage users of --flush=false to develop a habit
of calling 'ipfs files flush' periodically.
boxo will no longer auto-flush (https://github.com/ipfs/boxo/pull/1041) to
avoid corruption issues, and kubo applies the limit to 'ipfs files' commands
instead.
closes #10842
* test: add tests for MFSNoFlushLimit
tests verify the new Internal.MFSNoFlushLimit config option:
- default limit of 256 operations
- custom limit configuration
- counter reset on flush=true
- counter reset on explicit flush command
- limit=0 disables the feature
- multiple MFS command types count towards limit
* docs: explain why MFS operations fail instead of auto-flushing
addresses feedback from https://github.com/ipfs/kubo/pull/10985#pullrequestreview-3256250970
- clarify that automatic flushing at limit was considered but rejected
- explain the data corruption risks of auto-flushing
- guide users who want auto-flush to use --flush=true (default)
- document benefits of explicit failure for batch operations
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| v0.2.md | ||
| v0.3.md | ||
| v0.4.md | ||
| v0.5.md | ||
| v0.6.md | ||
| v0.7.md | ||
| v0.8.md | ||
| v0.9.md | ||
| v0.10.md | ||
| v0.11.md | ||
| v0.12.md | ||
| v0.13.md | ||
| v0.14.md | ||
| v0.15.md | ||
| v0.16.md | ||
| v0.17.md | ||
| v0.18.md | ||
| v0.19.md | ||
| v0.20.md | ||
| v0.21.md | ||
| v0.22.md | ||
| v0.23.md | ||
| v0.24.md | ||
| v0.25.md | ||
| v0.26.md | ||
| v0.27.md | ||
| v0.28.md | ||
| v0.29.md | ||
| v0.30.md | ||
| v0.31.md | ||
| v0.32.md | ||
| v0.33.md | ||
| v0.34.md | ||
| v0.35.md | ||
| v0.36.md | ||
| v0.37.md | ||
| v0.38.md | ||