BUG/MAJOR: threads/lb: fix missing unlock on consistent hash LB
If no matching node was found, the function was left without unlocking
the tree.
diff --git a/src/lb_chash.c b/src/lb_chash.c
index 32d7d1d..70a455d 100644
--- a/src/lb_chash.c
+++ b/src/lb_chash.c
@@ -388,9 +388,11 @@
node = eb32_first(root);
p->lbprm.chash.last = node;
- if (!node)
+ if (!node) {
/* no node is available */
- return NULL;
+ srv = NULL;
+ goto out;
+ }
/* Note: if we came here after a down/up cycle with no last
* pointer, and after a redispatch (srvtoavoid is set), we