Skip to content

Fix rcu_cmpxchg_pointer() usage in addglue()

Ondřej Surý requested to merge 4691-fix-rcu_cmpxchg_pointer-usage into main

When adding glue, we were using rcu_cmpxchg_pointer() incorrectly and the header->glue_list would be always set to NULL and the glue was never added to the header.

This could lead to adding the header to version->glue_stack repeatedly which in turn caused assertion failure in the liburcu.

Correctly switch the old and new values in the rcu_cmpxchg_pointer() invocation - it is different than the stdatomic API.

Closes #4691 (closed)

Merge request reports