Commit graph

  • c6951393e8 Exit code and logging invariants for log_fatal and hardware log_error Andrea Mazzoleni 2026-09-20 15:56:14 +02:00
  • c2d46f4039 Emit content tags only after updating disk mapping and checks Andrea Mazzoleni 2026-09-20 13:33:47 +02:00
  • 89b1f47c33 Detect degraded state for Bcachefs and Linux MD RAID arrays Andrea Mazzoleni 2026-09-19 17:05:19 +02:00
  • 2852b09d47 Detect degraded ZFS pools and missing vdev devices in devdereference_zfs Andrea Mazzoleni 2026-09-19 11:00:19 +02:00
  • 8e66b42ceb Add trim and trim_empty support to strsplit and update all callers Andrea Mazzoleni 2026-09-19 11:12:49 +02:00
  • 929ba5cebe Detect degraded filesystems in device commands and exit with EXIT_DEGRADED Andrea Mazzoleni 2026-09-18 23:28:47 +02:00
  • 2a4335ef7d Defer content_info logging and state counters update after content durability rename in state_write Andrea Mazzoleni 2026-09-18 08:43:45 +02:00
  • 601064dde7 Use pathcmp for disk name comparisons to enforce case-insensitive uniqueness on Windows Andrea Mazzoleni 2026-09-18 09:09:48 +02:00
  • ecb12ee92c Avoid duplicate fatal stderr output in GUI mode Andrea Mazzoleni 2026-09-17 18:20:27 +02:00
  • d0194c3aff Update TODO Andrea Mazzoleni 2026-09-17 17:57:26 +02:00
  • 0771f91a53 Fix map_end tag formatting by adding trailing colon delimiter Andrea Mazzoleni 2026-09-17 17:37:31 +02:00
  • 3f3e7d4483 Validate logical disk names in configuration parsing to ensure compatibility with snapraid-daemon Andrea Mazzoleni 2026-09-17 17:32:19 +02:00
  • bdc2da9a94 Report elapsed time when loading and saving state Andrea Mazzoleni 2026-09-17 16:20:48 +02:00
  • 7361c104a5 Treat closed Windows pipes as EOF when reading Andrea Mazzoleni 2026-09-17 15:48:09 +02:00
  • 73d7394519 Require minimal changes and avoid unnecessary refactoring Andrea Mazzoleni 2026-09-17 00:34:13 +02:00
  • 65e2d93426 Ensure object directories existfor out-of-tree builds Andrea Mazzoleni 2026-09-17 00:02:55 +02:00
  • ce699dd9f8 Handle Windows Ctrl+Break as a graceful SnapRAID interruption Andrea Mazzoleni 2026-09-16 19:45:37 +02:00
  • d92d296bcd Lock unsafe command-line options after enabling --lock-options Andrea Mazzoleni 2026-09-16 12:35:32 +02:00
  • 209b902301 Clarify raid_malloc documentation Andrea Mazzoleni 2026-09-16 12:24:42 +02:00
  • 4320f0d6b6 Add absolutepath helper for paths that may not exist Andrea Mazzoleni 2026-09-16 12:24:12 +02:00
  • 5d9b1aee00 Clarify RAID buffer access, aliasing, and zero-size behavior Andrea Mazzoleni 2026-09-16 08:49:15 +02:00
  • bfe5ee7643 Document streaming parameter as a strict 0 or 1 value Andrea Mazzoleni 2026-09-16 08:39:22 +02:00
  • de00981504 Update RAID notes for fused scalar and AArch32 recovery paths Andrea Mazzoleni 2026-09-16 08:35:29 +02:00
  • 8b9858ffdc Synchronizes log entries for errors Andrea Mazzoleni 2026-09-15 22:48:28 +02:00
  • 215aed17e7 Emit content read metadata only after successful content loading Andrea Mazzoleni 2026-09-14 23:26:54 +02:00
  • 78abc2c7b7 Limit maximum consecutive newlines in uncrustify configuration Andrea Mazzoleni 2026-09-14 22:21:16 +02:00
  • 918a6a192b Update AGENTS.md Andrea Mazzoleni 2026-09-14 22:12:53 +02:00
  • 8a687d5f54 Document temporary file location Andrea Mazzoleni 2026-09-14 18:31:18 +02:00
  • 7bc302678e Temporarily hide original autotools files to allow concurrent VPATH builds Andrea Mazzoleni 2026-09-14 18:27:06 +02:00
  • c1bcd6a24f Migrate Windows smartctl execution from _wpopen to os_popen and direct process spawning Andrea Mazzoleni 2026-09-14 15:40:54 +02:00
  • 9f48c87dd4 Encapsulate race-safe process slot synchronization and termination in OS layer for Unix and Windows Andrea Mazzoleni 2026-09-14 14:55:24 +02:00
  • d7e06271d9 Add tommytree with bound searches, inlined helpers, and tail-recursion elimination Andrea Mazzoleni 2026-09-14 09:20:29 +02:00
  • 3bddc127f0 Assign os_script and os_command processes to the global Windows job object Andrea Mazzoleni 2026-09-14 09:19:19 +02:00
  • 08863cd740 Print progress message after saving content files when multithreading is disabled Andrea Mazzoleni 2026-09-13 21:14:38 +02:00
  • f902527a56 Add basic dependencies for cmdline in Makefile.am Andrea Mazzoleni 2026-09-11 22:57:57 +02:00
  • 33340f1ede Replace mem_is_zero() with membcmp() and update call sites Andrea Mazzoleni 2026-09-10 18:36:50 +02:00
  • 2f47d407ba Strengthen stream and vector memory tests Andrea Mazzoleni 2026-09-10 08:41:14 +02:00
  • 15048ff14f Optimize hardware CRC32C using multiple lanes Andrea Mazzoleni 2026-09-10 00:28:24 +02:00
  • 787fc020e6 Process content info values in contiguous runs Andrea Mazzoleni 2026-09-10 00:08:58 +02:00
  • badff9d548 Skip unsynced block counting for synchronized content Andrea Mazzoleni 2026-09-09 23:49:21 +02:00
  • 902c19b668 Specialize block hash copies for the full hash size Andrea Mazzoleni 2026-09-09 23:40:37 +02:00
  • b64c28b537 Serialize deleted blocks by ordered parity extents Andrea Mazzoleni 2026-09-09 23:16:19 +02:00
  • 6b5b0098c7 Detect rebuild blocks during state preparation Andrea Mazzoleni 2026-09-09 23:21:59 +02:00
  • 31f44958a3 Avoid redundant unsynced block scans when writing content Andrea Mazzoleni 2026-09-09 22:31:47 +02:00
  • 1073c97e0a Skip extent locking during single-threaded content serialization Andrea Mazzoleni 2026-09-09 22:09:36 +02:00
  • 03545f1685 Resolve file-to-parity mappings once per extent while writing content Andrea Mazzoleni 2026-09-09 21:58:54 +02:00
  • d8ea998eb2 Support native advise modes in buffered streams Andrea Mazzoleni 2026-09-09 20:39:33 +02:00
  • b762ab9e73 Update timed multithreaded content writers Andrea Mazzoleni 2026-09-09 19:28:46 +02:00
  • 1b0fa3eb46 Write content block hashes in buffered runs Andrea Mazzoleni 2026-09-09 19:02:43 +02:00
  • 2952ce4341 Inline buffered writes and process stream boundaries in bulk Andrea Mazzoleni 2026-09-09 18:50:39 +02:00
  • 71f0735ef7 Decode content block hashes directly from buffered runs Andrea Mazzoleni 2026-09-09 18:25:29 +02:00
  • e103590f21 Inline buffered reads and use memcpy for the fast path Andrea Mazzoleni 2026-09-09 18:15:41 +02:00
  • 17b24c8d21 Allocate content extents by run instead of by block Andrea Mazzoleni 2026-09-09 18:06:09 +02:00
  • b14f703d2b Avoid redundant block initialization when loading content files Andrea Mazzoleni 2026-09-09 17:56:44 +02:00
  • bc564e7465 Improve speed benchmark stability with adaptive 1 ms sampling and best-result selection Andrea Mazzoleni 2026-09-09 16:19:20 +02:00
  • 2b784748e3 Propagate final writeback errors from advise_close Andrea Mazzoleni 2026-09-09 16:00:33 +02:00
  • 4a616558ec Treat trusted REBUILD hash mismatches as persistent silent data corruption Andrea Mazzoleni 2026-09-09 14:49:31 +02:00
  • 62ae6c3552 Replace physical reach tracking with the natural file and parity EOF Andrea Mazzoleni 2026-09-09 09:58:56 +02:00
  • 873a5561e4 Clarify moved and relocated file detection in the manpage Andrea Mazzoleni 2026-09-09 10:13:19 +02:00
  • eae9402223 Add Bcachefs snapshot testing to the Linux CI workflow Andrea Mazzoleni 2026-09-09 07:46:16 +02:00
  • b9703737fa Normalize Windows snapshot paths with GetFullPathNameW before volume resolution Andrea Mazzoleni 2026-09-09 00:21:49 +02:00
  • b718b25b0f Enable parallel builds in github Andrea Mazzoleni 2026-09-09 00:10:31 +02:00
  • 0e94163371 Add NTFS snapshot testing on Windows using isolated VHD volumes Andrea Mazzoleni 2026-09-09 00:01:12 +02:00
  • 9c985612ea Make snapshot replacement crash-safe using retiring snapshots Andrea Mazzoleni 2026-09-08 22:19:55 +02:00
  • b379e514fb Add ZFS snapshot testing alongside Btrfs Andrea Mazzoleni 2026-09-08 22:40:37 +02:00
  • 7ba5f63d2d Disallow hashsize 2 and enforce a minimum hash size of 4 bytes Andrea Mazzoleni 2026-09-08 13:31:02 +02:00
  • fe2a07fc78 Defer rehash completion for positions containing unsynchronized blocks Andrea Mazzoleni 2026-09-08 12:07:36 +02:00
  • 76dd3d28ea Clarify physical_reach_size semantics and non-contiguous parity holes left by fix Andrea Mazzoleni 2026-09-08 11:55:11 +02:00
  • 34ac9a08e0 Import deallocated files when falling back directly to stable snapshot Andrea Mazzoleni 2026-09-08 11:01:51 +02:00
  • 78337d7b70 Document snapshot namespace limitation across multiple configurations in known issues Andrea Mazzoleni 2026-09-08 10:52:00 +02:00
  • 9db5dc5ed1 Mark sync as incomplete on SIGINT during thermal cooldown to prevent premature commit Andrea Mazzoleni 2026-09-08 10:42:14 +02:00
  • e8726ce95a Add regression tests and document parity size requirements when adding a parity level Andrea Mazzoleni 2026-09-08 10:06:11 +02:00
  • 6971bd58c9 Improve missing parity warning to recommend initialization via fix instead of force-full sync Andrea Mazzoleni 2026-09-08 09:58:57 +02:00
  • d6b0786eca Document recovery behavior after interrupted multi-parity sync in Known Issues Andrea Mazzoleni 2026-09-08 09:10:20 +02:00
  • 5beb465d42 Replace is_current and is_outofdate flags with 3-state recovery field in check.c Andrea Mazzoleni 2026-09-08 08:15:27 +02:00
  • 19a5bd781f Always write independently recovered current blocks even if parity repair fails Andrea Mazzoleni 2026-09-07 23:15:47 +02:00
  • 5827c967a3 Report progress messages before filesystem snapshot operations Andrea Mazzoleni 2026-09-07 22:34:53 +02:00
  • 1c9e5df479 Truncate parity splits backwards from the tail to preserve intermediate split boundaries Andrea Mazzoleni 2026-09-07 21:56:25 +02:00
  • db94550cd7 Remove physical offset sorting support and default to directory order Andrea Mazzoleni 2026-09-07 21:16:55 +02:00
  • 12c41ff1d1 Implement two-phase file scan with dedicated discovery struct and volatile hardlink normalization Andrea Mazzoleni 2026-09-07 17:16:24 +02:00
  • b113accaad Fix incorrect st_nlink inheritance from directory in Windows stream scanner Andrea Mazzoleni 2026-09-07 15:31:39 +02:00
  • c9fbc058ef Fix reversed content-suffix matching direction in filter_content Andrea Mazzoleni 2026-09-07 15:21:53 +02:00
  • 918d849739 Reset thermal_highest_temperature before readings to ensure fail-open on SMART error Andrea Mazzoleni 2026-09-07 14:43:38 +02:00
  • f4be0b54d0 Reuse imported CURRENT BLK/REBUILD blocks in OLD-history recovery retry Andrea Mazzoleni 2026-09-07 14:19:12 +02:00
  • 6dd1f6c27a Document risk of false success after partial fix recovery Andrea Mazzoleni 2026-09-07 14:00:27 +02:00
  • c09b850047 Keep generation ambiguous for legacy hashes in check repair to prevent false CURRENT certification on size changes Andrea Mazzoleni 2026-09-07 11:58:31 +02:00
  • b82ee5ff56 Separate hash identity from canonical padding validation in check to fix CHG generation detection with MuseAir Andrea Mazzoleni 2026-09-07 11:45:16 +02:00
  • 31710bc1f3 Distinguish system temperature sensor from thermal model ambient reference Andrea Mazzoleni 2026-09-07 11:38:49 +02:00
  • 5e4cca1fe3 Detect and auto-heal content replicas left at different publication generations Andrea Mazzoleni 2026-09-07 10:56:48 +02:00
  • 74647cda14 Make snapraid_io track started state and defer async I/O after initial thermal control Andrea Mazzoleni 2026-09-07 10:15:13 +02:00
  • 595461f725 Document thermal power management as best effort Andrea Mazzoleni 2026-09-07 00:20:02 +02:00
  • 305d1bce36 Use monotonic clock for thermal sampling intervals and model time axis Andrea Mazzoleni 2026-09-07 00:04:49 +02:00
  • 9ec2457147 Pass real current timestamp to state_thermal() after cooldown Andrea Mazzoleni 2026-09-06 23:52:25 +02:00
  • 9226f87ad1 Zero-initialize thermal model params in thermal_alloc() Andrea Mazzoleni 2026-09-06 23:47:43 +02:00
  • f9819266e7 Abort cooldown sleep and break caller loops immediately on interruption Andrea Mazzoleni 2026-09-06 23:20:21 +02:00
  • ea955eedc7 Make state_thermal_cooldown() repeat until disks cool down or thermal check fails Andrea Mazzoleni 2026-09-06 23:08:48 +02:00
  • 2fd94baa05 Make state_thermal() return 0 on success and -1 on failure Andrea Mazzoleni 2026-09-06 23:03:31 +02:00
  • a0c7d69067 Expose real operating system process IDs on Windows via os_display_pid() Andrea Mazzoleni 2026-09-05 11:42:01 +02:00
  • be3957f939 Ensure parity durability barrier in sync when there are no blocks to sync Andrea Mazzoleni 2026-09-05 10:08:00 +02:00
  • 8ed0224e41 Use F_FULLFSYNC on macOS with fallback to fsync for full barrier durability Andrea Mazzoleni 2026-09-05 09:51:38 +02:00