Commit graph

203 commits

Author SHA1 Message Date
Andrea Mazzoleni
7af0111c4a Fix leak on error when writing content file 2026-02-18 19:48:30 +01:00
Andrea Mazzoleni
5dfeaf0ef6 Return with an error code if the there is a thermal alert that prevent starting
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (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-02-09 23:52:10 +01:00
Andrea Mazzoleni
f89d5fa4f3 Unified the two --force-realloc logics 2026-02-09 14:39:19 +01:00
Ralf
966583e6f0 Add a new -W, --force-realloc-tail that operates only on the specified tail
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
d5b5a9bcbf More efficient info bucket management
Logged at every state_read() and state_write()
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
4d39bd5adf Log ETA in seconds. Also use empty fields if the value is not available. 2026-02-08 14:41:12 +01:00
Andrea Mazzoleni
025816d151 Speed up the status command
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-02-02 18:00:14 +01:00
Andrea Mazzoleni
60bd71d184 Log new block_unsynced and block_unscrubbed counter 2026-02-02 18:00:14 +01:00
Andrea Mazzoleni
d3f7bf64c1 Differentiate messages in the log files if they are caused by an hardware issue 2026-02-01 20:44:36 +01:00
Andrea Mazzoleni
f134201438 Log more information about the filesystems 2026-01-31 16:30:15 +01:00
Andrea Mazzoleni
9f081f9c22 Log the filesystem type and label
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-01-29 19:34:33 +01:00
Andrea Mazzoleni
bc1b238b3a Fix remaining message
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (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-01-26 14:46:46 +01:00
Andrea Mazzoleni
af2e957085 Stop reading ignore files at the first error 2026-01-26 14:41:43 +01:00
Andrea Mazzoleni
e80734fc4c Fix typos 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
9d383f08c9 Log the content file counters 2026-01-16 10:40:57 +01:00
Andrea Mazzoleni
e9756461af Failing to flush is an I/O error 2026-01-16 10:05:31 +01:00
Andrea Mazzoleni
9f14dd94e5 Add support for ** in the patterns
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
2026-01-11 15:48:36 +01:00
Andrea Mazzoleni
36cef9ee89 New .snapraidignore feature 2026-01-11 12:07:01 +01:00
Andrea Mazzoleni
6a912b4726 Optimize the stream support for small text files 2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
cc2bdad335 Some hash support improvments 2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
928469bc3d Avoid some warnings reported with higher optimization 2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
d46a2402b6 Beautify code with uncrustify 2026-01-05 15:59:03 +01:00
Andrea Mazzoleni
75b6170b79 Rework size and uuid tags 2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
30e329d4f3 More log_tags to make explicit the devices state 2025-12-18 14:48:43 +01:00
Andrea Mazzoleni
2555e503aa Force version 3 when saving content
This avoid saving the content file when it was not strictly necessary
because we keep the partity size.
2025-12-15 11:01:02 +01:00
Andrea Mazzoleni
6729e2d0eb Some minimal tags changes 2025-12-11 12:54:18 +01:00
Andrea Mazzoleni
d452b109bc More regression tests
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-10-28 12:15:50 +01:00
Andrea Mazzoleni
21acc31bf1 Beautify code with uncrustify 2025-10-26 18:11:45 +01:00
Andrea Mazzoleni
9bc50f4e34 Avoid empty line in the cooldown output 2025-10-26 14:46:45 +01:00
Andrea Mazzoleni
6c1421f5a0 Change thermal defaults
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-10-17 10:07:51 +02:00
Andrea Mazzoleni
52ef48655f Improve and change the order of the user messages
The "Everything is OK" is now printed as latest one.
2025-10-13 13:51:18 +02:00
Andrea Mazzoleni
467fb8c1ac Don't print the "Nothing to do" if the state was updated
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-10-13 00:26:31 +02:00
Andrea Mazzoleni
c1e101699a Avoid stale messages on terminal to appear in new lines 2025-10-12 23:55:32 +02:00
Andrea Mazzoleni
adde997a38 Extend block time information to 64 bits
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Prevent potential timestamp overflow for the last write operation, which
could occur around 2106. The content format remains unchanged, as values are
expected to stay within the 32-bit range until then.
2025-10-08 13:02:24 +02:00
Andrea Mazzoleni
906d215bf5 Add thermal protection options: temp_limit and temp_sleep
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Introduce two new configuration directives to protect disks from overheating:

- temp_limit <TEMPERATURE_CELSIUS>
  Sets the maximum allowed disk temperature. When any disk exceeds this limit,
  SnapRAID stops all operations and spins down the disks.

- temp_sleep <TIME_IN_MINUTES>
  Specifies how long disks remain in standby after a temperature event.
  Defaults to 15 minutes.

These options allow SnapRAID to automatically pause activity and cool down
disks when a temperature threshold is reached, improving data safety and
hardware longevity.
2025-09-27 16:05:05 +02:00
Andrea Mazzoleni
30474cfb80 Ensure that writer buffers are flushed before synchronizing parity writes
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-09-25 15:32:34 +02:00
Andrea Mazzoleni
8cef686d26 Adds a new smartignore option to ignore specific SMART attributes
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-09-15 16:57:22 +02:00
Nasado
3c87474aa2 Use volume UUIDs on macOS 2025-02-13 11:21:26 +01:00
Andrea Mazzoleni
85ca997bf2 Fix integer overflow when computing the progress percentage 2024-01-03 20:20:39 +01:00
Andrea Mazzoleni
a605442c8c Fix typos in messages 2023-12-09 15:35:45 +01:00
saladpanda
978d812153
Fix error when configuring a contentfile in / (#18)
When using this config line:
content /snapraid.content
SnapRAID throws this error:
Error accessing 'content' dir '' specification in '/etc/snapraid.conf' at line 17

This commit fixes that by not replacing the rightmost slash with NUL but
instead the char immediately after the slash.
2023-10-20 10:24:54 +02:00
Andrea Mazzoleni
2c3f9b8364 Remove outdated comment 2021-11-29 17:42:52 +01:00
Andrea Mazzoleni
31699b1b2c Print only one Verifying message
There is no point to print them all at the same time.
2021-11-29 17:40:40 +01:00
Andrea Mazzoleni
53801b407a Remove the need of the MingW pthread layer on the Windows port
Now everything is implemented usign Windows native calls.
2021-05-26 00:21:52 +02:00
Andrea Mazzoleni
ec7c4de3c9 Fix check for division by 0 2021-05-24 19:47:05 +02:00
Andrea Mazzoleni
cb8b3dc804 Print a new Selecting... stage to get an idea of the time spent on it 2021-05-22 10:14:53 +02:00
Andrea Mazzoleni
b74731d853 Use stripe as more correct definition 2021-05-22 08:50:30 +02:00
Andrea Gelmini
986e9b4131 Fix typos 2020-05-26 12:50:15 +02:00
Andrea Mazzoleni
a8242e4cd8 Print block stats 2020-04-24 21:02:47 +02:00
Andrea Mazzoleni
b725333a49 Add MetroHash128 for speed measurement 2020-04-24 21:02:45 +02:00