Commit dd7fc47
committed
[OVN] Avoid deadlock when cleaning hash ring nodes
This patch avoids the clash of the hash ring cleaning operation and the
API workers by ensuring that the cleaning happens before the nodes for
that host are added to the ring and the connections to the OVSDBs (meaning
no events therefore no SELECTS on the hash ring table for that hostname).
This patch does this by re-using the same hash ring lock that starts
the probing thread. Now, the first worker that acquire the lock is
responsible for cleaning the hash ring for it's own host as well as
starting the probing thread. Subsequently workers only need to register
themselves to the hash ring.
Conflicts:
neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py
Change-Id: Iba73f7944592a003232eb397ba1d4da3dcba5c3a
Closes-Bug: #1990174
Signed-off-by: Lucas Alvares Gomes <[email protected]>
(cherry picked from commit b7b8f7c)1 parent 025f3e3 commit dd7fc47
1 file changed
+16
-9
lines changedLines changed: 16 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | 120 | | |
125 | 121 | | |
126 | 122 | | |
| |||
331 | 327 | | |
332 | 328 | | |
333 | 329 | | |
334 | | - | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
335 | 339 | | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
336 | 343 | | |
337 | 344 | | |
338 | 345 | | |
339 | 346 | | |
340 | 347 | | |
341 | 348 | | |
342 | 349 | | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
343 | 353 | | |
344 | 354 | | |
345 | 355 | | |
| |||
351 | 361 | | |
352 | 362 | | |
353 | 363 | | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
| 364 | + | |
358 | 365 | | |
359 | 366 | | |
360 | 367 | | |
| |||
0 commit comments