Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> The bug only affected fsync/forget requests that are forwarded from
> backends, not the ones that bgwriter puts into the hash table itself.
Oh, of course. So the actual sequence of events was:
* bgwriter queues an fsync request for a FSM fork, after writing a dirty FSM buffer.* backend drops table, sends
forgetrequest for FSM fork, which the bug converts into an extra forget for the main fork.* at checkpoint, we got
trouble.
> I noted that kudu has a small shared_buffers setting, 5.6 MB, compared to
> most buildfarm members, which might explain different behavior wrt.
> which buffers are written by backends and which are written by bgwriter.
Yup, that must have been the determining factor. That would also
explain a certain amount of nondeterminism in the bug's manifestation,
which also squares with the buildfarm observations.
Okay, I feel better now.
regards, tom lane