.NET 8 + CB SDK 3.4.14 (and also 3.4.15) Bucket Bootstrap Error


There appears to be a bucket bootstrap error that occurs when utilizing CB SDK 3.4.14 (and also 3.4.15) in a .NET 8 client.

The bucket initialization/bootstrap fails, then the CB SDK seems to go into a recurring loop with the following 2 logs appearing every couple of seconds:

Bootstrapping: the DNS SRV succeeded, but no records were returned for couchbases:

Using the ChannelConnectionPool.

The error stack from the exception is as follows:
—> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.

  • —> Interop+Crypto+OpenSslCryptographicException: error:0A000438:SSL routines::tlsv1 alert internal error*
  • — End of inner exception stack trace —*
  • at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, ReadOnlySpan`1 input, Byte& sendBuf, Int32& sendCount)*
  • at System.Net.Security.SslStreamPal.HandshakeInternal(SafeDeleteSslContext& context, ReadOnlySpan`1 inputBuffer, Byte& outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)*
  • — End of inner exception stack trace —*
  • at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](Boolean receiveFirst, Byte reAuthenticationData, CancellationToken cancellationToken)*
  • at Couchbase.Core.IO.Connections.ConnectionFactory.CreateAndConnectAsync(HostEndpointWithPort hostEndpoint, CancellationToken cancellationToken)*
  • at Couchbase.Core.IO.Connections.ConnectionPoolBase.CreateConnectionAsync(CancellationToken cancellationToken)*
  • at Couchbase.Core.IO.Connections.Channels.ChannelConnectionPool.<>c__DisplayClass30_0.<g__StartConnection|0>d.MoveNext()*
    — End of stack trace from previous location —
  • at Couchbase.Core.IO.Connections.Channels.ChannelConnectionPool.InitializeAsync(CancellationToken cancellationToken)*
  • at Couchbase.Core.ClusterNode.InitializeAsync()*
  • at Couchbase.Core.DI.ClusterNodeFactory.CreateAndConnectAsync(HostEndpointWithPort endPoint, NodeAdapter nodeAdapter, CancellationToken cancellationToken)*
  • at Couchbase.Core.ClusterContext.CreateAndBootStrapBucketAsync(String name, HostEndpointWithPort endpoint)*
  • at Couchbase.Core.ClusterContext.GetOrCreateBucketLockedAsync(String name)*

NOTE: The latest version of System.Text.Json is used with this test: 8.0.1.

When CB SDK 3.4.14 is used with the same client code targeting .NET 6, there is no error.

Thanks for the detailed description. I’ve opened Loading... for this issue.

Interop+Crypto+OpenSslCryptographicException: error:0A000438:SSL routines::tlsv1

That’s the server throwing an internal exception (apparently). Handshake fails with 3.0.2 & 1.1.1n, but succeeds with 1.1.1 · openssl/openssl · Discussion #22004 · GitHub. Trying to sort through how to get around that.

The bucket initialization/bootstrap fails, then the CB SDK seems to go into a recurring loop with the following 2 logs appearing every couple of seconds

Yes, the SDK will try to (re)connect until it is shutdown.