Commit graph

312 commits

Author SHA1 Message Date
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
71f0735ef7 Decode content block hashes directly from buffered runs 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
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
34ac9a08e0 Import deallocated files when falling back directly to stable snapshot 2026-09-08 13:36:51 +02:00
Andrea Mazzoleni
5827c967a3 Report progress messages before filesystem snapshot operations 2026-09-07 22:34:53 +02:00
Andrea Mazzoleni
db94550cd7 Remove physical offset sorting support and default to directory order 2026-09-07 22:15:45 +02:00
Andrea Mazzoleni
31710bc1f3 Distinguish system temperature sensor from thermal model ambient reference 2026-09-07 11:38:49 +02:00
Andrea Mazzoleni
5e4cca1fe3 Detect and auto-heal content replicas left at different publication generations 2026-09-07 10:56:48 +02:00
Andrea Mazzoleni
305d1bce36 Use monotonic clock for thermal sampling intervals and model time axis 2026-09-07 00:04:49 +02:00
Andrea Mazzoleni
8ed0224e41 Use F_FULLFSYNC on macOS with fallback to fsync for full barrier durability 2026-09-05 10:39:07 +02:00
Andrea Mazzoleni
136f648cb5 Validate persistent state before content serialization 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
457c5b7ec2 Reject unbounded mapping counts and duplicate disk mappings in content decoding 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
3571052504 Reject duplicate or misplaced blockmax records in content decoding 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
0277da9178 Validate serialized info timestamps in content file parser to prevent 64-bit overflow 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
c7ab4e9db9 Abort on duplicated info records when reading content 2026-08-31 10:39:09 +02:00
Andrea Mazzoleni
c5f6d3c574 Abort with internal inconsistency on duplicate or misplaced hash and prevhash records in content file 2026-08-27 21:23:56 +02:00
Andrea Mazzoleni
b5cc5eb007 Fix integer overflow in deleted block count byte size conversion in content parser 2026-08-27 17:38:18 +02:00
Andrea Mazzoleni
7930ff82df Validate serialized disk mapping positions to prevent integer overflow and out-of-bounds access
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
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-08-27 16:29:34 +02:00
Andrea Mazzoleni
237c9f0497 Enforce BLOCK_MAX limits on both 32-bit and 64-bit builds 2026-08-27 16:29:34 +02:00
Andrea Mazzoleni
4aef405259 Validate serialized sub pathnames in content files to prevent path traversal 2026-08-26 22:55:49 +02:00
Andrea Mazzoleni
95ac8d7b51 Validate serialized nanoseconds range when reading content files 2026-08-26 22:35:22 +02:00
Andrea Mazzoleni
e58eb16768 Avoid info memory allocation for zero runs and bound blockmax in content decoding 2026-08-26 22:35:22 +02:00
Andrea Mazzoleni
31661e13bd Abort with internal inconsistency on duplicate or misplaced blocksize and hashsize records in content file 2026-08-26 21:19:59 +02:00
Andrea Mazzoleni
33d96adbce Validate that the total disk buffer memory does not exceed 256 MiB 2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
65e1eac061 Fix int64_t overflow on file size when decoding content file 2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
c7b8068e36 Fix 32-bit integer truncation in block metadata allocations and file_block 2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
78e87549ca Improve directory scan filesystem boundary detection using statx() for mount and subvolume IDs 2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
6583897fcf Reserve snapraid- prefix for native ZFS snapshots and introduce fssnapshot_path 2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
ebb199de3d Fix snapshot path resolution and aliased paths by storing sub_dir in fssnapshot_struct 2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
abcdd688dd Improve snapshot fallback warning messages to inform users of reduced recovery capability if files changed since the last sync 2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
fd65dbd9ea Fix undefined behavior by making TommyDS foreach callback signatures take void*
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
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-08-24 23:03:00 +02:00
Andrea Mazzoleni
15831064a1 Extend parent directory fsync after content file rename to all platforms 2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
b959f0056e Quiesce read-ahead before thermal spin-down 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
ef6fa54ee2 Fix parity writer error propagation in io_flush and abort sync on parity write failures 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
fa0a77f84c Add missing esc_tag() in status and parity split log tags 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
d4ae953137 Fix sopen_write call signature in HAVE_MT_WRITE block by adding stream flags 2026-08-18 23:33:58 +02:00