Commit graph

  • b5a8ef7c33 Terminate entire process group on Unix os_script and os_command timeout to avoid orphaned descendants Andrea Mazzoleni 2026-09-05 09:45:42 +02:00
  • 11fee73ec4 Separate process waiting from process-reference release to eliminate Windows HANDLE reuse race Andrea Mazzoleni 2026-09-04 13:16:55 +02:00
  • 5381d0a1ee Sync parent directory of parity split files in parity_sync Andrea Mazzoleni 2026-09-04 12:24:25 +02:00
  • bb0e1bb006 Initialize mono writer errors before early sync barriers Andrea Mazzoleni 2026-09-04 10:01:01 +02:00
  • e9621ead4c Clarify cache policy and usage of streaming hint in raid_gen() Andrea Mazzoleni 2026-09-04 09:58:58 +02:00
  • d96eecfd60 Persist content state and bad block markings on sync errors while preserving deallocation state Andrea Mazzoleni 2026-09-03 16:35:16 +02:00
  • 719bc5a3d5 Persist content state after parity handles are closed in scrub Andrea Mazzoleni 2026-09-04 08:20:04 +02:00
  • 930f0dbbcb Map devices before starting thermal Andrea Mazzoleni 2026-09-03 20:06:49 +02:00
  • 93a64a3710 Emit map_end tag at the end of map list Andrea Mazzoleni 2026-09-03 19:54:37 +02:00
  • 0b64fb2eae Eliminate obsolete raid_zero API and dedicated zero buffers Andrea Mazzoleni 2026-09-02 20:49:06 +02:00
  • 8f27c393d6 Standardize types to uint8_t and clean up legacy variables and setup boilerplate Andrea Mazzoleni 2026-09-02 20:45:06 +02:00
  • 27329c6f8c Ensure reliable Windows child termination by using CREATE_SUSPENDED and handling Job Object failures Andrea Mazzoleni 2026-09-02 19:01:49 +02:00
  • fc9fde000f Harmonize function across simd architectures Andrea Mazzoleni 2026-09-02 18:40:23 +02:00
  • ec1daddc8e Eliminate raid_delta_gen and convert int/neon32 REC1/REC2 to single-pass fused recovery Andrea Mazzoleni 2026-09-02 18:19:26 +02:00
  • 0ce89aa35d Add support for selectable streaming vs cached parity generation Andrea Mazzoleni 2026-09-02 16:31:21 +02:00
  • 44575b21b1 Handle partial writes and log unexpected stdin errors in Windows os_command Andrea Mazzoleni 2026-09-02 11:37:04 +02:00
  • b383cbc4ba Increase NSS credential buffer limits for run_as_user compatibility Andrea Mazzoleni 2026-09-02 00:18:01 +02:00
  • 05e29ae701 Preserve supplementary groups across bracketed privilege changes Andrea Mazzoleni 2026-09-01 23:54:24 +02:00
  • 8142ec08a0 Clarify CREATE_NO_WINDOW console behavior in os_term comment Andrea Mazzoleni 2026-09-01 12:42:33 +02:00
  • dfe0bf19e3 Fix concurrent Windows child handle inheritance with explicit handle lists Andrea Mazzoleni 2026-09-01 12:37:02 +02:00
  • 586b0a3fd5 Use CLOEXEC pipes for command stdin handling Andrea Mazzoleni 2026-09-01 12:16:16 +02:00
  • a6ffe53202 Use raw Linux syscalls for post-fork credential changes Andrea Mazzoleni 2026-09-01 12:09:17 +02:00
  • 79308a2041 Update NOTES Andrea Mazzoleni 2026-08-31 16:52:55 +02:00
  • b991d5e6c8 Use temporal stores for recovered data in SSSE3 and AVX2 REC1OF1 paths Andrea Mazzoleni 2026-08-31 21:33:45 +02:00
  • 6cd217ec2b Add O_NOFOLLOW to parity file open/create paths to prevent symlink redirection Andrea Mazzoleni 2026-08-31 20:52:20 +02:00
  • 40569fff2f Implement O_NOFOLLOW on Windows without following symlinks Andrea Mazzoleni 2026-08-31 17:14:34 +02:00
  • f3caf1dbf1 Add dedicated XOR-only fast paths for GFNI rec1of1 Andrea Mazzoleni 2026-08-31 16:34:44 +02:00
  • da58c1a997 Use fused 1-pass recovery for SSSE3 Andrea Mazzoleni 2026-08-31 12:33:29 +02:00
  • ee47fdf723 Fix raid_gen_force parity count in benchmarks Andrea Mazzoleni 2026-08-31 11:22:57 +02:00
  • 5acd43c9e5 Add dedicated XOR-only fast path for AVX512 rec1of1 Andrea Mazzoleni 2026-08-31 10:25:20 +02:00
  • e39c21a4c5 Add XOR-only fast path for AVX2 GFNI rec1of1 Andrea Mazzoleni 2026-08-31 10:16:00 +02:00
  • 82089165b5 Add dedicated XOR-only fast path for NEON rec1of1 Andrea Mazzoleni 2026-08-31 10:02:27 +02:00
  • b9d0dcd173 Make .unrecoverable a persistent one-way recovery quarantine Andrea Mazzoleni 2026-08-29 21:25:49 +02:00
  • 472c85a4fb Centralize canonical SnapRAID block hashing semantics Andrea Mazzoleni 2026-08-30 23:09:29 +02:00
  • 327c0e7aac Fix unrecoverable unsynced blocks reported as recoverable Andrea Mazzoleni 2026-08-30 22:08:04 +02:00
  • e5d5c512b8 Reject rehash while an incomplete sync is pending Andrea Mazzoleni 2026-08-30 21:53:51 +02:00
  • 6613eb5776 Optimize NEON nibble mask setup using MOVI and hoist invariant initialization Andrea Mazzoleni 2026-08-30 21:53:28 +02:00
  • 90fa3792ef Improve CHG recovery by inferring CURRENT state across the whole RAID solution Andrea Mazzoleni 2026-08-29 17:18:12 +02:00
  • 136f648cb5 Validate persistent state before content serialization Andrea Mazzoleni 2026-08-29 10:07:40 +02:00
  • 80b58e66d5 Initialize parity split sizes before pre-resize state checkpoint Andrea Mazzoleni 2026-08-29 09:26:28 +02:00
  • 2774a6488f Enforce contiguous prefix invariant for parity splits and reject internal zero-sized splits Andrea Mazzoleni 2026-08-28 23:12:24 +02:00
  • f8319361a3 Disallow elastic parity split reallocation during fix to preserve persisted layout Andrea Mazzoleni 2026-08-28 22:43:51 +02:00
  • f6d07dfa10 Persist pending logical state before parity resize on normal shrink sync Andrea Mazzoleni 2026-08-28 19:30:20 +02:00
  • 82be7b07b3 Persist reallocated mapping before parity resize in force-realloc sync Andrea Mazzoleni 2026-08-28 18:08:29 +02:00
  • 395291bd9a Implement crash-safe --force-full sync with persistent BLOCK_STATE_REBUILD Andrea Mazzoleni 2026-08-28 12:11:05 +02:00
  • cea7ce7f0a Document non-obvious invariants across sync, check, scrub, parity, and handle mapping logic Andrea Mazzoleni 2026-08-28 09:36:12 +02:00
  • 793782fa2d Fix premature valid_size update before pwrite completion in parity_write Andrea Mazzoleni 2026-08-28 09:17:25 +02:00
  • 3288c8cc8c Add machineinfo_struct to query and report system and CPU information in speed test Andrea Mazzoleni 2026-08-27 17:23:49 +02:00
  • ef5c5471dc Add sched.h include to unix.h Andrea Mazzoleni 2026-08-28 09:06:32 +02:00
  • 8d63a85b76 Clarify metadata validation semantics in sync comments Andrea Mazzoleni 2026-08-27 23:59:27 +02:00
  • 85d50456d7 Use size_t instead of ssize_t for buffer sizes in raid_malloc_vector_align Andrea Mazzoleni 2026-08-27 23:36:52 +02:00
  • 49f53a2732 Add Alpine Linux MUSL build and test job to GitHub Actions Andrea Mazzoleni 2026-08-27 23:26:01 +02:00
  • 457c5b7ec2 Reject unbounded mapping counts and duplicate disk mappings in content decoding Andrea Mazzoleni 2026-08-27 22:29:21 +02:00
  • 3571052504 Reject duplicate or misplaced blockmax records in content decoding Andrea Mazzoleni 2026-08-27 22:27:52 +02:00
  • 0277da9178 Validate serialized info timestamps in content file parser to prevent 64-bit overflow Andrea Mazzoleni 2026-08-27 21:17:22 +02:00
  • e0c0ea3dcc Optimize scalar 8-bit RAID parity generation and recovery in int.c Andrea Mazzoleni 2026-08-27 19:19:31 +02:00
  • 69a1ed1125 Specialize RAID recovery functions by passing has_p as a constant argument Andrea Mazzoleni 2026-08-27 18:54:10 +02:00
  • e0e3618240 Add 64-byte unrolled raid_recX_neon_12 recovery kernel for NEON Andrea Mazzoleni 2026-08-31 10:38:48 +02:00
  • c7ab4e9db9 Abort on duplicated info records when reading content Andrea Mazzoleni 2026-08-31 10:37:19 +02:00
  • c5f6d3c574 Abort with internal inconsistency on duplicate or misplaced hash and prevhash records in content file Andrea Mazzoleni 2026-08-27 18:13:27 +02:00
  • f2bb36120c Update AGENTS.md Andrea Mazzoleni 2026-08-27 17:48:29 +02:00
  • b5cc5eb007 Fix integer overflow in deleted block count byte size conversion in content parser Andrea Mazzoleni 2026-08-27 17:38:07 +02:00
  • 39e810564f Apply timestamps prior to renaming unrecoverable files during fix Andrea Mazzoleni 2026-08-27 16:59:23 +02:00
  • 67638a6638 Create missing files as .unrecoverable during fix to ensure crash safety on SIGKILL Andrea Mazzoleni 2026-08-27 16:54:16 +02:00
  • 75b0c834e6 Document .unrecoverable suffix quarantine behavior in Known Issues Andrea Mazzoleni 2026-08-27 16:43:25 +02:00
  • 7930ff82df Validate serialized disk mapping positions to prevent integer overflow and out-of-bounds access Andrea Mazzoleni 2026-08-27 16:21:35 +02:00
  • 237c9f0497 Enforce BLOCK_MAX limits on both 32-bit and 64-bit builds Andrea Mazzoleni 2026-08-27 16:07:59 +02:00
  • 31718bdc4f Test build out of tree Andrea Mazzoleni 2026-08-26 23:00:47 +02:00
  • e1574faa36 Skip self-test on status, locate, read, and test-rewrite commands Andrea Mazzoleni 2026-08-26 22:52:46 +02:00
  • 4aef405259 Validate serialized sub pathnames in content files to prevent path traversal Andrea Mazzoleni 2026-08-26 22:42:08 +02:00
  • 95ac8d7b51 Validate serialized nanoseconds range when reading content files Andrea Mazzoleni 2026-08-26 22:26:35 +02:00
  • e58eb16768 Avoid info memory allocation for zero runs and bound blockmax in content decoding Andrea Mazzoleni 2026-08-26 22:17:50 +02:00
  • 0410fbc399 Fix potential uint64_t overflow in parity tail ceil division in locate Andrea Mazzoleni 2026-08-26 21:52:42 +02:00
  • 31661e13bd Abort with internal inconsistency on duplicate or misplaced blocksize and hashsize records in content file Andrea Mazzoleni 2026-08-26 21:19:59 +02:00
  • 33d96adbce Validate that the total disk buffer memory does not exceed 256 MiB Andrea Mazzoleni 2026-08-26 20:59:56 +02:00
  • 65e1eac061 Fix int64_t overflow on file size when decoding content file Andrea Mazzoleni 2026-08-26 20:38:14 +02:00
  • fa81c20ee6 Preserve leading slash context for absolute double-star filters Andrea Mazzoleni 2026-08-26 20:06:26 +02:00
  • fcb6a5ca91 Quiesce asynchronous read-ahead I/O before thermal cooldown in dry and scrub Andrea Mazzoleni 2026-08-26 19:07:28 +02:00
  • 2a73074faa Use fused 1-pass recovery for rec2 in AVX2 backend Andrea Mazzoleni 2026-08-26 18:20:19 +02:00
  • 35abfd81e1 Use fused 1-pass recovery for rec1of1 and rec2of2 in NEON, AVX512 and GFNI backends Andrea Mazzoleni 2026-08-26 17:45:54 +02:00
  • c7b8068e36 Fix 32-bit integer truncation in block metadata allocations and file_block Andrea Mazzoleni 2026-08-26 17:06:28 +02:00
  • 527bd69129 Reject unterminated wildcard character classes in filter allocation Andrea Mazzoleni 2026-08-26 16:46:10 +02:00
  • dee434f09b Move exhaustive RAID generation and recovery tests to test command Andrea Mazzoleni 2026-08-26 15:45:52 +02:00
  • 0c80cd7dea Document Windows non-ASCII case matching limitation under known issues Andrea Mazzoleni 2026-08-26 15:17:33 +02:00
  • 4fdfc8a923 Fix literal caret handling in Windows path normalization and wildcard matching Andrea Mazzoleni 2026-08-26 15:09:30 +02:00
  • 69a459ee43 Add comprehensive filter combination and directory pruning regression tests in selftest Andrea Mazzoleni 2026-08-26 14:58:08 +02:00
  • f9b31db1a7 Clarify double-star wildcard matching behavior in pattern documentation Andrea Mazzoleni 2026-08-26 14:38:06 +02:00
  • 76e8ae2498 Allow path components with three or more dots in filter patterns Andrea Mazzoleni 2026-08-26 14:31:51 +02:00
  • f75827281f Reject empty disk filter patterns in filter_alloc_disk Andrea Mazzoleni 2026-08-26 14:25:56 +02:00
  • d4dc5a7339 Reject standalone absolute directory filter pattern /**/ during parsing Andrea Mazzoleni 2026-08-26 13:02:55 +02:00
  • 9e5f51fa5b Ensure .snapraidignore rules are loaded when nohidden is enabled Andrea Mazzoleni 2026-08-26 12:53:43 +02:00
  • 35977dadc9 Implement documented wildcard escaping in wnmatch_sub Andrea Mazzoleni 2026-08-26 12:43:17 +02:00
  • 3bd3eff451 Reject root directory pattern '/' in file filter allocation Andrea Mazzoleni 2026-08-26 12:37:29 +02:00
  • 7b2007e503 Clarify directory pruning semantics and nested exclusion/inclusion rules Andrea Mazzoleni 2026-08-26 12:29:13 +02:00
  • 932b5e567e Fix wnmatch_sub terminal asterisk handling when matching subdirectories Andrea Mazzoleni 2026-08-26 12:01:45 +02:00
  • 6a69a09cc7 Add condition comments to else and endif directives in Makefile.am Andrea Mazzoleni 2026-08-26 11:10:38 +02:00
  • de809dda5e Add SHORTCHECK variable to Makefile to control test dataset size Andrea Mazzoleni 2026-08-26 11:08:00 +02:00
  • a4a8e817b4 Cast sig_atomic_t global_interrupt to int in os_signal_interrupt() Andrea Mazzoleni 2026-08-26 10:49:53 +02:00
  • 21ca93f8c1 Explicitly cast sig_atomic_t child_pid to pid_t for kill() Andrea Mazzoleni 2026-08-26 10:47:19 +02:00
  • 64271ac429 Add FreeBSD build and test job using freebsd-vm action Andrea Mazzoleni 2026-08-26 10:39:42 +02:00