{"log.level":"info","@timestamp":"2023-12-08T13:47:25.250Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_REQUESTED","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:25.250Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":136},"message":"Upgrading agent","log":{"source":"elastic-agent"},"version":"8.11.2-SNAPSHOT","source_uri":"file:///home/ubuntu/agent/.agent-testing/artifact","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:25.250Z","log.origin":{"file.name":"upgrade/cleanup.go","file.line":22},"message":"Cleaning up non-matching downloaded versions","log":{"source":"elastic-agent"},"version":"8.12.0","downloads.path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/downloads","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:25.250Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_DOWNLOADING","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:25.250Z","log.origin":{"file.name":"upgrade/step_download.go","file.line":85},"message":"Using local upgrade artifact","log":{"source":"elastic-agent"},"version":"8.11.2-SNAPSHOT","drop_path":"/home/ubuntu/agent/.agent-testing/artifact","target_path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/downloads","install_path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/install","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:25.697Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_EXTRACTING","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/step_unpack.go","file.line":42},"message":"Unpacked upgrade artifact","log":{"source":"elastic-agent"},"version":"8.11.2-SNAPSHOT","file.path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/downloads/elastic-agent-8.11.2-SNAPSHOT-linux-arm64.tar.gz","hash":"1c21b0","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":280},"message":"Copying action store","log":{"source":"elastic-agent"},"new_home_path":"/opt/Elastic/Agent/data/elastic-agent-1c21b0","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":284},"message":"Copying action store path","log":{"source":"elastic-agent"},"from":"/opt/Elastic/Agent/data/elastic-agent-e3c069/action_store.yml","to":"/opt/Elastic/Agent/data/elastic-agent-1c21b0/action_store.yml","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":284},"message":"Copying action store path","log":{"source":"elastic-agent"},"from":"/opt/Elastic/Agent/data/elastic-agent-e3c069/state.yml","to":"/opt/Elastic/Agent/data/elastic-agent-1c21b0/state.yml","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":284},"message":"Copying action store path","log":{"source":"elastic-agent"},"from":"/opt/Elastic/Agent/data/elastic-agent-e3c069/state.enc","to":"/opt/Elastic/Agent/data/elastic-agent-1c21b0/state.enc","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.888Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":306},"message":"Copying run directory","log":{"source":"elastic-agent"},"new_run_path":"/opt/Elastic/Agent/data/elastic-agent-1c21b0/run","old_run_path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/run","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.891Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":402},"message":"ignoring error: failed to copy \"/opt/Elastic/Agent/data/elastic-agent-e3c069/run\" to \"/opt/Elastic/Agent/data/elastic-agent-1c21b0/run\": lstat /opt/Elastic/Agent/data/elastic-agent-e3c069/run: no such file or directory","log":{"source":"elastic-agent"},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.891Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_REPLACING","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.891Z","log.origin":{"file.name":"upgrade/step_relink.go","file.line":42},"message":"Changing symlink","log":{"source":"elastic-agent"},"symlink_path":"/opt/Elastic/Agent/elastic-agent","new_path":"/opt/Elastic/Agent/data/elastic-agent-1c21b0/elastic-agent","prev_path":"/opt/Elastic/Agent/elastic-agent.prev","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.893Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_WATCHING","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.893Z","log.origin":{"file.name":"upgrade/step_mark.go","file.line":131},"message":"Writing upgrade marker file","log":{"source":"elastic-agent"},"file.path":"/opt/Elastic/Agent/data/.update-marker","hash":"1c21b0","prev_hash":"e3c069","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.893Z","log.origin":{"file.name":"upgrade/step_mark.go","file.line":146},"message":"Updating active commit","log":{"source":"elastic-agent"},"file.path":"/opt/Elastic/Agent/.elastic-agent.active.commit","hash":"1c21b0","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.894Z","log.origin":{"file.name":"upgrade/rollback.go","file.line":126},"message":"Starting upgrade watcher","log":{"source":"elastic-agent"},"path":"/opt/Elastic/Agent/elastic-agent","args":["/opt/Elastic/Agent/elastic-agent","watch","--path.config","/opt/Elastic/Agent","--path.home","/opt/Elastic/Agent"],"env":[],"dir":"","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.894Z","log.origin":{"file.name":"upgrade/rollback.go","file.line":133},"message":"Upgrade Watcher invoked","log":{"source":"elastic-agent"},"agent.upgrade.watcher.process.pid":24106,"agent.process.pid":24072,"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.894Z","log.origin":{"file.name":"upgrade/rollback.go","file.line":121},"message":"releasing watcher 24106","log":{"source":"elastic-agent"},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.894Z","log.origin":{"file.name":"upgrade/upgrade.go","file.line":217},"message":"Removing downloads directory","log":{"source":"elastic-agent"},"file.path":"/opt/Elastic/Agent/data/elastic-agent-e3c069/downloads","ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.913Z","log.origin":{"file.name":"coordinator/coordinator.go","file.line":500},"message":"updated upgrade details","log":{"source":"elastic-agent"},"upgrade_details":{"target_version":"8.11.2-SNAPSHOT","state":"UPG_RESTARTING","metadata":{}},"ecs.version":"1.6.0"}
{"log.level":"info","@timestamp":"2023-12-08T13:47:58.914Z","log.origin":{"file.name":"cmd/run.go","file.line":303},"message":"reexec shutdown channel triggered","log":{"source":"elastic-agent"},"ecs.version":"1.6.0"}
First observed in https://buildkite.com/elastic/elastic-agent/builds/5460#018c4990-62ec-4dc1-a9c0-81953d923d80. One of the package version tests failed because the
elastic-agent ugpradecommand exited with an EOF error.However the upgrade had actually started looking at the agent logs:
If we look at the log timestamps in Buildkite for when the failure occurred:
We see the agent reexec-ed at
2023-12-08T13:47:58.914and theelastic-agent upgradeerror occurred later at2023-12-08 08:58:19(the timezones don't match the the minutes and second are accurate).It seems as if the agent re-execed before responding to the
elastic-agent upgradecommand. We can either fix that or makeelastic-agent upgradeasynchronous and expect users and our test to watch upgrade progress through theelastic-agent statuscommand.