Commit graph

1235 commits

Author SHA1 Message Date
Andrea Mazzoleni
e481b5f207 Query SMART attributes for all disks in spinup while restricting power operations to array members
Some checks are pending
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 07:37:30 +02:00
Andrea Mazzoleni
5b615a0e02 Emit content_data and content_parity tags only after durable content rename in state_write
Some checks are pending
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-22 09:25:08 +02:00
Andrea Mazzoleni
c6951393e8 Exit code and logging invariants for log_fatal and hardware log_error
Some checks are pending
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
c2d46f4039 Emit content tags only after updating disk mapping and checks 2026-09-20 14:11:35 +02:00
Andrea Mazzoleni
89b1f47c33 Detect degraded state for Bcachefs and Linux MD RAID arrays 2026-09-20 14:11:35 +02:00
Andrea Mazzoleni
2852b09d47 Detect degraded ZFS pools and missing vdev devices in devdereference_zfs 2026-09-19 21:36:34 +02:00
Andrea Mazzoleni
8e66b42ceb Add trim and trim_empty support to strsplit and update all callers 2026-09-19 21:36:34 +02:00
Andrea Mazzoleni
929ba5cebe Detect degraded filesystems in device commands and exit with EXIT_DEGRADED 2026-09-19 09:45:47 +02:00
Andrea Mazzoleni
2a4335ef7d Defer content_info logging and state counters update after content durability rename in state_write
Some checks are pending
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-18 10:00:42 +02:00
Andrea Mazzoleni
601064dde7 Use pathcmp for disk name comparisons to enforce case-insensitive uniqueness on Windows 2026-09-18 10:00:42 +02:00
Andrea Mazzoleni
ecb12ee92c Avoid duplicate fatal stderr output in GUI mode 2026-09-18 10:00:42 +02:00
Andrea Mazzoleni
0771f91a53 Fix map_end tag formatting by adding trailing colon delimiter 2026-09-18 10:00:42 +02:00
Andrea Mazzoleni
3f3e7d4483 Validate logical disk names in configuration parsing to ensure compatibility with snapraid-daemon 2026-09-18 10:00:41 +02:00
Andrea Mazzoleni
bdc2da9a94 Report elapsed time when loading and saving state 2026-09-18 10:00:41 +02:00
Andrea Mazzoleni
d92d296bcd Lock unsafe command-line options after enabling --lock-options 2026-09-18 10:00:41 +02:00
Andrea Mazzoleni
8b9858ffdc Synchronizes log entries for errors
Some checks are pending
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
215aed17e7 Emit content read metadata only after successful content loading
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-arm32 (push) Has been cancelled
Build / build-win (push) Has been cancelled
Build / build-freebsd (push) Has been cancelled
Build / build-musl (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-09-14 23:26:54 +02:00
Andrea Mazzoleni
78abc2c7b7 Limit maximum consecutive newlines in uncrustify configuration 2026-09-14 22:33:23 +02:00
Andrea Mazzoleni
c1bcd6a24f Migrate Windows smartctl execution from _wpopen to os_popen and direct process spawning 2026-09-14 18:03:35 +02:00
Andrea Mazzoleni
9f48c87dd4 Encapsulate race-safe process slot synchronization and termination in OS layer for Unix and Windows 2026-09-14 15:00:20 +02:00
Andrea Mazzoleni
08863cd740 Print progress message after saving content files when multithreading is disabled 2026-09-13 21:15:37 +02:00
Andrea Mazzoleni
33340f1ede Replace mem_is_zero() with membcmp() and update call sites
Some checks are pending
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
2f47d407ba Strengthen stream and vector memory tests 2026-09-11 09:27:42 +02:00
Andrea Mazzoleni
15048ff14f Optimize hardware CRC32C using multiple lanes 2026-09-11 09:27:42 +02:00
Andrea Mazzoleni
787fc020e6 Process content info values in contiguous runs 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
badff9d548 Skip unsynced block counting for synchronized content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
902c19b668 Specialize block hash copies for the full hash size 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b64c28b537 Serialize deleted blocks by ordered parity extents 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
6b5b0098c7 Detect rebuild blocks during state preparation 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
31f44958a3 Avoid redundant unsynced block scans when writing content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
1073c97e0a Skip extent locking during single-threaded content serialization 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
03545f1685 Resolve file-to-parity mappings once per extent while writing content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
d8ea998eb2 Support native advise modes in buffered streams 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b762ab9e73 Update timed multithreaded content writers 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
1b0fa3eb46 Write content block hashes in buffered runs 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
2952ce4341 Inline buffered writes and process stream boundaries in bulk 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
71f0735ef7 Decode content block hashes directly from buffered runs 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
e103590f21 Inline buffered reads and use memcpy for the fast path 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
17b24c8d21 Allocate content extents by run instead of by block 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b14f703d2b Avoid redundant block initialization when loading content files 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
bc564e7465 Improve speed benchmark stability with adaptive 1 ms sampling and best-result selection 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
2b784748e3 Propagate final writeback errors from advise_close 2026-09-09 21:25:32 +02:00
Andrea Mazzoleni
4a616558ec Treat trusted REBUILD hash mismatches as persistent silent data corruption 2026-09-09 15:46:59 +02:00
Andrea Mazzoleni
62ae6c3552 Replace physical reach tracking with the natural file and parity EOF
Some checks are pending
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
b9703737fa Normalize Windows snapshot paths with GetFullPathNameW before volume resolution
Some checks are pending
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 00:21:49 +02:00
Andrea Mazzoleni
9c985612ea Make snapshot replacement crash-safe using retiring snapshots 2026-09-08 23:52:08 +02:00
Andrea Mazzoleni
7ba5f63d2d Disallow hashsize 2 and enforce a minimum hash size of 4 bytes
Some checks are pending
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 13:36:51 +02:00
Andrea Mazzoleni
fe2a07fc78 Defer rehash completion for positions containing unsynchronized blocks 2026-09-08 13:36:51 +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
34ac9a08e0 Import deallocated files when falling back directly to stable snapshot 2026-09-08 13:36:51 +02:00