Problem
The current Puppet manifest in profile::elastic::service stops unattended-upgrades.service, but this only controls the shutdown hook — not the actual upgrade process. Unattended upgrades continue to run via apt-daily-upgrade.timer and the config in /etc/apt/apt.conf.d/20auto-upgrades.
service { 'unattended-upgrades.service':
ensure => stopped,
}
Impact
On 2026-02-27, unattended-upgrade upgraded libstdc++6 and libgcc-s1 on production ES nodes, causing Elasticsearch to restart across the cluster. The timeline:
- 06:11 —
ip-10-2-3-206 went down
- 06:21 —
ip-10-2-3-217 bounced (removed then re-added to cluster)
- 06:24:21 —
unattended-upgrade started on ip-10-2-2-111 (gcc-13 packages)
- 06:24:34-06:24:45 — GC pressure escalating (267ms → 316ms → 348ms per second)
- 06:24:45 —
unattended-upgrade upgraded libstdc++6, libgcc-s1 (core shared libraries used by ES JVM/ML controller)
- 06:24:56 — Elasticsearch began stopping
All three ES nodes were affected in sequence, appearing as a rolling restart.
Evidence from apt history.log:
Start-Date: 2026-02-27 06:24:45
Commandline: /usr/bin/unattended-upgrade
Upgrade: libstdc++6:amd64, libgcc-s1:amd64, ...
End-Date: 2026-02-27 06:24:52
The apt-daily-upgrade.timer is active and ran at 06:23:48, and /etc/apt/apt.conf.d/20auto-upgrades has Unattended-Upgrade "1".
Suggested Fix
Replace the ineffective service stop with:
# Disable the actual upgrade timer
service { 'apt-daily-upgrade.timer':
ensure => stopped,
enable => false,
}
# Override apt config to disable unattended upgrades
file { '/etc/apt/apt.conf.d/20auto-upgrades':
ensure => file,
content => "APT::Periodic::Update-Package-Lists \"1\";\nAPT::Periodic::Unattended-Upgrade \"0\";\n",
}
This keeps package list updates (so you can see what's available) but prevents automatic installation.
Affected Files
modules/profile/manifests/elastic/service.pp
environments/development/modules/profile/manifests/elastic/service.pp
environments/sandbox/modules/profile/manifests/elastic/service.pp
Affected Nodes
All ES nodes (ip-10-2-2-111, ip-10-2-3-217, ip-10-2-3-206 in production).
Problem
The current Puppet manifest in
profile::elastic::servicestopsunattended-upgrades.service, but this only controls the shutdown hook — not the actual upgrade process. Unattended upgrades continue to run viaapt-daily-upgrade.timerand the config in/etc/apt/apt.conf.d/20auto-upgrades.Impact
On 2026-02-27,
unattended-upgradeupgradedlibstdc++6andlibgcc-s1on production ES nodes, causing Elasticsearch to restart across the cluster. The timeline:ip-10-2-3-206went downip-10-2-3-217bounced (removed then re-added to cluster)unattended-upgradestarted onip-10-2-2-111(gcc-13 packages)unattended-upgradeupgradedlibstdc++6,libgcc-s1(core shared libraries used by ES JVM/ML controller)All three ES nodes were affected in sequence, appearing as a rolling restart.
Evidence from
apt history.log:The
apt-daily-upgrade.timeris active and ran at06:23:48, and/etc/apt/apt.conf.d/20auto-upgradeshasUnattended-Upgrade "1".Suggested Fix
Replace the ineffective service stop with:
This keeps package list updates (so you can see what's available) but prevents automatic installation.
Affected Files
modules/profile/manifests/elastic/service.ppenvironments/development/modules/profile/manifests/elastic/service.ppenvironments/sandbox/modules/profile/manifests/elastic/service.ppAffected Nodes
All ES nodes (ip-10-2-2-111, ip-10-2-3-217, ip-10-2-3-206 in production).