Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
Untriaged
-
1
-
Unknown
Description
goroutine 140 [running]:
github.com/couchbase/plasma.(*Shard).raisePanic(...)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/shard.go:1050
github.com/couchbase/plasma.(*LSSCtx).raiseCorrupted(0xc0002d8a00, 0xd58ba0, 0xc001f87610)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/lssctx.go:185 +0x206
github.com/couchbase/plasma.(*Plasma).fatalPanic(0xc0000d4700, 0xc5e7b4, 0x11)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1523 +0x293
github.com/couchbase/plasma.(*page).checkMutable(0xc003b88040)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/page.go:941 +0x68
github.com/couchbase/plasma.(*page).Decompress(0xc003b88040, 0x7f173002a800)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/page.go:2044 +0x2f
github.com/couchbase/plasma.(*pageWalker).Decompress(0xc0036655f8, 0xc003b88040, 0xc003665650)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/page_walker.go:337 +0x1b2
github.com/couchbase/plasma.(*Plasma).tryPageSwapin(0xc0000d4700, 0xd8c660, 0xc003b88040, 0xc003665600)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1581 +0x1e3
github.com/couchbase/plasma.(*Plasma).ReadPage(0xc0000d4700, 0x7f177effd3c0, 0xc8e201, 0xc001fa8240, 0xc000196eb8, 0x7f177effd3c0, 0x7f177effaff0, 0xc003088101)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/pagetable.go:202 +0xf5
github.com/couchbase/plasma.(*Plasma).tryPageRemoval(0xc0000d4700, 0x7f177effaff0, 0xd8c660, 0xc001f6ddc0, 0xc001fa8240)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1129 +0x103
github.com/couchbase/plasma.(*Plasma).doPageMerge(0xc0000d4700, 0x7f177effaff0, 0xd8c660, 0xc001f6ddc0, 0xc001fa8240, 0x1)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1395 +0xeb
github.com/couchbase/plasma.(*Plasma).trySMOs2(0xc0000d4700, 0x7f177effaff0, 0xd8c660, 0xc001f6ddc0, 0xc001fa8240, 0xc001f6dd00, 0x190, 0x19, 0xc8, 0x4, ...)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1378 +0x1430
github.com/couchbase/plasma.(*Plasma).trySMOs(...)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/plasma.go:1256
github.com/couchbase/plasma.(*Writer).Lookup(0xc001725280, 0x7f1733c53400, 0x1000, 0x1ffb, 0x0)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/writer.go:158 +0x197
github.com/couchbase/plasma.(*Writer).LookupKV(0xc001725280, 0xc003b82000, 0x1000, 0x1ffb, 0x1000, 0x1000, 0x6, 0x716, 0x0)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/mvcc.go:490 +0x10c
main.(*WorkerCtx).doRead(0xc001227a40)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/tools/gsi/worker.go:204 +0x212
main.(*WorkerCtx).Run(0xc001227a40, 0x0)
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/tools/gsi/worker.go:310 +0x8d2
created by main.(*InstanceCtx).StartWorkers
/data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/tools/gsi/instance.go:209 +0x81
+ grep -Ei panic /data/jenkins/workspace/centos-2i_plasma_API_tests/cheshire-cat/goproj/src/github.com/couchbase/plasma/tools/gsi/output.txt
panic: : fatal: Page is immutable
github.com/couchbase/plasma.(*Shard).raisePanic(...)
github.com/couchbase/plasma.(*Plasma).fatalPanic(0xc0000d4700, 0xc5e7b4, 0x11)
Panic occurs due to failed assertion during decompress. This occurs when:
Only one of DecompressDuringSwapin and CompressAfterSwapin can can be set to true. In the test config both are set to true, leading to the panic and this must be corrected. Also, in applyConfigDefaults, it would be good to check if only one is true and disable DecompressDuringSwapin if both are true as a defensive fix.