grenade-skip-level-always because of different api versions used by default
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
etcd3gw |
Fix Released
|
High
|
Takashi Kajinami | ||
tooz |
Fix Released
|
High
|
Takashi Kajinami |
Bug Description
Since tooz 4.3.0 was released, grenade-
The root cause is that cinder fails to connect the etcd server because of the following error.
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder File "/usr/local/
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder self._membershi
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder File "/usr/local/
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder result = self.post(
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder File "/usr/local/
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder raise exceptions.
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder etcd3gw.
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: ERROR cinder
2023-11-17 06:29:24.781 | Nov 17 06:29:20 np0035791906 <email address hidden>[169832]: unable to load app 0 (mountpoint='') (callable not found or import error)
When the node is deployed initially it is deployed with etcd v3.3.12.
The coordination_url parameter in cinder.conf does not contain api_version but tooz 3.2.0 used v1alpha by default which is available in etcd v3.3.12.
The problem arises when all components, including cinder are upgraded while etcd is kept at v3.3.12.
The coordination_url in cinder does not contain api_version at this point.
However the tooz 4.3.0 uses v3 API by default but this is not available in etcd v3.3.12 and eventually results in the above failure.
Although we added a release note to explain this requirement during upgrade, it's much better if we can implement some logic to avoid needing operators to update the config file.
Changed in python-tooz: | |
importance: | Undecided → High |
assignee: | nobody → Takashi Kajinami (kajinamit) |
Changed in python-etcd3gw: | |
assignee: | nobody → Takashi Kajinami (kajinamit) |
importance: | Undecided → High |
Changed in python-etcd3gw: | |
status: | New → In Progress |
description: | updated |
Changed in python-tooz: | |
status: | New → In Progress |
Reviewed: https:/ /review. opendev. org/c/openstack /etcd3gw/ +/901244 /opendev. org/openstack/ etcd3gw/ commit/ e5faa53eada8b17 795b2e68fdffb22 6aaceb0f92
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit e5faa53eada8b17 795b2e68fdffb22 6aaceb0f92
Author: Takashi Kajinami <email address hidden>
Date: Fri Nov 17 22:53:59 2023 +0900
Discover API version automatically
etcd changed API version from v3alpha to v3beta, then v3, and because
of transition available api versions are different according to
the etcd server available.
This change implements the mechanism to detect the current api version
according to the etcd version obtained via the version API. Discovery
is executed at the first request and the result is stored.
Closes-Bug: #2043810 5d2b6e62f8f48af d78a116fbea
Change-Id: I08bc429dd8c59e