]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: list: fix LIST_POP_LOCKED's removal of the last pointer
authorWilly Tarreau <w@1wt.eu>
Thu, 28 Feb 2019 14:55:18 +0000 (15:55 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 28 Feb 2019 14:59:31 +0000 (15:59 +0100)
commit285192564d2a7d6eff077d91758b603ba7f2b10a
tree0740abf54ac9c78b5548c9ea5aa228d109007d5c
parentbd20ad58748eafbded464f574ed84dbbdad31e8d
BUG/MEDIUM: list: fix LIST_POP_LOCKED's removal of the last pointer

There was a typo making the last updated pointer be the pre-last element's
prev instead of the last's prev element. It didn't show up during early
tests because the contention is very rare on this one  and it's implicitly
recovered when updating the pointers to go to the next element, but it was
clearly visible in the listener_accept() tests by having all threads block
on LIST_POP_LOCKED() with n==p==LLIST_BUSY.

This will have to be backported if commit a8434ec14 ("MINOR: lists:
Implement locked variations.") is backported.
include/common/mini-clist.h