Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-22409

[GSI][ARRAY_INDEX] Indexer crashes in case array size falls between (max_array_seckey_size*3+256) and (max_array_seckey_size*3+258)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 4.5.1
    • 4.5.1
    • secondary-index
    • None
    • 4.5.1-2858
    • Untriaged
    • No

    Description

      Setup: 1 node cluster - kv: index: n1ql

      max_array_seckey_size is set to 4250.

       

      Code to upload the document:

       

       
      from couchbase.bucket import Bucket
       
      cb = Bucket("couchbase://localhost/default")
      cb.upsert('large', {'name': [("x" * 12995)] })
      
      

      Indexer is not reachable since there are constant panic in indexer.log. 

      Workaround of increasing the - max_array_seckey_size will not work, since indexer is not reachable on port 9102. 

       

       
      panic: runtime error: slice bounds out of range
       
       
       
      goroutine 1234 [running]:
       
      panic(0xf72840, 0xc820014060)
       
              /home/couchbase/.cbdepscache/exploded/x86_64/go-1.6/go/src/runtime/panic.go:464 +0x3e6 fp=0xc8255a7470 sp=0xc8255a73f0
       
      runtime.panicslice()
       
              /home/couchbase/.cbdepscache/exploded/x86_64/go-1.6/go/src/runtime/panic.go:21 +0x49 fp=0xc8255a7498 sp=0xc8255a7470
       
      github.com/couchbase/indexing/secondary/indexer.NewSecondaryIndexEntry(0xc825371500, 0x32ca, 0x3500, 0xc823c554b0, 0x5, 0x5, 0xc8253d6f01, 0x1, 0xc825598000, 0x32ca, ...)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/index_entry.go:148 +0x62e fp=0xc8255a7600 sp=0xc8255a7498
       
      github.com/couchbase/indexing/secondary/indexer.GetIndexEntryBytes2(0xc825371500, 0x32ca, 0x3500, 0xc823c554b0, 0x5, 0x5, 0xc823980100, 0x1, 0xc825598000, 0x0, ...)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/index_entry.go:384 +0x156 fp=0xc8255a76a0 sp=0xc8255a7600
       
      github.com/couchbase/indexing/secondary/indexer.GetIndexEntryBytes(0xc825371500, 0x32ca, 0x3500, 0xc823c554b0, 0x5, 0x5, 0x7fa6ec5f0100, 0x1, 0x0, 0x0, ...)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/index_entry.go:415 +0x1b9 fp=0xc8255a7778 sp=0xc8255a76a0
       
      github.com/couchbase/indexing/secondary/indexer.(*fdbSlice).Insert(0xc820142000, 0xc825371500, 0x32ca, 0x3500, 0xc823c554b0, 0x5, 0x5, 0xc825378570, 0x0, 0x0)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/forestdb_slice_writer.go:275 +0xac fp=0xc8255a7828 sp=0xc8255a7778
       
      github.com/couchbase/indexing/secondary/indexer.(*flusher).processUpsert(0xc8253d6f00, 0xc8246a77a0, 0xc823c554b0, 0x5, 0x5, 0xc825378570)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/flusher.go:436 +0x41c fp=0xc8255a7b20 sp=0xc8255a7828
       
      github.com/couchbase/indexing/secondary/indexer.(*flusher).flush(0xc8253d6f00, 0xc8232307c0, 0x1)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/flusher.go:386 +0x2d9 fp=0xc8255a7d78 sp=0xc8255a7b20
       
      github.com/couchbase/indexing/secondary/indexer.(*flusher).flushSingleMutation(0xc8253d6f00, 0xc8232307c0, 0x1)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/flusher.go:335 +0x43 fp=0xc8255a7de8 sp=0xc8255a7d78
       
      github.com/couchbase/indexing/secondary/indexer.(*flusher).flushSingleVbucketUptoSeqno(0xc8253d6f00, 0x7fa6ec5c1c88, 0xc823dbe600, 0xc820080001, 0xc822164910, 0x7, 0x16b, 0x1, 0x416601, 0xc825580300, ...)
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/flusher.go:314 +0x232 fp=0xc8255a7f40 sp=0xc8255a7de8
       
      runtime.goexit()
       
              /home/couchbase/.cbdepscache/exploded/x86_64/go-1.6/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8255a7f48 sp=0xc8255a7f40
       
      created by github.com/couchbase/indexing/secondary/indexer.(*flusher).flushQueue
       
              /home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/indexing/secondary/indexer/flusher.go:195 +0x7ea
      
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            siri Sriram Melkote (Inactive)
            prasanna.gholap Prasanna Gholap [X] (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty