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');
+ }
}