Please take a look at these changes and tell me what you think.
A drop index concurrent with index updates is not fully synchronized at
the serial log level. Index updates can be written to the serial log
after and index has been deleted.
Ideally, SRLUpdateIndex::append() ignores deferred indexes having
indexId == -1, but Index::deleteIndex() sets indexId == -1 *after*
writing to the serial log. This means that pending updates to that same
index could still be written to the serial log after the SRLDeleteIndex
The relationship of DeferredIndex and Index is a bit sketchy. It relies
entirely upon whether a pointer to Index is null and/or whether the
index id is -1. I think this is could be controlled better.
The falcon_online_alter + recovery succeeds on Xeno. I've pushed to PB2
to see how that goes.
|• Request for review: Bug#39678, "Assertion (bdb) fails in IndexRootPage"||Christopher Powers||22 Jan|