etcd server fails to start after upgrade from 2.2 to 3.2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
etcd (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Ubuntu 16.04 includes etcd 2.2.5+dfsg-1ubuntu1
Ubuntu 18.04 includes etcd 3.2.17+dfsg-1
So an upgrade from 16.04 to 18.04 involves a direct upgrade from etcd 2.2 to 3.2.
According to the docs, this is not supported.
And indeed it doesn't work.
After the upgrade etcd server refuses to start:
May 27 13:21:06 hims systemd[1]: Starting etcd - highly-available key value store...
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_ADVERTISE_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_DATA_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_INITIAL_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_INITIAL_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_INITIAL_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_INITIAL_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_LISTEN_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_LISTEN_
May 27 13:21:06 hims etcd[15185]: recognized and used environment variable ETCD_NAME=
May 27 13:21:06 hims etcd[15185]: etcd Version: 3.2.17
May 27 13:21:06 hims etcd[15185]: Git SHA: Not provided (use ./build instead of go build)
May 27 13:21:06 hims etcd[15185]: Go Version: go1.10
May 27 13:21:06 hims etcd[15185]: Go OS/Arch: linux/amd64
May 27 13:21:06 hims etcd[15185]: setting maximum number of CPUs to 24, total number of available CPUs is 24
May 27 13:21:06 hims etcd[15185]: the server is already initialized as member before, starting as etcd member...
May 27 13:21:06 hims etcd[15185]: listening for peers on http://
May 27 13:21:06 hims etcd[15185]: listening for client requests on 0.0.0.0:2379
May 27 13:21:06 hims etcd[15185]: recovered store from snapshot at index 147977273
May 27 13:21:06 hims etcd[15185]: recovering backend from snapshot error: database snapshot file path error: snap: snapshot file doesn't exist
May 27 13:21:06 hims etcd[15185]: panic: recovering backend from snapshot error: database snapshot file path error: snap: snapshot file doesn't exist
May 27 13:21:06 hims etcd[15185]: panic: runtime error: invalid memory address or nil pointer dereference
May 27 13:21:06 hims etcd[15185]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0xb3ad00]
May 27 13:21:06 hims etcd[15185]: goroutine 1 [running]:
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: panic(0xd38d20, 0xc4207960f0)
May 27 13:21:06 hims etcd[15185]: /usr/lib/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: github.
May 27 13:21:06 hims etcd[15185]: /build/
May 27 13:21:06 hims etcd[15185]: main.main()
May 27 13:21:06 hims etcd[15185]: /build/
If I clear out /var/lib/etcd and attempt to re-join the cluster, I get the error message:
May 27 15:22:48 hims etcd[38731]: the running cluster version(2.2.0) is lower than the minimal cluster version(3.0.0) supported
May 27 15:22:48 hims etcd[38731]: incompatible with current running cluster
So it is necessary at least to upgrade the whole cluster from 2.2 to 3.0 (possibly via 2.3) before upgrading nodes to 3.2.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: etcd-server 3.2.17+dfsg-1
ProcVersionSign
Uname: Linux 4.4.0-148-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.6
Architecture: amd64
Date: Mon May 27 16:09:30 2019
InstallationDate: Installed on 2018-04-04 (418 days ago)
InstallationMedia: Ubuntu-Server 16.04.3 LTS "Xenial Xerus" - Release amd64 (20170801)
SourcePackage: etcd
UpgradeStatus: Upgraded to bionic on 2019-05-27 (0 days ago)
modified.
mtime.conffile.
I just checked the non-LTS releases:
yakkety is also 2.2.5
zesty is 3.1
3.1 also insists of a minimum version of 3.0.
So there doesn't seem to be a possible upgrade path with ubuntu packages.