[pve-devel] [PATCH storage] fix #3203: report smart status correctly
Dominik Csapak
d.csapak at proxmox.com
Tue Mar 2 09:34:41 CET 2021
On 3/1/21 14:56, Oguz Bektas wrote:
> if the -a option isn't passed, -H might report a failing disk as
> 'PASSED' even when the disk might be in a corrupted state.
>
> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
> ---
> PVE/Diskmanage.pm | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
> index 64bb813..d3c3365 100644
> --- a/PVE/Diskmanage.pm
> +++ b/PVE/Diskmanage.pm
> @@ -95,8 +95,9 @@ sub get_smart_data {
> or die "failed to get nvme controller device for $disk\n");
> }
>
> - my $cmd = [$SMARTCTL, '-H'];
> - push @$cmd, '-A', '-f', 'brief' if !$healthonly;
> + my $cmd = [$SMARTCTL];
> + push @$cmd, '-H' if $healthonly;
> + push @$cmd, '-a', '-A', '-f', 'brief' if !$healthonly;
> push @$cmd, $disk;
>
> eval {
>
after looking at our code, this patch does not solve the issue the
user in #3203 has
we purposely ignore the return value of smartctl except
for sever smartctl errors (such as device open failed or faulty command
line) and parse the status from the text itself
but the text (PASSED) does not change regardless if -H is given or not
the real fix for the issue is to start parsing the smart errors
separately and show them to the user somehow
while doing this, we should change our parser to use the '--json' flag
of smartcl
More information about the pve-devel
mailing list