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

[3.0.4 Backport] SGW panics on startup with mutual TLS enabled and invalid bootstrap config

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 3.0.4
    • 3.0.0
    • SyncGateway
    • Security Level: Public
    • None
    • 1

    Description

      With x509_key_path set to an incorrect path, SG will panic on startup:

      2022-08-01T17:03:46.575+01:00 ==== Couchbase Sync Gateway/() EE ====
      2022-08-01T17:03:46.575+01:00 [INF] Loading content from [sg_config-mtls.json] ...
      2022-08-01T17:03:46.578+01:00 [INF] Config: Starting in persistent mode using config group "default"
      2022-08-01T17:03:46.578+01:00 [INF] Logging: Console to stderr
      2022-08-01T17:03:46.578+01:00 [INF] Logging: Files to ./logs
      2022-08-01T17:03:46.579+01:00 [INF] Logging: Console level: debug
      2022-08-01T17:03:46.579+01:00 [INF] Logging: Console keys: [* HTTP]
      2022-08-01T17:03:46.579+01:00 [INF] Logging: Redaction level: partial
      2022-08-01T17:03:46.579+01:00 [DBG] requestedSoftFDLimit < currentSoftFdLimit (5000 <= 10240) no action needed
      2022-08-01T17:03:46.579+01:00 [INF] Logging stats with frequency: &{1m0s}
      2022-08-01T17:03:46.590+01:00 [DBG] gocb+: SDK Version: gocbcore/v10.1.0
      2022-08-01T17:03:46.590+01:00 [DBG] gocb+: Creating new agent: &{BucketName: UserAgent: SeedConfig:{HTTPAddrs:[127.0.0.1.nip.io:18091] MemdAddrs:[127.0.0.1.nip.io:11207]} SecurityConfig:{UseTLS:true TLSRootCAProvider:0x4956080 NoTLSSeedNode:false Auth:<nil> AuthMechanisms:[]} CompressionConfig:{Enabled:false DisableDecompression:false MinSize:0 MinRatio:0} ConfigPollerConfig:{HTTPRedialPeriod:0s HTTPRetryDelay:0s HTTPMaxWait:0s CccpMaxWait:0s CccpPollPeriod:0s} IoConfig:{NetworkType: UseMutationTokens:false UseDurations:false UseOutOfOrderResponses:false DisableXErrorHello:false DisableJSONHello:false DisableSyncReplicationHello:false EnablePITRHello:false UseCollections:false} KVConfig:{ConnectTimeout:0s ServerWaitBackoff:0s PoolSize:0 MaxQueueSize:0 ConnectionBufferSize:0} HTTPConfig:{MaxIdleConns:0 MaxIdleConnsPerHost:0 IdleConnectionTimeout:0s} DefaultRetryStrategy:<nil> CircuitBreakerConfig:{Enabled:false VolumeThreshold:0 ErrorThresholdPercentage:0 SleepWindow:0s RollingWindow:0s CompletionCallback:<nil> CanaryTimeout:0s} OrphanReporterConfig:{Enabled:false ReportInterval:0s SampleSize:0} TracerConfig:{Tracer:<nil> NoRootTraceSpans:false} MeterConfig:{Meter:<nil>}}
      2022-08-01T17:03:46.591+01:00 [DBG] gocb+: CCCP Looper starting.
      panic: runtime error: invalid memory address or nil pointer dereference
      [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x451351c]
       
      goroutine 45 [running]:
      github.com/couchbase/gocbcore/v10.createTLSConfig.func1(0xc00012a320?)
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/httpcomponent.go:455 +0x1c
      crypto/tls.(*Conn).getClientCertificate(0x5bb55b8?, 0x30?)
              /usr/local/go/src/crypto/tls/handshake_client.go:970 +0x67
      crypto/tls.(*clientHandshakeStateTLS13).sendClientCertificate(0xc0003e18d0)
              /usr/local/go/src/crypto/tls/handshake_client_tls13.go:550 +0xf9
      crypto/tls.(*clientHandshakeStateTLS13).handshake(0xc0003e18d0)
              /usr/local/go/src/crypto/tls/handshake_client_tls13.go:93 +0x205
      crypto/tls.(*Conn).clientHandshake(0xc0002ac000, {0x503e018, 0xc000512140})
              /usr/local/go/src/crypto/tls/handshake_client.go:219 +0x578
      crypto/tls.(*Conn).handshakeContext(0xc0002ac000, {0x503e050, 0xc0001b8008})
              /usr/local/go/src/crypto/tls/conn.go:1452 +0x3d1
      crypto/tls.(*Conn).HandshakeContext(...)
              /usr/local/go/src/crypto/tls/conn.go:1402
      crypto/tls.(*Conn).Handshake(...)
              /usr/local/go/src/crypto/tls/conn.go:1386
      github.com/couchbase/gocbcore/v10.dialMemdConn({0x503e018?, 0xc000120180?}, {0xc000692018, 0x16}, 0xc0003da000, {0x0?, 0x0?, 0x58d9600?}, 0x0)
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/memdconn.go:147 +0x28b
      github.com/couchbase/gocbcore/v10.(*memdClientDialerComponent).dialMemdClient(0xc0002d4360, 0xc0001905a0, {{0xc000692018?, 0x0?}, 0x0?}, {0x44?, 0xc000603de8?, 0x58d9600?}, 0x2000?, 0xc0004d20a0)
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/memdclientdialer_component.go:179 +0x1d6
      github.com/couchbase/gocbcore/v10.(*memdClientDialerComponent).SlowDialMemdClient(0xc0002d4360, 0xc0001905a0, {{0xc000692018?, 0xc000692018?}, 0x16?}, 0x4e9360b?, 0x0?, {0xc0004d20b0, 0x1, 0x1}, ...)
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/memdclientdialer_component.go:118 +0x27e
      github.com/couchbase/gocbcore/v10.(*kvMux).newKVMuxState.func1(0x0?)
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/kvmux.go:669 +0x11f
      github.com/couchbase/gocbcore/v10.(*memdPipelineClient).Run.func1()
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/memdpipelineclient.go:219 +0x32
      created by github.com/couchbase/gocbcore/v10.(*memdPipelineClient).Run
              /Users/marks.polakovs@couchbase.com/go/pkg/mod/github.com/couchbase/gocbcore/v10@v10.1.1-0.20220221125514-72ee6aaebe8d/memdpipelineclient.go:218 +0x2d8
      
      

      Attachments

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

        Activity

          People

            marks.polakovs Marks Polakovs (Inactive)
            marks.polakovs Marks Polakovs (Inactive)
            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