Andrea Mazzoleni
5bd592b85c
Decode smartctl Average
2026-03-15 13:15:31 +01:00
Andrea Mazzoleni
e24b169488
Identify wear level by attribute name and not by attribute id
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-03-15 02:47:36 +01:00
Andrea Mazzoleni
b3879f7f8e
Rework the portable support
2026-03-02 09:56:27 +01:00
Andrea Mazzoleni
21561e6cf9
More coverage test
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-28 18:13:11 +01:00
Andrea Mazzoleni
d451f911c7
Reformat the code with new uncrustify.cfg
2026-02-27 00:39:22 +01:00
Andrea Mazzoleni
ed15ad23a4
Report more NVME SMART attributes
2026-02-26 12:53:55 +01:00
Andrea Mazzoleni
18279f7346
Stop parsing numbers from smartctl after two consecutive commas
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-25 19:12:34 +01:00
Andrea Mazzoleni
077cf5de01
Detect more hardware errors
2026-02-24 08:39:50 +01:00
Andrea Mazzoleni
f5c07e07f5
Detect more SMART attributes for SCSI/NVME
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-21 18:46:21 +01:00
Andrea Mazzoleni
696ee97754
Log full SMART attributes
2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
5e98164b64
Log the real raw value of SMART temperature
2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
a31bba2e45
Fix temperature gathering
2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
2019aa4bb6
Log the normalized, worst and threshold value of SMART attributes
2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
d3c5521d21
Log the new temperature attribute for all devices
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
e2d2ddbf67
Fix typo in the interface code
2026-02-02 09:17:04 +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
5a5668851d
Log the interface of the device
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-29 17:06:10 +01:00
Andrea Mazzoleni
3e62e22411
Beautification with unscrustify
2026-01-26 09:42:03 +01:00
Andrea Mazzoleni
a7cae2707f
Always trim family/serial/model
2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
ede99cbe80
Added wear level percentage to the SMART report
2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
e99f43c8ca
Log both protocol and medium errors
2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
b29500c25f
Update beautification with uncrustify
2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
9f14dd94e5
Add support for ** in the patterns
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
be3e3673fd
Use proper family variable name instead of vendor
2026-01-11 12:01:12 +01:00
Andrea Mazzoleni
13fae39eb3
New pseudo random number generator
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
2026-01-06 09:34:29 +01:00
Andrea Mazzoleni
d46a2402b6
Beautify code with uncrustify
2026-01-05 15:59:03 +01:00
Andrea Mazzoleni
ea53954b41
Rework attributes
2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
0367b2810a
Retrieve some attributes directly from the system
2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
1f17ceca84
Log disk information info also in probe
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
2025-12-18 18:49:52 +01:00
Andrea Mazzoleni
1759716734
Fix importing of vendor/model from smartctl
2025-12-18 15:40:04 +01:00
Andrea Mazzoleni
d452b109bc
More regression tests
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
8ae0599c64
Fix quoting for printed file paths
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-27 01:07:38 +01:00
Andrea Mazzoleni
21acc31bf1
Beautify code with uncrustify
2025-10-26 18:11:45 +01:00
Andrea Mazzoleni
c1e101699a
Avoid stale messages on terminal to appear in new lines
2025-10-12 23:55:32 +02:00
Andrea Mazzoleni
649b3f1f0b
Remove the SMART attribute 193 from the failure probability computation
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
2025-09-29 16:25:49 +02:00
Andrea Mazzoleni
906d215bf5
Add thermal protection options: temp_limit and temp_sleep
...
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
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
5ad7f9acfc
Use POSIX_FADV_NOREUSE to avoid page-cache pollution
...
This adds support for POSIX_FADV_NOREUSE, which advises the kernel not to
cache read data. It's available starting from Linux kernel 6.3.
To maintain compatibility with older kernels, POSIX_FADV_DONTNEED is still
used.
2025-05-08 09:18:50 +02:00
Andrea Mazzoleni
a605442c8c
Fix typos in messages
2023-12-09 15:35:45 +01:00
Andrea Mazzoleni
02d170c004
Remove all scan buffers from the stack
...
This reduces even more the stack utilization.
2022-01-09 10:23:09 +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 Gelmini
986e9b4131
Fix typos
2020-05-26 12:50:15 +02:00
Andrea Mazzoleni
5bac3d64a6
Fix build errors due new gcc 10 default for -fno-common
2020-05-18 15:28:55 +02:00
Andrea Mazzoleni
17bec43be2
Set time of pool links
...
This avoid index refresh from various applications.
2017-05-01 16:07:04 +02:00
Andrea Mazzoleni
1681f7c9c7
Fix quoting in Linux
...
We cannot quote UTF-8 chars.
2017-02-24 22:26:35 +01:00
Andrea Mazzoleni
6f16cddd5b
Rename string functions to avoid variable shadow
2016-11-06 16:06:26 +01:00
Andrea Mazzoleni
d65450dda8
Don't allow ENOSYS for fadvise(DONT_NEED)
...
We want to know if it's failing. In case, a different
advise method has to be used.
2016-10-29 08:08:52 +02:00
Andrea Mazzoleni
20e9f7de41
Ignore fadvise if it return ENOSYS
...
This happens in ARM platform because fadvise is
differently implemented by the kernel and glibc
may not support it yet.
2016-10-23 22:03:02 +02:00
Andrea Mazzoleni
9d5bd3846a
Fix reading of disk capacity from smartctl
...
In Windows the separator can be a space.
Like: "User Capacity: 2 000 398 934 016 bytes"
2016-10-13 19:13:18 +02:00