Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package monitoring-plugins-smart for 
openSUSE:Factory checked in at 2026-04-22 16:56:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/monitoring-plugins-smart (Old)
 and      /work/SRC/openSUSE:Factory/.monitoring-plugins-smart.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "monitoring-plugins-smart"

Wed Apr 22 16:56:29 2026 rev:17 rq:1348507 version:6.18.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/monitoring-plugins-smart/monitoring-plugins-smart.changes
        2025-12-18 18:35:22.519501620 +0100
+++ 
/work/SRC/openSUSE:Factory/.monitoring-plugins-smart.new.11940/monitoring-plugins-smart.changes
     2026-04-22 16:56:30.916349994 +0200
@@ -1,0 +2,7 @@
+Tue Apr 21 12:17:38 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 6.18.0
+  * Improving check_smart.pl reliability by adding proper command
+    path handling (for sudo command) and NVMe I/O error detection.
+
+-------------------------------------------------------------------

Old:
----
  check_smart-6.17.0.tar.gz

New:
----
  check_smart-6.18.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ monitoring-plugins-smart.spec ++++++
--- /var/tmp/diff_new_pack.PeRpbX/_old  2026-04-22 16:56:31.956393043 +0200
+++ /var/tmp/diff_new_pack.PeRpbX/_new  2026-04-22 16:56:31.960393208 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           monitoring-plugins-smart
-Version:        6.17.0
+Version:        6.18.0
 Release:        0
 Summary:        Check SMART status of a given disk
 License:        GPL-3.0-or-later

++++++ check_smart-6.17.0.tar.gz -> check_smart-6.18.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_smart-6.17.0/check_smart.pl 
new/check_smart-6.18.0/check_smart.pl
--- old/check_smart-6.17.0/check_smart.pl       2025-12-15 19:16:02.000000000 
+0100
+++ new/check_smart-6.18.0/check_smart.pl       2026-04-21 13:58:20.000000000 
+0200
@@ -66,13 +66,14 @@
 # Jun 12, 2025: Alexander Kanevskiy - Add usbjmicron devices (6.16.0)
 # Dec 15, 2025: Florian Sager - Fix evaluating ATA Error Count: 0 as a warning 
(6.17.0)
 # Dec 15, 2025: Philippe Beaumont - Add areca devices (6.17.0)
+# Apr 21, 2026: Claudio Kuenzler - Fix sys path for sudo command. Detect NVME 
input/output error (6.18.0)
 
 use strict;
 use Getopt::Long;
 use File::Basename qw(basename);
 
 my $basename = basename($0);
-my $revision = '6.17.0';
+my $revision = '6.18.0';
 
 # Standard Nagios return codes
 my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
@@ -117,6 +118,24 @@
         exit $ERRORS{'OK'};
 }
 
+my $sudo_command = '';
+my $smart_command = undef;
+
+foreach my $path (@sys_path) {
+       $sudo_command = "$path/sudo" if ($sudo_command eq '' && -x 
"$path/sudo");
+       $smart_command = "$path/smartctl" if (!defined($smart_command) && -x 
"$path/smartctl");
+       last if ($sudo_command ne '' && defined($smart_command));
+}
+
+if (!defined($smart_command)) {
+       print "UNKNOWN - Could not find executable smartctl in " . join(", ", 
@sys_path) . "\n";
+       exit $ERRORS{'UNKNOWN'};
+}
+
+if ($sudo_command ne '') {
+       $smart_command = "$sudo_command $smart_command";
+}
+
 my ($device, $interface) = qw// // '';
 if ($opt_d || $opt_g ) {
         unless($opt_i){
@@ -211,18 +230,6 @@
     exit $ERRORS{'UNKNOWN'};
 }
 
-my $smart_command = undef;
-foreach my $path (@sys_path) {
-       if (-x "$path/smartctl") {
-               $smart_command = "sudo $path/smartctl";
-               last;
-       }
-}
-
-if (!defined($smart_command)) {
-       print "UNKNOWN - Could not find executable smartctl in " . join(", ", 
@sys_path) . "\n";
-       exit $ERRORS{'UNKNOWN'};
-}
 
 my $exit_status = 'OK';
 my $exit_status_local = 'OK';
@@ -402,6 +409,11 @@
                                $serial =~ s/^\s+|\s+$//g;
                                warn "(debug) found serial number $serial\n\n" 
if $opt_debug;
                        }
+                       if($line =~ /NVME_IOCTL_ADMIN_CMD: Input\/output 
error/){
+                               warn "(debug) NVMe I/O error 
detected:\n$line\n\n" if $opt_debug;
+                               push(@error_messages, 'NVMe I/O error (possible 
drive failure)');
+                               escalate_status('CRITICAL');
+                       }
 
                }
 

Reply via email to