diff -Nru flash-kernel-3.106ubuntu13/debian/changelog flash-kernel-3.106ubuntu14/debian/changelog --- flash-kernel-3.106ubuntu13/debian/changelog 2023-02-27 11:53:49.000000000 +0000 +++ flash-kernel-3.106ubuntu14/debian/changelog 2023-03-23 14:12:19.000000000 +0000 @@ -1,3 +1,10 @@ +flash-kernel (3.106ubuntu14) lunar; urgency=medium + + * Handle "not fully installed" kernels differently by quitting instead of + re-triggering to avoid a dpkg trigger cycle (LP: #2011925) + + -- Dave Jones Thu, 23 Mar 2023 14:12:19 +0000 + flash-kernel (3.106ubuntu13) lunar; urgency=medium * Ensure that only kernels in fully "installed" state are considered for diff -Nru flash-kernel-3.106ubuntu13/functions flash-kernel-3.106ubuntu14/functions --- flash-kernel-3.106ubuntu13/functions 2023-02-27 11:53:49.000000000 +0000 +++ flash-kernel-3.106ubuntu14/functions 2023-03-23 14:09:14.000000000 +0000 @@ -1034,14 +1034,12 @@ if [ "$kstatus" != "installed" ]; then echo "flash-kernel: requested kernel ${kvers} is in state ${kstatus}." >&2 if [ -n "$DPKG_RUNNING_VERSION" ]; then - # We're running under dpkg; re-trigger ourselves under the assumption - # that the status will resolve - if dpkg-trigger --no-await flash-kernel; then - echo "flash-kernel: deferring update (trigger activated)" >&2 - exit 0 - else - echo "flash-kernel: deferral failed; proceeding with install" >&2 - fi + # This is a horrid hack; we *should* re-trigger ourselves, but that + # causes dpkg to report a trigger-cycle on some arm64 clouds for + # reasons not fully understood. So we exit cleanly in the vague hope + # that we'll be re-triggered later in the apt run + echo "flash-kernel: quitting cleanly, anticipating a future run" >&2 + exit 0 elif [ "$force" != "yes" ]; then exit 1 fi