driver-agent's driver_get method may fail with a timeout when the DB is really busy
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
octavia |
Fix Released
|
Medium
|
Unassigned |
Bug Description
3rd party providers sometimes need to fetch Octavia objects through the dedicated socket.
But when the DB server is really loaded, it may take too much time to get the objects and their children from the DB (there are some probably unnecessary recursive conversions from the DB objects to dicts)
(it happened during testing of the ovn-octavia-
In those cases, a socket.timeout exception is raised in the Octavia API service
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
or: An unknown driver error occurred.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: ERROR wsme.api [None req-0f70cc56-
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: Traceback (most recent call last):
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: return self._send(
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: response = self._recv(sock)
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: char = sock.recv(1)
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: socket.timeout: timed out
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: The above exception was the direct cause of the following exception:
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: Traceback (most recent call last):
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: return driver_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: subnet_id, subnet_cidr = self._ovn_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: pool = self._octavia_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: data = self._get_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: raise driver_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: octavia_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: During handling of the above exception, another exception occurred:
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: Traceback (most recent call last):
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/usr/local/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: result = f(self, *args, **kwargs)
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: lock_session.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/usr/local/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: self.force_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/usr/local/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: raise self.value
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: driver_
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: File "/opt/stack/
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: raise exceptions.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: octavia.
Aug 24 02:09:10 gthiemon-devstack <email address hidden>[518382]: : octavia.
And also in the driver-agent:
Aug 24 02:09:11 gthiemon-devstack octavia-
Aug 24 02:09:11 gthiemon-devstack octavia-
Aug 24 02:09:11 gthiemon-devstack octavia-
Aug 24 02:09:11 gthiemon-devstack octavia-
Aug 24 02:09:11 gthiemon-devstack octavia-
Aug 24 02:09:11 gthiemon-devstack octavia-
Changed in octavia: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in octavia: | |
status: | Confirmed → In Progress |
Reviewed: https:/ /review. opendev. org/c/openstack /octavia- lib/+/892417 /opendev. org/openstack/ octavia- lib/commit/ 2a84a218ef1f683 d5584784b7d9607 e7453b0729
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit 2a84a218ef1f683 d5584784b7d9607 e7453b0729
Author: Michael Johnson <email address hidden>
Date: Wed Aug 23 00:13:39 2023 +0000
Fix a possible receive timeout
This patch fixes a possible receive timeout caused by a slow response from the
driver agent. For example if the database is very slow.
Closes-Bug: #2032890
Change-Id: I9079030a5fef9d c44da242adab3c5 68666777451