Uploaded image for project: 'Couchbase Gateway'
  1. Couchbase Gateway
  2. CBG-3131

[3.1.1 Backport] Panic during on demand import for get request

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.1.1
    • 3.1.0
    • SyncGateway
    • Security Level: Public
    • None
    • CBG Sprint 130
    • 1

    Description

      Observed via forum post in 3.1.0 but limited logging available so far.

      https://www.couchbase.com/forums/t/after-a-vm-restart-the-couchbase-gateway-is-no-longer-starting/36392

       

      Stacktrace pointing to L81 here:

      https://github.com/couchbase/sync_gateway/blob/6dee30f21e68eb6fc26aafdff1aba46a006a7613/db/crud.go#L73-L83

      Which implies that the following is returning a nil document and nil error OnDemandImportForGet -> ImportDocRaw -> importDoc (maybe due to ErrImportCancelled?)

       

       

      couchbase-sync-gateway_1 | 2023/06/13 19:42:02 http: panic serving 172.19.0.4:34672: runtime error: invalid memory address or nil pointer dereference
      couchbase-sync-gateway_1 | goroutine 35702591 [running]:
      couchbase-sync-gateway_1 | net/http.(*conn).serve.func1()
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:1850 +0xbf
      couchbase-sync-gateway_1 | panic({0x10f0140, 0x1e81250})
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/runtime/panic.go:890 +0x262
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*DatabaseCollection).GetDocumentWithRaw(0xc00803ca80, {0x15e97c8, 0xc059aa99b0}, {0xc036de4870, 0x2f}, 0x0?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/crud.go:81 +0x1e9
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*DatabaseCollection).GetDocument(0xc0164964f0?, {0x15e97c8?, 0xc059aa99b0?}, {0xc036de4870?, 0xc0164964f0?}, 0x91?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/crud.go:52 +0x28
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.revCacheLoader({0x15e97c8, 0xc059aa99b0}, {0x15e5398?, 0xc00803ca80?}, {{0xc036de4870?, 0x41922b?}, {0xc036de48a0?, 0xc0950bd470?}}, 0x0?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/revision_cache_interface.go:255 +0x7e
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*revCacheValue).load(0xc04f8c2140, {0x15e97c8, 0xc059aa99b0}, {0x15e5398, 0xc00803ca80}, 0x1, 0x0)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/revision_cache_lru.go:360 +0x490
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*LRURevisionCache).getFromCache(0xc00803ea80, {0x15e97c8, 0xc059aa99b0}, {0xc036de4870?, 0x1273edf?}, {0xc036de48a0?, 0x15f9200?}, 0x0?, 0x1?, 0x0)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/revision_cache_lru.go:154 +0x10a
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*LRURevisionCache).Get(...)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/revision_cache_lru.go:122
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*ShardedLRURevisionCache).Get(0x0?, {0x15e97c8?, 0xc059aa99b0?}, {0xc036de4870, 0x0?}, {0xc036de48a0?, 0x0?}, 0x0?, 0x0?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/revision_cache_lru.go:49 +0x12e
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*DatabaseCollectionWithUser).getRev(0xc03d187038, {0x15e97c8, 0xc059aa99b0}, {0xc036de4870, 0x2f}, {0xc036de48a0, 0x22}, 0x7fffffff, {0x0, 0x0, ...}, ...)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/crud.go:264 +0xdb
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/db.(*DatabaseCollectionWithUser).Get1xRevBodyWithHistory(0x1e?, {0x15e97c8?, 0xc059aa99b0?}, {0xc036de4870?, 0x4f6708?}, {0xc036de48a0?, 0x108a420?}, 0x7fffffff, {0x0, 0x0, ...}, ...)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/db/crud.go:233 +0xc7
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.(*handler).handleBulkGet.func1(0x128a9a5?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/bulk_api.go:433 +0x5fa
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.(*handler).writeMultipart(0xc03403a700, {0x126bf39, 0x5}, 0xc019eeb138)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/handler.go:1278 +0x1e9
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.(*handler).handleBulkGet(0xc03403a700)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/bulk_api.go:385 +0x2df
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.(*handler).invoke(0xc03403a700, 0x13044a8, {0xc00088ea68?, 0x1, 0x1}, {0x0?, 0x0, 0x0})
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/handler.go:512 +0x270e
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.makeHandler.func1({0x15e8a60, 0xc03403a620}, 0xc059aa9950?)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/handler.go:128 +0xd8
      couchbase-sync-gateway_1 | net/http.HandlerFunc.ServeHTTP(0xc01e508b00?, {0x15e8a60?, 0xc03403a620?}, 0xc019eeb840?)
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:2109 +0x2f
      couchbase-sync-gateway_1 | github.com/gorilla/mux.(*Router).ServeHTTP(0xc000574180, {0x15e8a60, 0xc03403a620}, 0xc01e508a00)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/godeps/pkg/mod/github.com/gorilla/mux@v1.8.0/mux.go:210 +0x1cf
      couchbase-sync-gateway_1 | github.com/couchbase/sync_gateway/rest.wrapRouter.func1({0x15e8a60, 0xc03403a620}, 0xc01e508a00)
      couchbase-sync-gateway_1 | /home/couchbase/jenkins/workspace/sgw-unix-build/3.1.0/community/sync_gateway/rest/routing.go:374 +0x251
      couchbase-sync-gateway_1 | net/http.HandlerFunc.ServeHTTP(0xc01d4c6922?, {0x15e8a60?, 0xc03403a620?}, 0x6e1194?)
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:2109 +0x2f
      couchbase-sync-gateway_1 | net/http.serverHandler.ServeHTTP({0x15e6770?}, {0x15e8a60, 0xc03403a620}, 0xc01e508a00)
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:2947 +0x30c
      couchbase-sync-gateway_1 | net/http.(*conn).serve(0xc01b250140, {0x15e97c8, 0xc007314000})
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:1991 +0x607
      couchbase-sync-gateway_1 | created by net/http.(*Server).Serve
      couchbase-sync-gateway_1 | /home/couchbase/cbdeps/go1.19.5/src/net/http/server.go:3102 +0x4db
      

      Attachments

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

        Activity

          People

            ben.brooks Ben Brooks
            ben.brooks Ben Brooks
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty