canonical / charm-sysconfig

A subordinate charm to apply system settings like grub configurations or systemd configurations.
Apache License 2.0
0 stars 5 forks source link

false-positive reboot required warning: update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg #56

Closed nobuto-m closed 2 months ago

nobuto-m commented 2 months ago

Similar to: https://bugs.launchpad.net/charm-sysconfig/+bug/2012581

In the bug report above, there were some improvements done. However, it looks like the charm has a race condition. It's the same Juju application in the same model thus the charm config is identical across all units. However, the status is different.

sysconfig/5 blocked idle update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg
sysconfig/4 active idle ready 
sysconfig/0* active idle ready 
sysconfig/12 blocked idle update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg
sysconfig/10 blocked idle update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg
sysconfig/6 active idle ready 
sysconfig/11 active idle ready 
sysconfig/3 active idle ready 
sysconfig/2 blocked idle update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg
sysconfig/1 active idle ready 
sysconfig/7 active idle ready 
sysconfig/8 active idle ready 
sysconfig/9 active idle ready   

Of course, the file is identical across all units.

$ juju exec -u sysconfig/leader -- cat /etc/default/grub.d/90-sysconfig.cfg
# Juju generated file - do not edit manually

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

$ juju exec -a sysconfig -- sha256sum /etc/default/grub.d/90-sysconfig.cfg
sysconfig/0:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/1:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/2:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/3:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/4:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/5:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/6:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/7:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/8:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/9:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/10:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/11:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg

sysconfig/12:
cc74fb0a9a616bbb4c5ca94a89a749d3374b55481614f8632ca4cb669ea0d434  /etc/default/grub.d/90-sysconfig.cfg
nobuto-m commented 2 months ago
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log Reactive main running for hook update-status
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log Initializing Apt Layer
unit-sysconfig-5: 10:05:54 DEBUG unit.sysconfig/5.juju-log tracer>
tracer: starting handler dispatch, 37 flags set
tracer: set flag apt.installed.cpufrequtils
tracer: set flag apt.installed.python3-yaml
tracer: set flag config.default.config-flags
tracer: set flag config.default.cpu-affinity-range
tracer: set flag config.default.cpu-range
tracer: set flag config.default.default-hugepagesz
tracer: set flag config.default.enable-container
tracer: set flag config.default.enable-iommu
tracer: set flag config.default.enable-pti
tracer: set flag config.default.enable-tsx
tracer: set flag config.default.extra_packages
tracer: set flag config.default.grub-config-flags
tracer: set flag config.default.hugepages
tracer: set flag config.default.hugepagesz
tracer: set flag config.default.install_keys
tracer: set flag config.default.install_sources
tracer: set flag config.default.irqbalance-banned-cpus
tracer: set flag config.default.isolcpus
tracer: set flag config.default.kernel-version
tracer: set flag config.default.package_status
tracer: set flag config.default.raid-autodetection
tracer: set flag config.default.reservation
tracer: set flag config.default.resolved-cache-mode
tracer: set flag config.default.sysctl
tracer: set flag config.default.systemd-config-flags
tracer: set flag config.default.update-grub
tracer: set flag config.set.governor
tracer: set flag config.set.package_status
tracer: set flag config.set.reservation
tracer: set flag endpoint.juju-info.changed
tracer: set flag endpoint.juju-info.changed.egress-subnets
tracer: set flag endpoint.juju-info.changed.ingress-address
tracer: set flag endpoint.juju-info.changed.private-address
tracer: set flag endpoint.juju-info.joined
tracer: set flag juju-info.available
tracer: set flag juju-info.connected
tracer: set flag sysconfig.installed
unit-sysconfig-5: 10:05:54 DEBUG unit.sysconfig/5.juju-log tracer>
tracer: hooks phase, 1 handlers queued
tracer: ++   queue handler reactive/sysconfig.py:161:update_status
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log Invoking reactive handler: reactive/sysconfig.py:161:update_status
unit-sysconfig-5: 10:05:54 DEBUG unit.sysconfig/5.juju-log Checking if an update to /boot/grub/grub.cfg is available.
unit-sysconfig-5: 10:05:54 DEBUG unit.sysconfig/5.juju-log Found available grub updates. You can run `juju run-action <sysconfig-unit> update-grub` to update grub.
unit-sysconfig-5: 10:05:54 DEBUG unit.sysconfig/5.juju-log tracer>
tracer: main dispatch loop, 2 handlers queued
tracer: ++   queue handler hooks/relations/juju-info/requires.py:19:changed:juju-info
tracer: ++   queue handler reactive/apt.py:50:ensure_package_status
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log Invoking reactive handler: reactive/apt.py:50:ensure_package_status
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log Invoking reactive handler: hooks/relations/juju-info/requires.py:19:changed:juju-info
unit-sysconfig-5: 10:05:54 INFO unit.sysconfig/5.juju-log status-set: blocked: update-grub and reboot required. Changes in: /etc/default/grub.d/90-sysconfig.cfg
unit-sysconfig-5: 10:05:55 INFO juju.worker.uniter.operation ran "update-status" hook (via explicit, bespoke hook script)
aieri commented 2 months ago

duplicate of #40