Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Cheshire-Cat
-
Untriaged
-
1
-
Unknown
Description
When processing secondary keys whose total size is > 20M, Observing a panic in projector during CollateJSONEncode. This panic seems to originate from query code.
Indexing SHA: 39bde92304baf3a7424d8d9297953946a7cd6515
Query SHA: c67a7e6ab26cb2ed82dd0367a1c4631309af7d33
Panic stack trace:
2020-06-01T11:50:04.856+05:30 [Error] WRKR[2<-default<-127.0.0.1:9000 #INIT_STREAM_TOPIC_aadd22d87df694b6908c818ee1724bc8] ##c TransformRoute: runtime error: invalid memory address or nil pointer dereference, /Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/logging/logging.go:312 +0x22
|
github.com/couchbase/indexing/secondary/protobuf/projector.(*IndexEvaluator).processEvent.func1(0xc006a495d0)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/index.go:270 +0x57
|
panic(0x47f97e0, 0x5156620)
|
/Users/varun/.cbdepscache/exploded/x86_64/go-1.13.7/go/src/runtime/panic.go:679 +0x1b2
|
github.com/couchbase/query/value.(*parsedValue).MarshalJSON(0xc000661a00, 0xc000661a00, 0x4a3a880, 0xc000661a00, 0x0, 0x0)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/query/value/parsed.go:128 +0x35
|
github.com/couchbase/query/value.marshalArray(0xc0065a85a0, 0x2, 0x2, 0x4416e80, 0x0, 0x0, 0xc006a494b8, 0xc006a49070)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/query/value/array.go:623 +0x134
|
github.com/couchbase/query/value.sliceValue.MarshalJSON(...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/query/value/array.go:34
|
github.com/couchbase/indexing/secondary/protobuf/projector.CollateJSONEncode(0x4a3b3c0, 0xc0065a85e0, 0xc00764e000, 0x0, 0x100000, 0x4a3a880, 0xc000661a00, 0x0, 0x0, 0x0, ...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/n1ql_evaluate.go:146 +0x20c
|
github.com/couchbase/indexing/secondary/protobuf/projector.N1QLTransform(0xc0048b7ec0, 0x12, 0x12, 0x4a69c00, 0xc006544fc0, 0x4a2fc00, 0xc0065a8580, 0xc0068ef1c0, 0x2, 0x2, ...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/n1ql_evaluate.go:122 +0x5a7
|
github.com/couchbase/indexing/secondary/protobuf/projector.(*IndexEvaluator).evaluate(0xc000173400, 0xc005887d40, 0xc0048b7ec0, 0x12, 0x12, 0x4a69c00, 0xc006544fc0, 0x4a2fc00, 0xc0065a8580, 0xc00764e000, ...) /Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/index.go:480 +0x12e
|
github.com/couchbase/indexing/secondary/protobuf/projector.(*IndexEvaluator).processEvent(0xc000173400, 0xc005887d40, 0xc00764e000, 0x0, 0x100000, 0x4a69c00, 0xc006544fc0, 0x4a2fc00, 0xc0065a8580, 0xc006c047b0, ...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/index.go:306 +0x75a
|
github.com/couchbase/indexing/secondary/protobuf/projector.(*IndexEvaluator).TransformRoute(0xc000173400, 0xbc0883229231, 0xc005887d40, 0xc006578360, 0xc00764e000, 0x0, 0x100000, 0x4a69c00, 0xc006544fc0, 0x4a2fc00, ...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/protobuf/projector/index.go:341 +0xb8
|
github.com/couchbase/indexing/secondary/projector.(*Engine).TransformRoute(...)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/projector/engine.go:98
|
github.com/couchbase/indexing/secondary/projector.(*VbucketWorker).handleEvent.func3(0xc007e242a0)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/projector/worker.go:502 +0x2dd
|
github.com/couchbase/indexing/secondary/projector.(*VbucketWorker).handleEvent(0xc0071161c0, 0xc005887d40, 0x0)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/projector/worker.go:538 +0xbcf
|
github.com/couchbase/indexing/secondary/projector.(*VbucketWorker).run(0xc0071161c0, 0xc0065e5200, 0xc0065e51a0)
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/projector/worker.go:258 +0x61a
|
created by github.com/couchbase/indexing/secondary/projector.NewVbucketWorker
|
/Users/varun/couchbase/cheshire-cat/goproj/src/github.com/couchbase/indexing/secondary/projector/worker.go:119 +0x6a3
|
for index i2 docid <ud>(VeryLargeIndexKey2)</ud>
|
Steps to reproduce:
a. Create a large document containing a subdoc and JSON array. The JSON array should be a part of subdoc and it's size should be sufficiently large (Close to 20M is recommended)
b. Create an index on both subdoc and JSON array so that the total key size exceeds 20M