[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1056358: bookworm-pu: package needrestart/3.6-4+deb12u1



Control: tags -1 - moreinfo

On 2023-12-02 18:52:39, Adam D. Barratt wrote:
> There doesn't appear to be a debdiff attached.

What is wrong with me.

diff -Nru needrestart-3.6/debian/changelog needrestart-3.6/debian/changelog
--- needrestart-3.6/debian/changelog	2023-05-31 10:47:03.000000000 -0400
+++ needrestart-3.6/debian/changelog	2023-11-15 15:05:37.000000000 -0500
@@ -1,3 +1,9 @@
+needrestart (3.6-4+deb12u1) bookworm; urgency=medium
+
+  * fix microcode check regression on AMD CPUs (Closes: #1013285)
+
+ -- Antoine Beaupré <anarcat@debian.org>  Wed, 15 Nov 2023 15:05:37 -0500
+
 needrestart (3.6-4) unstable; urgency=medium
 
   * Remove leftover conffile 30-pacman with 3.6-4.
diff -Nru needrestart-3.6/debian/patches/05-fix-AMD-ucode-checking-in-non-debug-mode.patch needrestart-3.6/debian/patches/05-fix-AMD-ucode-checking-in-non-debug-mode.patch
--- needrestart-3.6/debian/patches/05-fix-AMD-ucode-checking-in-non-debug-mode.patch	1969-12-31 19:00:00.000000000 -0500
+++ needrestart-3.6/debian/patches/05-fix-AMD-ucode-checking-in-non-debug-mode.patch	2023-11-15 15:05:37.000000000 -0500
@@ -0,0 +1,33 @@
+From b073fb6d9969597173daa8c511a85bae9b03ed37 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@debian.org>
+Date: Wed, 15 Nov 2023 15:20:37 -0500
+Subject: [PATCH] fix AMD ucode checking in non-debug mode
+
+It looks like the assignment when the ucode exist was not
+done *unless* `debug` (`-v`) was set. Therefore, all AMD microcode
+checks were returning UNKNOWN, including in Nagios checks, unless the
+`-v` ("verbose", but actually `debug`) was passed.
+
+Closes: #249
+---
+ perl/lib/NeedRestart/uCode/AMD.pm | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/perl/lib/NeedRestart/uCode/AMD.pm b/perl/lib/NeedRestart/uCode/AMD.pm
+index 638e68d..6daad8f 100644
+--- a/perl/lib/NeedRestart/uCode/AMD.pm
++++ b/perl/lib/NeedRestart/uCode/AMD.pm
+@@ -185,8 +185,8 @@ sub nr_ucode_check_real {
+     if ( exists( $_ucodes->{cpuid}->{$cpuid} ) ) {
+         my $prid = $_ucodes->{cpuid}->{$cpuid};
+         if ( exists( $_ucodes->{prid}->{$prid} ) ) {
+-            $vars{AVAIL} = sprintf( "0x%08x", $_ucodes->{prid}->{$prid} ),
+-		print STDERR "$LOGPREF #$info->{processor} found ucode $vars{AVAIL}\n" if ($debug);
++            $vars{AVAIL} = sprintf( "0x%08x", $_ucodes->{prid}->{$prid} );
++            print STDERR "$LOGPREF #$info->{processor} found ucode $vars{AVAIL}\n" if ($debug);
+ 	}
+     }
+ 
+-- 
+2.39.2
+
diff -Nru needrestart-3.6/debian/patches/06-uCode-fix-uninitialized-value-in-logging-of-processo.patch needrestart-3.6/debian/patches/06-uCode-fix-uninitialized-value-in-logging-of-processo.patch
--- needrestart-3.6/debian/patches/06-uCode-fix-uninitialized-value-in-logging-of-processo.patch	1969-12-31 19:00:00.000000000 -0500
+++ needrestart-3.6/debian/patches/06-uCode-fix-uninitialized-value-in-logging-of-processo.patch	2023-11-15 15:05:37.000000000 -0500
@@ -0,0 +1,30 @@
+From e85bfe33b595b88cc8052a7815d13612ecc2a841 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20B=C3=BChler?= <source@stbuehler.de>
+Date: Sun, 28 May 2023 17:42:28 +0200
+Subject: [PATCH] [uCode] fix uninitialized value in logging of processor index
+
+This got broken in f8c2609f8d5a0e10bd988497b8ea9815a7bb2fa8.
+
+Before that it would have effectively logged
+`$processors{$pid}->{processor}`, but the `processor` entry
+is also the key in `%processors`, i.e. equals `$pid`.
+---
+ perl/lib/NeedRestart/uCode.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/perl/lib/NeedRestart/uCode.pm b/perl/lib/NeedRestart/uCode.pm
+index 6251339..db81375 100644
+--- a/perl/lib/NeedRestart/uCode.pm
++++ b/perl/lib/NeedRestart/uCode.pm
+@@ -148,7 +148,7 @@ sub nr_ucode_check {
+             }
+             $ui->progress_step;
+ 
+-            my $nstate = compare_ucode_versions( $debug, $processors{processor}, @nvars );
++            my $nstate = compare_ucode_versions( $debug, $pid, @nvars );
+             if ( $nstate > $state ) {
+                 ( $state, @vars ) = ( $nstate, @nvars );
+             }
+-- 
+2.39.2
+
diff -Nru needrestart-3.6/debian/patches/07-mark-unavailable-firmware-as-CURRENT.patch needrestart-3.6/debian/patches/07-mark-unavailable-firmware-as-CURRENT.patch
--- needrestart-3.6/debian/patches/07-mark-unavailable-firmware-as-CURRENT.patch	1969-12-31 19:00:00.000000000 -0500
+++ needrestart-3.6/debian/patches/07-mark-unavailable-firmware-as-CURRENT.patch	2023-11-15 15:05:37.000000000 -0500
@@ -0,0 +1,61 @@
+From 0e1ffe8025416a918ddf169f2d858762733d7238 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@debian.org>
+Date: Tue, 21 Nov 2023 10:59:32 -0500
+Subject: [PATCH] mark unavailable firmware as CURRENT
+
+This changes the policy of reporting missing firmware updates as
+"UNKNOWN". Now, if there's no available firmware, we report
+"current". That fixes needrestart on platforms that do not have
+firmware support (#220) or platforms that *are* supported but for
+which a CPU is to new to have an updated firmware available (#149).
+
+It does *not* create a new "unavailable" status (#274) as this maps
+poorly in Nagios reporting, but that is an option that was considered
+here as well.
+
+Closes: #149
+Closes: #274
+Closes: #220
+---
+ perl/lib/NeedRestart/uCode.pm | 23 ++++++++++++++++++-----
+ 1 file changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/perl/lib/NeedRestart/uCode.pm b/perl/lib/NeedRestart/uCode.pm
+index db81375..71144b8 100644
+--- a/perl/lib/NeedRestart/uCode.pm
++++ b/perl/lib/NeedRestart/uCode.pm
+@@ -52,13 +52,26 @@ my $LOGPREF = '[ucode]';
+ sub compare_ucode_versions {
+     my ($debug, $processor, %vars) = @_;
+ 
+-    unless ( exists( $vars{CURRENT} ) && exists( $vars{AVAIL} ) ) {
+-        print STDERR
+-	    "$LOGPREF #$processor did not get current microcode version\n"
+-	    if ( $debug && !exists( $vars{CURRENT} ) );
++    # if no firmware is available for the current CPU, that's
++    # considered up to date. the rationale here is that if we warn on
++    # this, we're actually going to warn for certain new CPUs that
++    # have an up-to-date, built-in firmware without any update. that,
++    # in turn, creates alert fatigue and makes operators more likely
++    # to ignore warnings.
++    unless ( exists( $vars{AVAIL} ) ) {
+         print STDERR
+ 	    "$LOGPREF #$processor did not get available microcode version\n"
+-	    if ( $debug && !exists( $vars{AVAIL} ) );
++	    if ( $debug );
++        return NRM_CURRENT;
++    }
++    # from here on, there is a microcode file available
++    #
++    # if we can't find a microcode firmware for the current CPU,
++    # *that* is a problem.
++    unless ( exists( $vars{CURRENT} )  ) {
++        print STDERR
++            "$LOGPREF #$processor did not get current microcode version\n"
++            if ( $debug);
+ 
+         return NRM_UNKNOWN;
+     }
+-- 
+2.39.2
+
diff -Nru needrestart-3.6/debian/patches/series needrestart-3.6/debian/patches/series
--- needrestart-3.6/debian/patches/series	2023-05-31 10:47:03.000000000 -0400
+++ needrestart-3.6/debian/patches/series	2023-11-15 15:05:37.000000000 -0500
@@ -2,3 +2,6 @@
 02-bash-term-in-posix-shell.diff
 03-ignore-serial-getty.diff
 04-vm-detection.diff
+05-fix-AMD-ucode-checking-in-non-debug-mode.patch
+06-uCode-fix-uninitialized-value-in-logging-of-processo.patch
+07-mark-unavailable-firmware-as-CURRENT.patch

Reply to: