Description
If enhanced durability is enabled and you batch a series of ops asynchronously, the IO layer (when using MUX) will timeout each operation after the first couple succeed.
var inserts = new List<Task<IOperationResult<string>>>();
|
var deletes = new List<string>();
|
for (int i = 0; i < 10; i++)
|
{
|
deletes.Add("key" + i);
|
inserts.Add(_bucket.InsertAsync("key" + i, "{\"data\":" + i + "}", ReplicateTo.Zero, PersistTo.One));
|
}
|
_bucket.Remove(deletes);
|
var results = await Task.WhenAll(inserts).ConfigureAwait(false);
|
Assert.IsTrue(results.ToList().TrueForAll(x => x.Status == ResponseStatus.Success));
|
Logged error message:
2016-07-26 16:21:12,553 [4] DEBUG Couchbase.Core.Buckets.RequestExecuterBase - Operation for key key1 failed after 0 retries using vb92 from rev1110 and opaque21. Reason: The operation has timed out.
|
|
...
|
|
2016-07-26 16:21:13,492 [22] DEBUG Couchbase.IO.Services.MultiplexingIOService - Endpoint: 10.141.151.101:11210 - b15582bf-14fb-4259-a25f-c13f3c1d90e1 System.TimeoutException: The operation has timed out.
|
at Couchbase.IO.MultiplexingConnection.Send(Byte[] request) in C:\Users\jmorris\repos\couchbase-net-client\Src\Couchbase\IO\MultiplexingConnection.cs:line 132
|
at Couchbase.IO.Services.MultiplexingIOService.Execute(IOperation operation) in C:\Users\jmorris\repos\couchbase-net-client\Src\Couchbase\IO\Services\MultiplexingIOService.cs:line 152
|
I believe that the thread is blocking for some reason which causes all other operations to eventually timeout. Could be related to: NCBC-1159