Description
This code for indexing partition when building index in 3.0 is:
SinglePartitionReadCommand cmd = SinglePartitionReadCommand.fullPartitionRead(cfs.metadata, FBUtilities.nowInSeconds(), key); try (OpOrder.Group opGroup = cfs.keyspace.writeOrder.start(); UnfilteredRowIterator partition = cmd.queryMemtableAndDisk(cfs, opGroup)) { cfs.indexManager.indexPartition(partition, opGroup, indexes, cmd.nowInSec()); }
which is clearly incorrect as the OpOrder that queryMemtableAndDisk expects is the one from cfs.readOrdering, not the one for writes on the keyspace.
This wasn't a problem prior to 3.0 as the similar code was using the pager, which ended up properly taking the read OpOrder internally but I messed this up in CASSANDRA-8099.
Thanks to Stefania for pointing that out.