cockroachdb / pebble

RocksDB/LevelDB inspired key-value database in Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TestMetaTwoInstance: unexpected excise of an EventuallyFileOnlySnapshot's bounds

RaduBerinde opened this issue · comments

Ran into this on master:

    meta.go:240: 
        ===== SEED =====
        1706813706273585000
        ===== ERR =====
        exit status 2
        ===== OUT =====
        panic: unexpected excise of an EventuallyFileOnlySnapshot's bounds
        
        goroutine 103 [running]:
        github.com/cockroachdb/pebble.(*DB).ingestApply(0x14000071680, 0x140002a1d40?, {{0x1400028a018, 0x1, 0x1}, {0x0, 0x0, 0x0}, {0x0, 0x0, ...}, ...}, ...)
                /Users/radu/go/src/github.com/cockroachdb/pebble/ingest.go:2330 +0xed0
        github.com/cockroachdb/pebble.(*DB).ingest.func2(0x1f?)
                /Users/radu/go/src/github.com/cockroachdb/pebble/ingest.go:1573 +0x314
        github.com/cockroachdb/pebble.(*commitPipeline).AllocateSeqNum(0x1400026c000, 0x2, 0x140003fbac8, 0x140003fb9f8)
                /Users/radu/go/src/github.com/cockroachdb/pebble/commit.go:420 +0x334
        github.com/cockroachdb/pebble.(*DB).ingest(0x14000071680, {0x140003fbd18, 0x1, 0x1}, 0x10321d530, {0x0, 0x0, 0x0}, {{0x140002b1740, 0x8, ...}, ...}, ...)
                /Users/radu/go/src/github.com/cockroachdb/pebble/ingest.go:1586 +0x5dc
        github.com/cockroachdb/pebble.(*DB).IngestAndExcise(0x14000071680?, {0x140003fbd18?, 0x1?, 0x1?}, {0x0?, 0x0?, 0x0?}, {{0x140002b1740, 0x8, 0x8}, ...})
                /Users/radu/go/src/github.com/cockroachdb/pebble/ingest.go:1189 +0x1d8
        github.com/cockroachdb/pebble/metamorphic.(*ingestAndExciseOp).run.func1()
                /Users/radu/go/src/github.com/cockroachdb/pebble/metamorphic/ops.go:971 +0xb8
        github.com/cockroachdb/pebble/metamorphic.withRetries(0x140003fbe60, 0x10321d1e0)
                /Users/radu/go/src/github.com/cockroachdb/pebble/metamorphic/retryable.go:29 +0x34
        github.com/cockroachdb/pebble/metamorphic.(*Test).withRetries(...)
                /Users/radu/go/src/github.com/cockroachdb/pebble/metamorphic/test.go:222
        github.com/cockroachdb/pebble/metamorphic.(*ingestAndExciseOp).run(0x140002bfb00, 0x140001dc0f0, {0x140000c2660?, 0x0?, 0x0?})
                /Users/radu/go/src/github.com/cockroachdb/pebble/metamorphic/ops.go:970 +0x54c
        github.com/cockroachdb/pebble/metamorphic.Execute.func1()
                /Users/radu/go/src/github.com/cockroachdb/pebble/metamorphic/meta.go:578 +0x138
        golang.org/x/sync/errgroup.(*Group).Go.func1()
                /Users/radu/go/pkg/mod/golang.org/x/sync@v0.0.0-20220722155255-886fb9371eb4/errgroup/errgroup.go:75 +0x58
        created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 50
                /Users/radu/go/pkg/mod/golang.org/x/sync@v0.0.0-20220722155255-886fb9371eb4/errgroup/errgroup.go:72 +0x98

CC @itsbilal

Repro data:

go test ./internal/metamorphic -tags invariants -run 'TestMetaTwoInstance$' --run-dir _meta/240201-105506.2734202626036/random-002

Meta dir:
metadir.tar.gz

Ah, dup of #3258.