Commit graph

2640 commits

Author SHA1 Message Date
Andrea Mazzoleni
44575b21b1 Handle partial writes and log unexpected stdin errors in Windows os_command 2026-09-02 11:44:38 +02:00
Andrea Mazzoleni
b383cbc4ba Increase NSS credential buffer limits for run_as_user compatibility
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-02 00:18:01 +02:00
Andrea Mazzoleni
05e29ae701 Preserve supplementary groups across bracketed privilege changes 2026-09-02 00:03:59 +02:00
Andrea Mazzoleni
8142ec08a0 Clarify CREATE_NO_WINDOW console behavior in os_term comment
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-01 12:42:33 +02:00
Andrea Mazzoleni
dfe0bf19e3 Fix concurrent Windows child handle inheritance with explicit handle lists 2026-09-01 12:37:02 +02:00
Andrea Mazzoleni
586b0a3fd5 Use CLOEXEC pipes for command stdin handling 2026-09-01 12:31:48 +02:00
Andrea Mazzoleni
a6ffe53202 Use raw Linux syscalls for post-fork credential changes 2026-09-01 12:31:48 +02:00
Andrea Mazzoleni
79308a2041 Update NOTES
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-08-31 21:34:10 +02:00
Andrea Mazzoleni
b991d5e6c8 Use temporal stores for recovered data in SSSE3 and AVX2 REC1OF1 paths 2026-08-31 21:34:10 +02:00
Andrea Mazzoleni
6cd217ec2b Add O_NOFOLLOW to parity file open/create paths to prevent symlink redirection 2026-08-31 21:34:10 +02:00
Andrea Mazzoleni
40569fff2f Implement O_NOFOLLOW on Windows without following symlinks 2026-08-31 21:34:10 +02:00
Andrea Mazzoleni
f3caf1dbf1 Add dedicated XOR-only fast paths for GFNI rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
da58c1a997 Use fused 1-pass recovery for SSSE3 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
ee47fdf723 Fix raid_gen_force parity count in benchmarks 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
5acd43c9e5 Add dedicated XOR-only fast path for AVX512 rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
e39c21a4c5 Add XOR-only fast path for AVX2 GFNI rec1of1 2026-08-31 20:45:39 +02:00
Andrea Mazzoleni
82089165b5 Add dedicated XOR-only fast path for NEON rec1of1 2026-08-31 20:45:38 +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
e5d5c512b8 Reject rehash while an incomplete sync is pending 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
6613eb5776 Optimize NEON nibble mask setup using MOVI and hoist invariant initialization 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
136f648cb5 Validate persistent state before content serialization 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
80b58e66d5 Initialize parity split sizes before pre-resize state checkpoint 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
2774a6488f Enforce contiguous prefix invariant for parity splits and reject internal zero-sized splits 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
f6d07dfa10 Persist pending logical state before parity resize on normal shrink sync 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
82be7b07b3 Persist reallocated mapping before parity resize in force-realloc sync 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
793782fa2d Fix premature valid_size update before pwrite completion in parity_write 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
3288c8cc8c Add machineinfo_struct to query and report system and CPU information in speed test 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
ef5c5471dc Add sched.h include to unix.h 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
8d63a85b76 Clarify metadata validation semantics in sync comments 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
85d50456d7 Use size_t instead of ssize_t for buffer sizes in raid_malloc_vector_align 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
49f53a2732 Add Alpine Linux MUSL build and test job to GitHub Actions 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
e0c0ea3dcc Optimize scalar 8-bit RAID parity generation and recovery in int.c 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
69a1ed1125 Specialize RAID recovery functions by passing has_p as a constant argument 2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
e0e3618240 Add 64-byte unrolled raid_recX_neon_12 recovery kernel for NEON 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
f2bb36120c Update AGENTS.md 2026-08-27 17:50:52 +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
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
75b0c834e6 Document .unrecoverable suffix quarantine behavior in Known Issues 2026-08-27 16:43:25 +02:00