Skip to content

0.9.0a1

@eboasson eboasson tagged this 23 Nov 16:46
Instead of implementing a "proper" GC that frees the memory shortly
after it becomes safe to do so, the concurrent hopscotch test defers the
freeing until the very of the test. It did this by overwriting the first
few bytes of the block with a singly linked list, even though the data
may still be used afterward.

The first few bytes of the block are the size of the bucket array, and
overwriting with some pointer means a concurrent lookup can end up
calculating a bucket index that is way outside the array, leading to a
segmentation fault.

This is the suspected cause of the observed occasional failure of this
test in the CI.

Signed-off-by: Erik Boasson <eb@ilities.com>
Assets 2
Loading