Andrea Mazzoleni
|
a92b19d9c2
|
Use lstat for empty objects and leave type mismatches unrecoverable
|
2026-09-25 08:48:43 +02:00 |
|
Andrea Mazzoleni
|
bcc06e10c6
|
Reject parity sizes exceeding data_off_t range and remove redundant block size casts
|
2026-09-24 20:40:27 +02:00 |
|
Andrea Mazzoleni
|
222136f1e7
|
Leave block empty for unlocalized close errors and use zero for parity open errors
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-23 16:37:13 +02:00 |
|
Andrea Mazzoleni
|
c6951393e8
|
Exit code and logging invariants for log_fatal and hardware log_error
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-21 17:27:07 +02:00 |
|
Andrea Mazzoleni
|
8b9858ffdc
|
Synchronizes log entries for errors
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-15 23:55:21 +02:00 |
|
Andrea Mazzoleni
|
33340f1ede
|
Replace mem_is_zero() with membcmp() and update call sites
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-11 09:27:42 +02:00 |
|
Andrea Mazzoleni
|
62ae6c3552
|
Replace physical reach tracking with the natural file and parity EOF
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-09 13:03:11 +02:00 |
|
Andrea Mazzoleni
|
76dd3d28ea
|
Clarify physical_reach_size semantics and non-contiguous parity holes left by fix
|
2026-09-08 13:36:51 +02:00 |
|
Andrea Mazzoleni
|
5beb465d42
|
Replace is_current and is_outofdate flags with 3-state recovery field in check.c
|
2026-09-08 08:59:37 +02:00 |
|
Andrea Mazzoleni
|
19a5bd781f
|
Always write independently recovered current blocks even if parity repair fails
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-08 00:19:16 +02:00 |
|
Andrea Mazzoleni
|
f4be0b54d0
|
Reuse imported CURRENT BLK/REBUILD blocks in OLD-history recovery retry
|
2026-09-07 14:26:20 +02:00 |
|
Andrea Mazzoleni
|
c09b850047
|
Keep generation ambiguous for legacy hashes in check repair to prevent false CURRENT certification on size changes
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-07 12:02:24 +02:00 |
|
Andrea Mazzoleni
|
b82ee5ff56
|
Separate hash identity from canonical padding validation in check to fix CHG generation detection with MuseAir
|
2026-09-07 11:45:16 +02:00 |
|
Andrea Mazzoleni
|
f9819266e7
|
Abort cooldown sleep and break caller loops immediately on interruption
|
2026-09-06 23:37:05 +02:00 |
|
Andrea Mazzoleni
|
0b64fb2eae
|
Eliminate obsolete raid_zero API and dedicated zero buffers
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-09-02 20:49:06 +02:00 |
|
Andrea Mazzoleni
|
0ce89aa35d
|
Add support for selectable streaming vs cached parity generation
|
2026-09-02 17:26:02 +02:00 |
|
Andrea Mazzoleni
|
b9d0dcd173
|
Make .unrecoverable a persistent one-way recovery quarantine
|
2026-08-31 20:45:38 +02:00 |
|
Andrea Mazzoleni
|
472c85a4fb
|
Centralize canonical SnapRAID block hashing semantics
|
2026-08-31 20:45:38 +02:00 |
|
Andrea Mazzoleni
|
327c0e7aac
|
Fix unrecoverable unsynced blocks reported as recoverable
|
2026-08-31 10:39:17 +02:00 |
|
Andrea Mazzoleni
|
90fa3792ef
|
Improve CHG recovery by inferring CURRENT state across the whole RAID solution
|
2026-08-31 10:39:17 +02:00 |
|
Andrea Mazzoleni
|
f8319361a3
|
Disallow elastic parity split reallocation during fix to preserve persisted layout
|
2026-08-31 10:39:17 +02:00 |
|
Andrea Mazzoleni
|
395291bd9a
|
Implement crash-safe --force-full sync with persistent BLOCK_STATE_REBUILD
|
2026-08-31 10:39:17 +02:00 |
|
Andrea Mazzoleni
|
cea7ce7f0a
|
Document non-obvious invariants across sync, check, scrub, parity, and handle mapping logic
|
2026-08-31 10:39:17 +02:00 |
|
Andrea Mazzoleni
|
39e810564f
|
Apply timestamps prior to renaming unrecoverable files during fix
|
2026-08-27 16:59:23 +02:00 |
|
Andrea Mazzoleni
|
67638a6638
|
Create missing files as .unrecoverable during fix to ensure crash safety on SIGKILL
|
2026-08-27 16:54:24 +02:00 |
|
Andrea Mazzoleni
|
3dfab5232c
|
Prevent partial fix from finalizing incomplete files
|
2026-08-18 23:33:58 +02:00 |
|
Andrea Mazzoleni
|
036b099eae
|
Keep unrecoverable files quarantined until fix completion
|
2026-08-18 23:33:58 +02:00 |
|
Andrea Mazzoleni
|
65e6564e13
|
Clarify CHG block handling during interrupted sync recovery
|
2026-08-18 23:33:58 +02:00 |
|
Andrea Mazzoleni
|
f453a72369
|
Preserve recovery state until a full clean sync completes
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
eebb3943e5
|
Protect rate limiter state updates with a mutex to prevent data races
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
0ca7c65049
|
Support filesystems with invalid inode numbers on individual files
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
3878c0e2e6
|
Silence clang static analyzer warnings
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
ebe2bbe76c
|
Document handle_close failures
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
bbcdb72a9f
|
Introduce nalloc_nofail
|
2026-08-18 23:33:55 +02:00 |
|
Andrea Mazzoleni
|
00b4cbafd0
|
Merge the CLI and Daemon portable interface
|
2026-08-18 23:33:55 +02:00 |
|
Andrea Mazzoleni
|
f40b2decdb
|
Further conversions from 32 to 64 bits
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
bbd3c23cd2
|
Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
76998613da
|
Remove the unused number of data disks from the vector allocation
The same addressing rules are applied to the parity disks because
they are used as data disks during recovery operations.
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
4a37e3fece
|
Change the BLOCK_HASH_SIZE type to avoid potential overflow
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
54602422dd
|
Change commenting style
|
2026-08-18 23:33:52 +02:00 |
|
Andrea Mazzoleni
|
5cfebba19e
|
Remove unnecessary log argument
|
2026-06-03 20:57:08 +02:00 |
|
Andrea Mazzoleni
|
cc99a22929
|
Add protection for block position integer overflow
|
2026-06-03 19:07:31 +02:00 |
|
Andrea Mazzoleni
|
96e20b3912
|
Switch esc_tag and path formatting to a contiguous thread-local circular pool to eliminate stack bloat
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
|
2026-05-29 11:22:04 +02:00 |
|
Andrea Mazzoleni
|
8749d0dfe3
|
Handle the cases of directory already create by another process
|
2026-05-21 10:30:14 +02:00 |
|
Andrea Mazzoleni
|
9f57d3217d
|
Do not even attempt to recover if there are more failures than parities
|
2026-05-21 10:29:56 +02:00 |
|
Andrea Mazzoleni
|
0d0431a907
|
Simpler Copyright string
|
2026-04-09 17:56:49 +02:00 |
|
Christoph Hellwig
|
60269a1236
|
Use SPDX (https://spdx.dev/) tags to identify the license used for each
file, and a COPYING file explaining the licensing scheme, with the actual
licenses listed in the LICENSES/ directory.
|
2026-04-02 16:01:37 +02:00 |
|
Andrea Mazzoleni
|
077cf5de01
|
Detect more hardware errors
|
2026-02-24 08:39:50 +01:00 |
|
Andrea Mazzoleni
|
5dfeaf0ef6
|
Return with an error code if the there is a thermal alert that prevent starting
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
|
2026-02-09 23:52:10 +01:00 |
|
Andrea Mazzoleni
|
d3f7bf64c1
|
Differentiate messages in the log files if they are caused by an hardware issue
|
2026-02-01 20:44:36 +01:00 |
|