Enum StorageIntegrityIssueKind
Class of consistency violation surfaced by RunStorageIntegrityCheck(). Every value names an invariant that must hold across a healthy engine — a non-zero issue list is a hard durability / structural bug, not a warning.
public enum StorageIntegrityIssueKind : byte
Fields
ChainDirectoryMismatch = 2Typhon.Engine.Internals.LogicalSegment<TStore>'s forward header chain (via
LogicalSegmentNextRawDataPBID) reaches a different page count than the persisted Page Directory enumerates. Forward-chain canon is on each page header; Page Directory canon is on the root page's raw-data section. If they disagree, one of the two writes lost durability during a Grow.ChunkSegmentCapacity = 3Typhon.Engine.Internals.ChunkBasedSegment<TStore>'s computed capacity (
ChunkCapacity) ≠AllocatedChunkCount + FreeChunkCount. The segment's chunk free-list desynced from the chunk-occupancy bitmaps on its pages.ClusterVisibilitySummaryUnsound = 4A cluster's in-memory MVCC visibility summary claims MORE visibility than the entities it holds justify — its
ClusterMaxBornTsnis below an entity's actualBornTSN, or itsClusterMaxDiedTsnis below aDiedTSNan entity carries. The cluster-granularity gate the SoA scan uses to skip its per-entity EntityMap probe would then pass, and the scan would emit a phantom — an entity committed after the reader's snapshot, or a tombstone. Always a maintenance bug at a site that associates an entity with a cluster (spawn commit, WAL replay, either reopen rebuild, spatial cluster migration) and failed to fold the entity's TSNs into the summary.PopcountOrphan = 0Occupancy bitmap has a bit set for a file page that no segment claims and is not a reserved root/reserve slot. Sign of a lost write — pages allocated to a segment but the segment's persisted page-list (root-page Page Directory + extension map pages) didn't capture them durably. The on-disk bitmap survived; the segment's directory append did not.
PopcountPhantom = 1A segment's
Pageslist references a file page whose occupancy bit is clear — the segment believes it owns a page that is actually free. Catastrophic; means a free could double-allocate that page.