Hello,
We are trying to use `IngestExternalFiles` for bulk workloads, but run into some funky assertion errors in tests.
Glancing over the source, there is an obvious bug in `consumed_seqno_count` because the debug build alters its behavior. Debug build include `ConsumedSequenceNumbersCount` from all IngestionJob, but the prod build only include the first one. [1]
It is also questionable whether this assertion make sense any more. Skimping through the source code (AssignLevelAndSeqnoForIngestedFile in particular), a seqno can be consumed for various reasons:
- overlapping range.
- snapshot_consistent && a snapshot created.
There is hardly any reason for the invariant of either all or none ingestion jobs consume seqno. [2]
We ran some experiments and rocksdb crash afterwards due to failed `force_consistency_checks` [3]
Can someone familiar with the `IngestExternalFiles` API comment on whether the bug/assertion can be fixed and if the potentially impact of potentially wrong(duplicated?) `seqno`?
Thanks in advance!
-
Fred Zhang