Description
{{ public Task<IOperationResult<T>> GetAndLockAsync<T>(string key, TimeSpan expiration, TimeSpan timeout) { return GetAndLockAsync<T>(key, expiration, timeout); }}}
This is a recursive call > stackoverflow (in .Net Core, it doesn't even crash nicely in unit tests)
To avoid it you should do something like
{{ public Task<IOperationResult<T>> GetAndLockAsync<T>(string key, TimeSpan expiration, TimeSpan timeout) { return GetAndLockAsync<T>(key, (uint)expiration.TotalSeconds, timeout); }}}
https://github.com/couchbase/couchbase-net-client/blob/master/Src/Couchbase/CouchbaseBucket.cs#L1521