On Wed, Nov 15, 2023 at 5:07 PM Alexander Korotkov <aekorot...@gmail.com> wrote: > > On Wed, Nov 15, 2023 at 8:02 AM Andres Freund <and...@anarazel.de> wrote: > > The kinda because there are callers to bms_(add|del)_members() that pass the > > same bms as a and b, which only works if the reallocation happens "late". > > +1, > Neat idea. I'm willing to work on this. Will propose the patch soon.
It's here. New REALLOCATE_BITMAPSETS forces bitmapset reallocation on each modification. I also find it useful to add assert to all bitmapset functions on argument NodeTag. This allows you to find access to hanging pointers earlier. I had the feeling of falling into a rabbit hole while debugging all the cases of failure with this new option. With the second patch regressions tests pass. Any thoughts? ------ Regards, Alexander Korotkov
0001-REALLOCATE_BITMAPSETS-manual-compile-time-option-v1.patch
Description: Binary data
0002-Make-regression-tests-pass-with-REALLOCATE_BITMAP-v1.patch
Description: Binary data