[NCBC-653] MemcachedBucket does not have SendWithRetry method Created: 20/Sep/14  Updated: 20/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-651] Create Tests to ensure 1.X and 2.X work together in the same app domain Created: 20/Sep/14  Updated: 20/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
These tests should also cover all common flags integration concerns.




[NCBC-652] Add support for bulk operations: Get and Upsert Created: 20/Sep/14  Updated: 20/Sep/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Add support for multi get/upsert.




[NCBC-608] Implement Common Flags Created: 27/Aug/14  Updated: 20/Sep/14  Resolved: 20/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Brett Lawson Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Implement the Common Flags formatting as defined by the specification.

 Comments   
Comment by Jeff Morris [ 27/Aug/14 ]
Brett, can you link to the specification?
Comment by Brett Lawson [ 27/Aug/14 ]
https://docs.google.com/document/d/1V653a6FF6DOqdT4d-fKIjGkHabDaNGZsvbtsUKJyeLc
Comment by Jeff Morris [ 20/Sep/14 ]
http://review.couchbase.org/#/c/41479/3




[NCBC-649] infinite loop 'Trying again' with 'No connections currently available' for ReAdd2 test when nodes returned to cluster Created: 19/Sep/14  Updated: 20/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Test Blocker
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File NCBC-649_1.png     PNG File NCBC-649_2.png     PNG File NCBC-649_3.png     PNG File NCBC-649_4.png     File NCBC-649.7z     File NCBC-649_gerrit.7z     PNG File NCBC-649.png    

 Description   
run with commit https://github.com/couchbase/couchbase-net-client/commit/24714876f76207a5fc7d72e88bd1f9c57909fcdb

http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/102/console

Running ReAdd2-HYBRID: 2014-09-18 23:50:57
    workload=HybridWorkloadGroup
    failover/next_action=FO_READD_REBALANCE
    failover/count=2
    failover/next_delay=45
    testcase=FailoverScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\ReAdd2-HYBRID\09-18-14\024657\8c847f52905fd0bf669803f16c2dc716

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
        --workload HybridWorkloadGroup --failover-next_action
 \
        FO_READD_REBALANCE --failover-count 2 --failover-next_delay 45
 \
        --testcase FailoverScenario -C share\rexec --rexec_path
 \
        C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port 8675
 \
        --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \
        --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \
        --cluster_ssh-username=root --cluster_ssh-password=couchbase


2014-09-18 23:56:46,364 [2] DEBUG Couchbase.CouchbaseCluster - Finalizing CouchbaseCluster
2014-09-18 23:56:46,364 [2] DEBUG Couchbase.CouchbaseCluster - Finalizing CouchbaseCluster
2014-09-18 23:56:46,614 [42] ERROR Couchbase.Core.Buckets.CouchbaseBucket - Couchbase.ServerUnavailableException: Exception of type 'Couchbase.ServerUnavailableException' was thrown.
   at Couchbase.Configuration.ConfigContextBase.GetServer() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 210
   at Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult, IOperation operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 241
2014-09-18 23:56:46,614 [42] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation retry 1 for key SimpleKeyREP4463REP4463REP4463REP4463REP4463. Reason: VBucketBelongsToAnotherServer
2014-09-18 23:56:46,614 [42] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#878 on thread 42
2014-09-18 23:56:46,614 [42] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 609 for key SimpleKeyREP4463REP4463REP4463REP4463REP4463 - rev878
2014-09-18 23:56:46,614 [42] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP4463REP4463REP4463REP4463REP4463 using server 10.3.121.134:11210
2014-09-18 23:56:46,615 [42] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 2059d0b9-eb1e-4163-b58a-17ae44f4ae8b | 10.3.121.134:11210 | [0, 2] - b20c68a7-f922-486e-af16-f880d88bfff6 - Disposed: False
2014-09-18 23:56:46,615 [42] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP4463REP4463REP4463REP4463REP4463 using 609 on 10.3.121.134:11210
2014-09-18 23:56:46,616 [42] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: 2059d0b9-eb1e-4163-b58a-17ae44f4ae8b on 10.3.121.134:11210 - b20c68a7-f922-486e-af16-f880d88bfff6
2014-09-18 23:56:46,619 [42] INFO Couchbase.Core.Buckets.CouchbaseBucket - New config found 1736
2014-09-18 23:56:46,646 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:56:46,880 [42] ERROR Couchbase.Core.Buckets.CouchbaseBucket - Couchbase.ServerUnavailableException: Exception of type 'Couchbase.ServerUnavailableException' was thrown.
   at Couchbase.Configuration.ConfigContextBase.GetServer() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 210
   at Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult, IOperation operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 241
2014-09-18 23:56:46,880 [42] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation retry 2 for key SimpleKeyREP4463REP4463REP4463REP4463REP4463. Reason: VBucketBelongsToAnotherServer
2014-09-18 23:56:46,880 [42] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation for key SimpleKeyREP4463REP4463REP4463REP4463REP4463 failed after 3 retries. Reason: VBucketBelongsToAnotherServer
2014-09-18 23:56:49,146 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:56:51,646 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:56:54,146 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:56:56,646 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:56:59,146 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:57:01,646 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-18 23:57:04,146 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False


..................


2014-09-19 01:09:51,804 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-19 01:09:54,304 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-19 01:09:56,804 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-19 01:09:59,304 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False
2014-09-19 01:10:01,804 [45] DEBUG Couchbase.IO.ConnectionPool`1 - No connections currently available on 10.3.121.136:11210 - ae3a8fe3-d2b0-4a20-83bd-512e9c870573. Trying again. - Disposed: False


test stuck, not all items loaded
run was via jenkins, so I'm not able to get stacktraces



 Comments   
Comment by Jeff Morris [ 19/Sep/14 ]
Hmm, looks like connection pool exhausted, but none of the in-progress operations are timing out? Strange.
Comment by Andrei Baranouski [ 19/Sep/14 ]
right, something like that
Comment by Andrei Baranouski [ 20/Sep/14 ]
catched it in manual run


  [In a sleep, wait, or join]
  mscorlib.dll!System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle waitableSafeHandle, long millisecondsTimeout, bool hasThreadAffinity, bool exitContext) + 0x22 bytes
  mscorlib.dll!System.Threading.WaitHandle.WaitOne(int millisecondsTimeout, bool exitContext) + 0x28 bytes
  mscorlib.dll!System.Threading.WaitHandle.WaitOne(int millisecondsTimeout) + 0xd bytes
> Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 123 + 0x28 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
 
        .................................
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 126 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Couchbase.IO.IConnectionPool.Acquire() Line 178 + 0x9 bytes C#
  Couchbase.dll!Couchbase.IO.Strategies.DefaultIOStrategy.Execute<object>(Couchbase.IO.Operations.IOperation<object> operation) Line 40 + 0xc bytes C#
  Couchbase.dll!Couchbase.Core.Server.Send<object>(Couchbase.IO.Operations.IOperation<object> operation) Line 88 + 0x4a bytes C#
  Couchbase.dll!Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry<object>(Couchbase.IO.Operations.IOperation<object> operation) Line 103 + 0x4a bytes C#
  Couchbase.dll!Couchbase.Core.Buckets.CouchbaseBucket.Upsert<object>(string key, object value) Line 332 + 0x31 bytes C#
  Sdkd.dll!Sdkd.Commands.SetCommand.ExecuteSingle(string key, string value) Line 78 + 0x1e bytes C#
  Sdkd.dll!Sdkd.Commands.KVCommand.Run() Line 24 + 0x36 bytes C#
  SdkdConsole.exe!SdkdConsole.Daemon.Handle.DispatchCommand(Sdkd.Protocol.Request req, Couchbase.Core.Buckets.CouchbaseBucket cli) Line 266 + 0x9 bytes C#
  SdkdConsole.exe!SdkdConsole.Daemon.Handle.Run() Line 146 + 0xf bytes C#
  mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x6f bytes
  mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0xa7 bytes
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0x16 bytes
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x41 bytes
  mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes
  [Native to Managed Transition]


please note, this run was with some commits from gerrit

$ git log
commit 8afa0ace0ac366e53dcc07a62c23ffd6604f6015
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 10:43:37 2014 -0700

    NCBC-639: ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query)

    Change-Id: I41bd3d93b31b98a19b8fb23d432713f5034debd7

commit 602181eed21614451ccaf0f848337f9c382ae578
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 00:10:53 2014 -0700

    NCBC-590: Refactor logging so that ODE are not raised when it references a disposed object

    Change-Id: I5d81dba00d64e4caf34d165491624e2c02a9949b

commit f9d4efb511c93a64b2a844e41849177da1f4442a
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 22:53:12 2014 -0700

    Refactor unit tests to reflect changes in exceptions when bootstrap fails

    Change-Id: I387aa3c8a0d8954102265e27dbbe4f6d84c4d104

commit 2a054aceab491ed338f1fc435d0a48eb4d31c43c
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 22:13:02 2014 -0700

    NCBC-624: Refactor View API

    From Michael's review:

    "One thing that I was confused about was the View query DSL. The required
    argument is development, but the view and design document name could be
    omitted by the DSL user since they are elements like limit and so forth. I
    think it would be better to turn this around. For example in Java there is
    ViewQuery.from('designDoc', 'view') and then the DSL starts.
    So you can never miss design doc and view name by accident. And I think
    you can go with a development = false default, since that's what people
    use most of the time. I think the main question is, if I miss adding
    design doc or view name by accident, does it blow up at runtime or at
    compile time?"

    Change-Id: I4fc9d716f674df882156cdd1763b8d43204e7d90

commit 24714876f76207a5fc7d72e88bd1f9c57909fcdb
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 19:06:31 2014 -0700

    NCBC-606: Catch and log ServerUnavailableException during failover

    Change-Id: Ie0f74d2bf69cd43ea399762fc39e7ca7f305c11c
    Reviewed-on: http://review.couchbase.org/41384
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit a2cd618f125fc330db742bcb6879c85741e1b3e0
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:43:48 2014 -0700

    NCBC-638: If Server is null when sending an operation then retry operation

    Change-Id: Idfee0ab2852c51cb9c7de1912374d64ee1633be7
    Reviewed-on: http://review.couchbase.org/41374
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 2ca77982d595f15cfa7fe5aa0b97902c94b5f120
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:41:13 2014 -0700

    Update unit tests to use camel cased property values when applicable

    Change-Id: I80ae31e2bf58809574dba965063b21ffe48dc5ec
    Reviewed-on: http://review.couchbase.org/41373
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 33fc515c0248fbeb56fa7123cea954872e4c9b11
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:35:10 2014 -0700

    NCBC-637: When CCCP fails ensure NRE is not thrown

    Change-Id: I5ef0dbef8298675ceb92e9eb91c49303269133a2
    Reviewed-on: http://review.couchbase.org/41371
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 1e9fff367fa3eefd19069fdfa1dfaae14b4b2a42
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 23:36:43 2014 -0700

    NCBC-586: Make AddRef and Release on IBucket not public

    This commit adds an internal interface IRefCountable with AddRef and
    Release members, so that the two methods are not publically callable on an
    IBucket implementation.

    Change-Id: I11f628094aa1f65ff4780f42e00bbfb088e78898
    Reviewed-on: http://review.couchbase.org/41354
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 983b94b8acbce8eee11314542d8dcdfbb3c03e0d
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 22:34:37 2014 -0700

    NCBC-636: Make outgoing ContractResolver default to camel casing

    This commit makes the incoming and outgoing JSON IContractResolver's type
    configurable from the ClientConfiguration object. The default settings are
    to use a CamelCasedNameContractResolver for both serialization and
    deserilization.

    Change-Id: I3a82f95d5f4608aa8d05e4141a1a089bc300d4e7
    Reviewed-on: http://review.couchbase.org/41353
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 77b78aaa1550c2ea9e0dfa4085fad2cd24814721
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 18:06:55 2014 -0700

    NCBC-635: Provide better failure support for N1QL Query API

    Change-Id: I16d9a44ba653f8846b22e7c679681ab262e1e6bc
    Reviewed-on: http://review.couchbase.org/41351
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 424a10647f5d6dd21e603fbfe8bb98de305f9491
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 15:43:24 2014 -0700

    NCBC-634: Ensure that CancellationTokenSource is Disposed

    This fix ensures that the CTS will be explicitly disposed so that the
    object does not live through to finalization.

    Change-Id: I39545b97a3c934f2c0a93587fa7147b32d2bd043
    Reviewed-on: http://review.couchbase.org/41335
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 8bd607e8cb545ace5102edf1accb5f862b5caf74
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 15:12:17 2014 -0700

    NCBC-632: Make JsonSerializerSettings configurable

    Change-Id: I21c5620a2192217faa68a62cf440a2a8f3dc8893
    Reviewed-on: http://review.couchbase.org/41331
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit bebae67219460e2e3a69ad2d56c9f98afc824190
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 14:26:25 2014 -0700

    NCBC-626: HttpRequestException in queries after rebalance out

    Change-Id: I0eed00d956f231c3826a54da6a983586618d126d
    Reviewed-on: http://review.couchbase.org/41327
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 8db6085e9aecb23cd6defb672f7ec0548536d9de
Author: jeffrymorris <jeffrymorris@gmail.com>

http://www.couchbase.com/issues/secure/attachment/21870/NCBC-649_gerrit.7z


please see screenshots




[NCBC-626] HttpRequestException in queries after rebalance out Created: 07/Sep/14  Updated: 19/Sep/14

Status: Reopened
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Bug Priority: Blocker
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: 3.0.0-1208

Attachments: HTML File 7c866d0c3984e2387129b6f66f32f19f-CB.html     HTML File 7c866d0c3984e2387129b6f66f32f19f-HT.html     Zip Archive NCBC-626.log.zip     Zip Archive NCBC-626_new.log.zip     File NCBC-626_with_gerrit.7z     Zip Archive NCBC-626_without_ssl.log.zip     Text File test_logs_new.txt     Text File test.txt    

 Description   
c:\jenkins\workspace-net2\sdkdclient-ng>call packages\sdkdclient\bin\brun.bat -I cluster_config.ini -I sdkd.args --variants HYBRID -d all:debug --no-upload
[0,12 INFO] (BRun run:441) Initializing history database

============================================================
Running Rb2Out-HYBRID: 2014-09-06 20:26:43
    rebalance/count=2
    workload=HybridWorkloadGroup
    rebalance/mode=out
    testcase=RebalanceScenario
    Logging to c:\jenkins\workspace-net2\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\Rb2Out-HYBRID\09-06-14\062803\7c866d0c3984e2387129b6f66f32f19f

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --rebalance-count 2 --workload HybridWorkloadGroup
 \ --rebalance-mode out --testcase RebalanceScenario -C share\rexec
 \ --rexec_path C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port
 \ 8675 --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \ --cluster_useSSL=True --cluster_ssh-username=root
        --cluster_ssh-password=couchbase
    ---------------------------------------->
....


[4250,29 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 82%
[4251,51 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 83%
[4252,16 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4252,16 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4252,16 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException object reference not set to an instance of an object. at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268

[4252,72 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 83%
[4253,96 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 84%
[4255,18 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 84%
[4256,39 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 85%
[4257,60 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 85%
[4258,82 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 85%
[4260,04 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 86%
[4261,25 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 86%
[4262,49 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 86%
[4263,71 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 87%
[4264,94 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 87%
[4266,15 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 87%
[4267,37 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 88%
[4268,58 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 88%
[4269,81 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 88%
[4271,04 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 89%
[4272,26 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 89%
[4273,48 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 89%
[4274,70 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 90%
[4275,95 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 90%
[4277,17 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 90%
[4278,41 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 90%
[4279,63 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 91%
[4280,85 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 91%
[4282,09 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 91%
[4283,31 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 92%
[4284,52 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 92%
[4285,73 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 92%
[4286,95 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 93%
[4288,17 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 94%
[4289,39 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 94%
[4290,62 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 96%
[4292,55 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 98%
[4292,89 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4292,89 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4293,81 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 99%
[4295,06 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4296,28 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4297,50 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4298,72 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4300,01 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4301,23 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4302,45 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4303,66 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4304,88 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[4306,17 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[4306,17 INFO] (Scenario run:97) CHANGE phase done
[4306,17 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[4307,52 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4307,52 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4307,57 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4307,57 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4308,06 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4308,06 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4308,43 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4308,43 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4309,46 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4309,46 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268


sdkd gets these exceptions on https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Views/ViewCommand.cs#L268
it means that 'IViewResult<dynamic> view = GetViewObject(Client, Req, MyOptions);' returns null

GetViewObject has been implemented this way:
https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Views/ViewCommand.cs#L164




from client logs I watch a lot of errors:

2014-09-06 21:39:58,200 [35] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 451 for key SimpleKeyREP3579REP3579REP3579REP3579REP3579 - rev4310
2014-09-06 21:39:58,200 [35] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP3579REP3579REP3579REP3579REP3579 using server 10.3.3.206:11207
2014-09-06 21:39:58,200 [35] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 55527dd8-1b82-4208-9ff1-86743b0ebc7e | 10.3.3.206:11207 | [0, 2] - b5c60b0f-f3aa-406e-a97d-7eee28bdc5ae - Disposed: False
2014-09-06 21:39:58,200 [18] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: he remote certificate is invalid according to the validation procedure.
   at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
   at System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)
   at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---

 Comments   
Comment by Andrei Baranouski [ 07/Sep/14 ]
observe the same situation without ssl, however client logs do not have any exceptions. only sвkd issues the same exceptions:
Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4308,43 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
Comment by Jeff Morris [ 09/Sep/14 ]
The NullReferenceException is because the view request failed, thus IViewResult.Rows is null, but your trying to iterate over it in your foreach list which throws a NRE. The reason why the view request is failing is because they are being attempted on nodes that are either out of the cluster or in a funky state.

A couple of things to be improved upon:
a) The Message field correctly gives the reason (good)
b) The StatusCode field is defaulting to found (200) - this is invalid (bad)
c) The Exception field is null (bad)
b) Rows can default to an empty list, which is probably better than null (design choice)
e) There is no retry logic for views like there is for memcached operations - this is a missing feature.(bad)

I'll post a changeset asap.

-Jeff



Comment by Jeff Morris [ 10/Sep/14 ]
http://review.couchbase.org/#/c/41327/
Comment by Andrei Baranouski [ 17/Sep/14 ]
Hi Jeff,

Hi Jeff,

seems like the case "b) Rows can default to an empty list, which is probably better than null (design choice) " still doesn't work with commit

commit 7e1a74cded3201aa6cfa702597cd1a97a94e6d9e
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 10:43:37 2014 -0700

    NCBC-639: ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query)

    Change-Id: I41bd3d93b31b98a19b8fb23d432713f5034debd7

in our functional python tests we we always make sure that the query returns something without any errors (maybe it will be an empty list , ie rows =0), but as I understand that return zero is unacceptable for us



4611,07 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[4611,07 INFO] (Scenario run:97) CHANGE phase done
[4611,07 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[4612,19 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4612,19 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4612,20 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException object reference not set to an instance of an object. at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268

[4612,34 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4612,34 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[4613,39 INFO] (SDKD log:137) Exception: System.NullReferenceException: object reference not set to an instance of an object.
[4613,39 INFO] (SDKD log:137) at Sdkd.Views.ViewCommand.Run() at c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268


sdkd gets these exceptions on https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Views/ViewCommand.cs#L268
it means that 'IViewResult<dynamic> view = GetViewObject(Client, Req, MyOptions);' returns null

please see new logs




Comment by Jeff Morris [ 17/Sep/14 ]
Let me check the case of View that returns no rows. I'll post the results asap.
Comment by Jeff Morris [ 17/Sep/14 ]
Andrei -

This should be fixed with the commit for NCBC-626. In the comment above you referenced NCBC-639 which has yet been through code review. Once it's merged with master it should be resolved.
Comment by Jeff Morris [ 17/Sep/14 ]
This isn't merged with Master yet.
Comment by Andrei Baranouski [ 17/Sep/14 ]
hm, my current results were based on latest master branch + commits in gerrit till
commit 7e1a74cded3201aa6cfa702597cd1a97a94e6d9e
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 10:43:37 2014 -0700

    NCBC-639: ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query)

in any case, I'll check on the master since now you've added a lot of commits
Comment by Andrei Baranouski [ 19/Sep/14 ]
Hi Jeff, today I run the tests with the latest commits from gerrit

$ git log
commit 8afa0ace0ac366e53dcc07a62c23ffd6604f6015
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 10:43:37 2014 -0700

    NCBC-639: ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query)

    Change-Id: I41bd3d93b31b98a19b8fb23d432713f5034debd7

commit 602181eed21614451ccaf0f848337f9c382ae578
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Sep 12 00:10:53 2014 -0700

    NCBC-590: Refactor logging so that ODE are not raised when it references a disposed object

    Change-Id: I5d81dba00d64e4caf34d165491624e2c02a9949b

commit f9d4efb511c93a64b2a844e41849177da1f4442a
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 22:53:12 2014 -0700

    Refactor unit tests to reflect changes in exceptions when bootstrap fails

    Change-Id: I387aa3c8a0d8954102265e27dbbe4f6d84c4d104

commit 2a054aceab491ed338f1fc435d0a48eb4d31c43c
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 22:13:02 2014 -0700

    NCBC-624: Refactor View API

    From Michael's review:

    "One thing that I was confused about was the View query DSL. The required
    argument is development, but the view and design document name could be
    omitted by the DSL user since they are elements like limit and so forth. I
    think it would be better to turn this around. For example in Java there is
    ViewQuery.from('designDoc', 'view') and then the DSL starts.
    So you can never miss design doc and view name by accident. And I think
    you can go with a development = false default, since that's what people
    use most of the time. I think the main question is, if I miss adding
    design doc or view name by accident, does it blow up at runtime or at
    compile time?"

    Change-Id: I4fc9d716f674df882156cdd1763b8d43204e7d90

commit 24714876f76207a5fc7d72e88bd1f9c57909fcdb
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 19:06:31 2014 -0700

    NCBC-606: Catch and log ServerUnavailableException during failover

    Change-Id: Ie0f74d2bf69cd43ea399762fc39e7ca7f305c11c
    Reviewed-on: http://review.couchbase.org/41384
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit a2cd618f125fc330db742bcb6879c85741e1b3e0
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:43:48 2014 -0700

    NCBC-638: If Server is null when sending an operation then retry operation

    Change-Id: Idfee0ab2852c51cb9c7de1912374d64ee1633be7
    Reviewed-on: http://review.couchbase.org/41374
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 2ca77982d595f15cfa7fe5aa0b97902c94b5f120
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:41:13 2014 -0700

    Update unit tests to use camel cased property values when applicable

    Change-Id: I80ae31e2bf58809574dba965063b21ffe48dc5ec
    Reviewed-on: http://review.couchbase.org/41373
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 33fc515c0248fbeb56fa7123cea954872e4c9b11
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Sep 11 16:35:10 2014 -0700

    NCBC-637: When CCCP fails ensure NRE is not thrown

    Change-Id: I5ef0dbef8298675ceb92e9eb91c49303269133a2
    Reviewed-on: http://review.couchbase.org/41371
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 1e9fff367fa3eefd19069fdfa1dfaae14b4b2a42
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 23:36:43 2014 -0700

    NCBC-586: Make AddRef and Release on IBucket not public

    This commit adds an internal interface IRefCountable with AddRef and
    Release members, so that the two methods are not publically callable on an
    IBucket implementation.

    Change-Id: I11f628094aa1f65ff4780f42e00bbfb088e78898
    Reviewed-on: http://review.couchbase.org/41354
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 983b94b8acbce8eee11314542d8dcdfbb3c03e0d
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 22:34:37 2014 -0700

    NCBC-636: Make outgoing ContractResolver default to camel casing

    This commit makes the incoming and outgoing JSON IContractResolver's type
    configurable from the ClientConfiguration object. The default settings are
    to use a CamelCasedNameContractResolver for both serialization and
    deserilization.

    Change-Id: I3a82f95d5f4608aa8d05e4141a1a089bc300d4e7
    Reviewed-on: http://review.couchbase.org/41353
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 77b78aaa1550c2ea9e0dfa4085fad2cd24814721
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 18:06:55 2014 -0700

    NCBC-635: Provide better failure support for N1QL Query API

    Change-Id: I16d9a44ba653f8846b22e7c679681ab262e1e6bc
    Reviewed-on: http://review.couchbase.org/41351
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>

commit 424a10647f5d6dd21e603fbfe8bb98de305f9491
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 15:43:24 2014 -0700

    NCBC-634: Ensure that CancellationTokenSource is Disposed

    This fix ensures that the CTS will be explicitly disposed so that the
    object does not live through to finalization.

    Change-Id: I39545b97a3c934f2c0a93587fa7147b32d2bd043
    Reviewed-on: http://review.couchbase.org/41335
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 8bd607e8cb545ace5102edf1accb5f862b5caf74
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 15:12:17 2014 -0700

    NCBC-632: Make JsonSerializerSettings configurable

    Change-Id: I21c5620a2192217faa68a62cf440a2a8f3dc8893
    Reviewed-on: http://review.couchbase.org/41331
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit bebae67219460e2e3a69ad2d56c9f98afc824190
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Sep 10 14:26:25 2014 -0700

    NCBC-626: HttpRequestException in queries after rebalance out

    Change-Id: I0eed00d956f231c3826a54da6a983586618d126d
    Reviewed-on: http://review.couchbase.org/41327
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 8db6085e9aecb23cd6defb672f7ec0548536d9de
Author: jeffrymorris <jeffrymorris@gmail.com>


so, my version includes the fix for NCBC-626 (master + gerrit commits)

and I still see 'System.NullReferenceException: Object reference not set to an instance of an object' in Rb2Out test( after rebalance completed)
 http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/103/console

strange thing is that if run without a commit from gerrit, this problem is not present http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/97/consoleFull

{only one exception has been generated there (run Sep 17, 2014 1:22:20 AM with master)

[307.89 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 98%
[308.90 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 98%
[309.33 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException Object reference not set to an instance of an object. at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[309.91 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[310.92 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[311.94 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%

}


https://www.couchbase.com/issues/secure/attachment/21866/NCBC-626_with_gerrit.7z




[NCBC-650] System.OperationCanceledException in CouchbaseBucket.Query when 3/4 nodes restarted Created: 19/Sep/14  Updated: 19/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File test.txt    

 Description   
============================================================
Running SvcRestart-HYBRID: 2014-09-19 01:52:57
    service/restore_delay=5
    workload=HybridWorkloadGroup
    service/name=SYSV_SERVICE
    service/action=kill
    service/count=3
    testcase=ServiceFailureScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\SvcRestart-HYBRID\09-19-14\031977\886b17542e83bb34cd392d356a0403e4

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --service-restore_delay 5 --workload HybridWorkloadGroup
 \ --service-name SYSV_SERVICE --service-action kill --service-count
 \ 3 --testcase ServiceFailureScenario -C share\rexec --rexec_path
 \ C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port 8675
 \ --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
        --cluster_ssh-username=root --cluster_ssh-password=couchbase
    ---------------------------------------->8


[1844.07 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.135
[1845.76 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@6059c26
[1846.78 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.136
[1848.51 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@1b9e7c7b
[1849.59 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.3.206
[1851.20 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@60b8af93
[1852.21 INFO] (Scenario run:97) CHANGE phase done
[1852.21 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[1868.25 INFO] (SDKD log:137)
[1868.29 INFO] (SDKD log:137)
[1868.29 INFO] (SDKD log:137) Unhandled Exception: Unhandled Exception:
[1868.29 INFO] (SDKD log:137) Unhandled Exception:
[1868.29 INFO] (SDKD log:137)
[1868.33 INFO] (SDKD log:137) Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception:
[1868.33 INFO] (SDKD log:137) Unhandled Exception:
[1868.40 INFO] (SDKD log:137) Unhandled Exception: System.OperationCanceledException: The operation was canceled.
[1868.41 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 1
[1868.41 INFO] (SDKD log:137) at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at System.Threading.ManualResetEventSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.SpinThenBlockingWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.InternalWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken)
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](ViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:lin
e 0
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 1128
   at Sdkd.Views.ViewCommand.GetViewObject(CouchbaseBucket cli, Request req, ViewOptions vo) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 164
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 265
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 146
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[1868.41 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[1868.43 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 3
[1868.43 INFO] (SDKD log:137) at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at System.Threading.ManualResetEventSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.SpinThenBlockingWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.InternalWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken)
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](ViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:lin
e 1141
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 1128
   at Sdkd.Views.ViewCommand.GetViewObject(CouchbaseBucket cli, Request req, ViewOptions vo) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 164
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 265
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 146
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[1868.44 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.



 Comments   
Comment by Andrei Baranouski [ 19/Sep/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-650/4b913ca6/NCBC-650.zip
Comment by Jeff Morris [ 19/Sep/14 ]
This is a timeout on a view query, so it should be handled and returned in the IViewResult.Exception field; it shouldn't be an uncaught exception.




[NCBC-648] Forcing JsonSerialization on non-nullable ValueTypes fails Created: 18/Sep/14  Updated: 18/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If you try do to a Set on a non-nullable ValueType, NewtonSoft will throw an exception with the following error message returned in the IResult object: "No JSON content found and type 'System.Int32' is not nullable. Path '', line 0, position 0."

The work around is to use a nullable valuetype instead, for example use bucket.Insert<int?>(..) instead of bucket.Insert<int>(..).




[NCBC-647] Markdown Links not Rendered Created: 18/Sep/14  Updated: 18/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.9
Fix Version/s: 1.3.10

Type: Bug Priority: Minor
Reporter: Chris Malarky Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
There are some links not being rendered correctly because of missing text between the brackets in the markdown.

Three in configuring-logging.markdown:

[](https://github.com/couchbase/couchbase-net-client). If you use these Visual
[](http://logging.apache.org/log4net/release/manual/configuration.html).
See [](http://nlog-project.org/wiki/Configuration_file) for more NLog

And one in packages-for-the.net-client-library.markdown (though I can't see this section in the rendered docs):
[](https://www.couchbase.com/develop/net/current/). The download package






[NCBC-646] Couchbase SDK 1.3.X and 2.X are incompatible from a data (namely flags/transcoder) perspective. Created: 17/Sep/14  Updated: 17/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
While running some unit tests on 1.3.X that used keys inserted by 2.X I noticed that the 1.3.X client could not read values written by 2.X. The problem lies with transcoding and specifically that the 2.X client doesn't respect the type of encoding set in the flags by 1.3.X.




[NCBC-645] [ssl] test Rb2Out-HYBRID stuck with 'Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException' in client logs Created: 17/Sep/14  Updated: 17/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Test Blocker
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive NCBC-645.zip     Text File test_logs.txt    

 Description   
c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng>call packages\sdkdclient\bin\brun.bat -A S3Creds_tmp -I cluster_conf
ig.ini -I sdkd.args --variants HYBRID -d all:debug
[3.21 INFO] (BRun run:436) Initializing S3
[7.80 INFO] (BRun run:441) Initializing history database

============================================================
Running Rb2Out-HYBRID: 2014-09-17 02:29:58
    rebalance/mode=out
    workload=HybridWorkloadGroup
    rebalance/count=2
    testcase=RebalanceScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\Rb2Out-HYBRID\09-17-14\0341
98\28852a8b5890fe94895277f14f7f4f66

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --rebalance-mode out --workload HybridWorkloadGroup
 \ --rebalance-count 2 --testcase RebalanceScenario -C share\rexec
 \ --rexec_path C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port
 \ 8675 --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \ --cluster_ssh-username=root --cluster_ssh-password=couchbase
        --cluster_useSSL=True

[447.89 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[448.91 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[449.93 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[449.94 INFO] (Scenario run:97) CHANGE phase done
[449.95 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[539.95 INFO] (Scenario run:105) REBOUND done. Will collect results
[539.95 DEBUG] (Handle sendMessageAsync:183) > CANCEL@103.72
[539.97 INFO] (SDKD log:137) [Sdkd.Control|Info] Cancelling command 72 for Handle 103
[539.97 DEBUG] (Handle receiveMessage:158) < CANCEL@103.72
[539.97 DEBUG] (Handle sendMessageAsync:183) > CANCEL@104.72
[539.98 INFO] (SDKD log:137) [Sdkd.Control|Info] Cancelling command 72 for Handle 104
[2705.74 DEBUG] (Handle receiveMessage:158) < CANCEL@104.72
[2706.66 DEBUG] (Handle sendMessageAsync:183) > CANCEL@105.72
[2707.19 INFO] (SDKD log:137) [Sdkd.Control|Info] Cancelling command 72 for Handle 105
Terminate batch job (Y/N)? Y




part of the client logs when test stuck(02:37 - 03:14)

2014-09-17 02:37:18,228 [7] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#870 on thread 7
2014-09-17 02:37:18,227 [47] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: 40d8fbd1-7b5d-4334-a688-065d2575cca6 on 10.3.3.206:11207 - a17e5df5-7c63-4030-ba02-41309e68ea55
2014-09-17 02:37:18,225 [21] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: abf3e988-cbfc-4795-8523-325094b9e719 on 10.3.121.134:11207 - 624b4df1-35dc-4842-8a23-7db2310b001b
2014-09-17 02:37:18,232 [50] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#808 on thread 50
2014-09-17 02:37:18,230 [9] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#800 on thread 9
2014-09-17 02:37:18,231 [6] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#820 on thread 6
2014-09-17 02:37:18,233 [43] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#828 on thread 43
2014-09-17 02:37:18,253 [18] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#840 on thread 18
2014-09-17 02:37:18,252 [28] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#800 on thread 28
2014-09-17 02:37:18,254 [53] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#798 on thread 53
2014-09-17 02:37:18,258 [42] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#870 on thread 42
2014-09-17 02:37:18,258 [46] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 981 for key SimpleKeyREP5537REP5537REP5537REP5537REP5537 - rev798
2014-09-17 02:37:18,210 [49] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 515 for key SimpleKeyREP5382REP5382REP5382REP5382REP5382 - rev870
2014-09-17 02:37:19,297 [59] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.135:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,298 [13] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.136:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,299 [62] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.135:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,297 [20] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.135:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,299 [12] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.135:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,297 [15] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.135:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,301 [61] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.136:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,298 [60] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.136:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 02:37:19,300 [11] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.136:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 03:14:51,391 [7] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 427 for key SimpleKeyREP5352REP5352REP5352REP5352REP5352 - rev870
2014-09-17 03:14:51,391 [30] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 226 for key SimpleKeyREP5697REP5697REP5697REP5697REP5697 - rev870
2014-09-17 03:14:51,391 [24] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 958 for key SimpleKeyREP5964REP5964REP5964REP5964REP5964 - rev817
2014-09-17 03:14:51,391 [48] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 456 for key SimpleKeyREP5799REP5799REP5799REP5799REP5799 - rev810
2014-09-17 03:14:51,391 [8] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 461 for key SimpleKeyREP6028REP6028REP6028REP6028REP6028 - rev799
2014-09-17 03:14:51,334 [49] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5382REP5382REP5382REP5382REP5382 using server 10.3.121.134:11207
2014-09-17 03:14:51,391 [44] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 246 for key SimpleKeyREP5854REP5854REP5854REP5854REP5854 - rev870
2014-09-17 03:14:51,391 [6] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 34 for key SimpleKeyREP5909REP5909REP5909REP5909REP5909 - rev820
2014-09-17 03:14:51,391 [9] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 728 for key SimpleKeyREP5752REP5752REP5752REP5752REP5752 - rev800
2014-09-17 03:14:51,391 [43] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 554 for key SimpleKeyREP5750REP5750REP5750REP5750REP5750 - rev828
2014-09-17 03:14:51,391 [50] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 109 for key SimpleKeyREP5503REP5503REP5503REP5503REP5503 - rev808
2014-09-17 03:14:51,391 [18] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 633 for key SimpleKeyREP5670REP5670REP5670REP5670REP5670 - rev840
2014-09-17 03:14:51,391 [28] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 825 for key SimpleKeyREP5706REP5706REP5706REP5706REP5706 - rev800
2014-09-17 03:14:51,391 [53] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 964 for key SimpleKeyREP5289REP5289REP5289REP5289REP5289 - rev798
2014-09-17 03:14:51,391 [42] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 610 for key SimpleKeyREP5850REP5850REP5850REP5850REP5850 - rev870
2014-09-17 03:14:51,334 [46] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5537REP5537REP5537REP5537REP5537 using server 10.3.3.206:11207
2014-09-17 03:14:51,631 [45] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation succeeded 0 for key SimpleKeyREP5291REP5291REP5291REP5291REP5291
2014-09-17 03:14:51,631 [47] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation succeeded 0 for key SimpleKeyREP5660REP5660REP5660REP5660REP5660
2014-09-17 03:14:51,631 [21] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation succeeded 0 for key SimpleKeyREP5520REP5520REP5520REP5520REP5520
2014-09-17 03:14:51,632 [52] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation succeeded 0 for key SimpleKeyREP5089REP5089REP5089REP5089REP5089
2014-09-17 02:37:19,300 [63] ERROR Couchbase.Views.ViewClient - System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.3.121.136:18092
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
2014-09-17 03:14:54,754 [7] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5352REP5352REP5352REP5352REP5352 using server 10.3.3.206:11207
2014-09-17 03:14:54,756 [49] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: c1a7c0f9-9ae6-406a-870f-221d1cd5abc7 | 10.3.121.134:11207 | [0, 2] - 45e4bde8-afd4-4084-b4fe-1952631c5f47 - Disposed: False
2014-09-17 03:14:54,760 [18] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5670REP5670REP5670REP5670REP5670 using server 10.3.3.206:11207
2014-09-17 03:14:54,760 [28] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5706REP5706REP5706REP5706REP5706 using server 10.3.3.206:11207
2014-09-17 03:14:54,762 [46] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: dfdafeeb-7f31-4104-94ea-a7c9c951aa6e | 10.3.3.206:11207 | [0, 2] - 728e6fe1-8778-4acd-b15d-832d832b0a1a - Disposed: False
2014-09-17 03:14:54,760 [53] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5289REP5289REP5289REP5289REP5289 using server 10.3.3.206:11207
2014-09-17 03:14:54,761 [42] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5850REP5850REP5850REP5850REP5850 using server 10.3.3.206:11207
2014-09-17 03:14:54,749 [20] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,750 [15] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,760 [59] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,747 [13] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,748 [62] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,760 [50] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5503REP5503REP5503REP5503REP5503 using server 10.3.121.134:11207
2014-09-17 03:14:54,750 [12] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,758 [9] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5752REP5752REP5752REP5752REP5752 using server 10.3.3.206:11207
2014-09-17 03:14:54,754 [30] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5697REP5697REP5697REP5697REP5697 using server 10.3.121.134:11207
2014-09-17 03:14:54,752 [60] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,753 [11] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - trying again: 1
2014-09-17 03:14:54,755 [48] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP5799REP5799REP5799REP5799REP5799 using server 10.3.3.206:11207



 Comments   
Comment by Jeff Morris [ 17/Sep/14 ]
Hi Andrei -

Can you define "stuck"? Seeing exceptions in the logs is expected, but if the client has stopped completely, this is definitely a blocking issue.

-Jeff
Comment by Andrei Baranouski [ 17/Sep/14 ]
yes, the client has stopped completely
 I only got a new batch of activities (in logs), after I click Ctrl+c in terminal where I run the tests.
That's all I can tell you now. let me know if you need some detail on this issue
Comment by Jeff Morris [ 17/Sep/14 ]
Hi Andrei -

Can you do a "Debug->Break All" and look at the threads to see where it's blocking? I am guessing it's on one of the Wait()'s that doesn't have a timeout set.

Thanks,

Jeff




[NCBC-519] Code Comments & Sandcastle Documentation Created: 17/Jun/14  Updated: 17/Sep/14  Resolved: 17/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Beta 1 Documentation and Sample App




[NCBC-644] ops/sec is not restored to the expected value even when warmup completed (restart 3/4 nodes) Created: 17/Sep/14  Updated: 17/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: HTML File c8a06f8889f4ee9408205f024dabd0fe-CB.html     HTML File c8a06f8889f4ee9408205f024dabd0fe-MC.html     Microsoft Excel report (38).xls    

 Description   
http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/97/consoleFull

Running SvcRestart-HYBRID: 2014-09-17 01:47:02
    service/restore_delay=5
    workload=HybridWorkloadGroup
    service/name=SYSV_SERVICE
    service/action=kill
    service/count=3
    testcase=ServiceFailureScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\SvcRestart-HYBRID\09-17-14\031622\c8a06f8889f4ee9408205f024dabd0fe

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
        --service-restore_delay 5 --workload HybridWorkloadGroup
 \
        --service-name SYSV_SERVICE --service-action kill --service-count
 \
        3 --testcase ServiceFailureScenario -C share\rexec --rexec_path
 \
        C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port 8675
 \
        --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \
        --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \
        --cluster_ssh-username=root --cluster_ssh-password=couchbase
    ---------------------------------------->8
[1587.82 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
[1587.91 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: Execute '/etc/init.d/couchbase-server stop' on 3 nodes waiting 1 seconds between each invocation sleep for 5 seconds and restore the nodes. Restoring is peformed by: re-active the services by invoking /etc/init.d/couchbase-server starton each of the nodes. Rebound for 90 seconds.


..............


[1687.17 INFO] (SDKD log:137)  "ViewName": "test_view"
[1687.17 INFO] (SDKD log:137) } 
[1717.17 INFO] (Scenario run:86) Starting CHANGE phase
[1717.17 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.121.135
[1721.05 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409 
[1722.70 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@6dc8f3cd
[1723.71 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.121.136
[1726.96 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@4271c5bc
[1727.98 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.3.206
[1731.62 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@1bb1deea
[1732.63 INFO] (Scenario sleepAndDo:109) Sleeping 5 seconds
[1737.63 INFO] (Scenario executeChange:134) Turning on services for nodes
[1737.63 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.135
[1739.48 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@ab245dc
[1740.53 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.136
[1742.20 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@5c538b31
[1743.25 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.3.206
[1744.92 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@66de04cd
[1745.93 INFO] (Scenario run:97) CHANGE phase done
[1745.93 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[1751.36 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException Object reference not set to an instance of an object. at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 268
[1835.93 INFO] (Scenario run:105) REBOUND done. Will collect results
[1835.93 DEBUG] (Handle sendMessageAsync:183) > CANCEL@278.597



please see report c8a06f8889f4ee9408205f024dabd0fe-MC.html

warmup should not take more than a minute(it should be even less 20 seconds, only 1600 items are in the bucket) but within 90 seconds ops/sec statistic is extremely slow.

in client logs I see a large number of exceptions:
2014-09-17 01:49:19,230 [27] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: be174e18-0c3f-4c4a-ab65-5ac8575468a8 | 10.3.121.135:11210 | [0, 2] - 8f050465-bd1e-4798-9e75-b7dced55a859 - Disposed: False
2014-09-17 01:49:19,230 [27] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP3692REP3692REP3692REP3692REP3692 using 313 on 10.3.121.135:11210
2014-09-17 01:49:19,230 [27] WARN Couchbase.IO.ConnectionBase - Opcode=Set | Key=SimpleKeyREP3692REP3692REP3692REP3692REP3692 | Host=10.3.121.135:11210
System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
   at System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
   at System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   at Couchbase.IO.Strategies.EapConnection.Send[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 38
2014-09-17 01:49:19,230 [27] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: be174e18-0c3f-4c4a-ab65-5ac8575468a8 on 10.3.121.135:11210 - 8f050465-bd1e-4798-9e75-b7dced55a859
2014-09-17 01:49:19,231 [27] DEBUG Couchbase.Core.Server - Sending using server 10.3.121.134:11210
2014-09-17 01:49:19,231 [27] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 4be40fbd-8d82-49de-931f-598e6276e7cd | 10.3.121.134:11210 | [0, 2] - b7812f0a-380b-41a4-92f4-ac1db0e0f3a0 - Disposed: False
2014-09-17 01:49:19,231 [27] INFO Couchbase.IO.ConnectionBase - Sending key using 0 on 10.3.121.134:11210
2014-09-17 01:49:19,228 [31] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 457 for key SimpleKeyREP3796REP3796REP3796REP3796REP3796 - rev4
2014-09-17 01:49:19,231 [31] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP3796REP3796REP3796REP3796REP3796 using server 10.3.121.135:11210
2014-09-17 01:49:19,231 [31] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: e63556d1-caf1-44fc-8f81-11a670a45a9b | 10.3.121.135:11210 | [0, 2] - 3cd6215b-e17c-493c-bf94-885b7cafaf1a - Disposed: False
2014-09-17 01:49:19,231 [31] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP3796REP3796REP3796REP3796REP3796 using 457 on 10.3.121.135:11210
2014-09-17 01:49:19,231 [31] WARN Couchbase.IO.ConnectionBase - Opcode=Get | Key=SimpleKeyREP3796REP3796REP3796REP3796REP3796 | Host=10.3.121.135:11210
System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
   at System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
   at System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   at Couchbase.IO.Strategies.EapConnection.Send[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 38
2014-09-17 01:49:19,231 [31] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: e63556d1-caf1-44fc-8f81-11a670a45a9b on 10.3.121.135:11210 - 3cd6215b-e17c-493c-bf94-885b7cafaf1a
2014-09-17 01:49:19,231 [31] DEBUG Couchbase.Core.Server - Sending using server 10.3.121.136:11210
2014-09-17 01:49:19,231 [31] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 092717c9-ef47-41df-8a81-839302b58bde | 10.3.121.136:11210 | [0, 2] - df9f7db5-1e94-4d4e-ac0d-441ff1b9c698 - Disposed: False
2014-09-17 01:49:19,231 [31] INFO Couchbase.IO.ConnectionBase - Sending key using 0 on 10.3.121.136:11210



 Comments   
Comment by Andrei Baranouski [ 17/Sep/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-644/78bc58e9/NCBC-644.zip




[NCBC-643] TimeSpan expiration under 1 sec results in an infinite timeout Created: 16/Sep/14  Updated: 16/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.3.6
Fix Version/s: 1.3.10

Type: Bug Priority: Major
Reporter: Jeff Dillon Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Starting in 1.3.6, when setting the TimeSpan expiration to less than 1 sec it appears to now round down to 0 which implies an infinite timeout. This does not currently have direct production impact, but this changed behavior broke the testing process for the customer.

From the customer:

"There looks to be 2 options to specify timeouts in .NET SDK, either with DateTime or with TimeSpan. Both of them technically allow users to specify timeouts with just a fraction of a second, even though internally Couchbase works with full seconds.

Example:
var result1 = client.ExecuteStore(StoreMode.Set, "a", 1, DateTime.UtcNow.AddMilliseconds(500));
var result2 = client.ExecuteStore(StoreMode.Set, "b", 1, TimeSpan.FromMilliseconds(500));

Behavior for first method remains unchanged. The DateTime value will get recalculated into UNIX time and rounded down to full seconds. The key "a" will then be stored in Couchbase with expiration equal to current time and will expire almost instantly. That is pretty much in line with what user intended.

The problem is with the second method. In .NET SDK 1.3.5 this TimeSpan value would get recalculated into a UNIX time the same way as DateTime and result in the same behavior. But NCBC-485 changed this. From .NET SDK 1.3.6 this TimeSpan is passed into Couchbase as raw seconds. You trim the 0.5 second value down to 0 seconds and Couchbase server then interprets this as infinite timeout. But that is the complete opposite of what user actually intended."

A fix suggestion is as follows:

https://github.com/couchbase/couchbase-net-client/blob/release13/src/Enyim.Caching/MemcachedClient.cs
line 1046 should be modified to:
if (TimeSpan.FromSeconds(1) <= validFor && validFor < TimeSpan.FromSeconds(((60 * 60) * 24) * 30))




[NCBC-642] Use IOControl to set heartbeat settings on each TCP connection Created: 15/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency




[NCBC-563] NullReferenceException in CouchbaseConfigContext.LoadConfig Created: 25/Jul/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Bug Priority: Blocker
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive log.zip    

 Description   
very often in different tests I see the following exception


http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/38/consoleFull

Running SvcRestart-HYBRID: 2014-07-25 05:20:15
..............

[365.86 INFO] (SDKD log:137) Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
[366.20 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[366.20 INFO] (SDKD log:137)  at Couchbase.Configuration.CouchbaseConfigContext.LoadConfig(IBucketConfig bucketConfig) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\CouchbaseConfigContext.cs:line 51
   at Couchbase.Configuration.ConfigContextBase..ctor(IBucketConfig bucketConfig, ClientConfiguration clientConfig, Func`2 ioStrategyFactory, Func`3 connectionPoolFactory, Func`5 saslFactory, IByteConverter converter, ITypeSerializer serializer) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 51
   at Couchbase.Configuration.CouchbaseConfigContext..ctor(IBucketConfig bucketConfig, ClientConfiguration clientConfig, Func`2 ioStrategyFactory, Func`3 connectionPoolFactory, Func`5 saslFactory, IByteConverter converter, ITypeSerializer serializer) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\CouchbaseConfigContext.cs:line 22
   at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig(IBucketConfig bucketConfig) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\CarrierPublication\CarrierPublicationProvider.cs:line 63
   at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig(String bucketName, String password) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\CarrierPublication\CarrierPublicationProvider.cs:line 44
   at Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\ClusterManager.cs:line 155
   at Couchbase.CouchbaseCluster.OpenBucket(String bucketname, String password) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\CouchbaseCluster.cs:line 82
   at Sdkd.Couchbase.ClientFactory.FindExistingClient(ClientConfiguration config) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 55
   at Sdkd.Couchbase.ClientFactory.CreateClient(ClientConfiguration config) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 262
   at SdkdConsole.Daemon.Handle.CreateHandle(Request req) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 84
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 103
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[366.20 ERROR] (BRun maybePropagate:243) Suppressing driver-related error
com.couchbase.sdkdclient.context.HarnessException: Driver crashed
at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:192) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:183) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.6.0_27]
at java.lang.Thread.run(Unknown Source) ~[na:1.6.0_27]
[366.21 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@203.259
[366.21 WARN] (STester close:170) While stopping driver
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.6.0_27]
at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.6.0_27]
at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.6.0_27]
at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.6.0_27]
at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.6.0_27]
at com.couchbase.sdkdclient.handle.Handle.sendMessageAsync(Handle.java:188) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.handle.Handle.close(Handle.java:254) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.HandleManager.stopAll(HandleManager.java:26) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.HostPortDriver.stop(HostPortDriver.java:118) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.ExecutingDriver.stop(ExecutingDriver.java:117) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.stester.STester.close(STester.java:167) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.runHarness(BRun.java:287) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.runSingleTest(BRun.java:394) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.run(BRun.java:478) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.main(BRun.java:510) [sdkdclient-1.0-SNAPSHOT.jar:na]


client logs http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/38/artifact/log.txt

Jeff, believe that this is a problem on client side?



 Comments   
Comment by Jeff Morris [ 25/Jul/14 ]
Yes, I'll take a look into this today Andrei.
Comment by Jeff Morris [ 25/Jul/14 ]
Andrei - can you attach the SDK logs to this ticket?
Comment by Jeff Morris [ 25/Jul/14 ]
This is what's happening:

When the client attempts to bootstrap and the node it elects to bootstrap off of is in an inconsistent state, during the SASL process the first fails and thus the SaslMechanism is never chosen leading to a subsequent NRE:

https://github.com/couchbase/couchbase-net-client/blob/master/Src/Couchbase/Authentication/SASL/SaslFactory.cs#L24

https://github.com/couchbase/couchbase-net-client/blob/master/Src/Couchbase/Configuration/CouchbaseConfigContext.cs#L51

The simple solution seems to be check for null - which will push the problem further out. It should be a "cannot bootstrap error, please try again" perhaps looping through the bootstrap list in the configuration.
Comment by Jeff Morris [ 25/Jul/14 ]
commit b5fc255555f26eb5f691eb0441c7997577fc79e6




CRAM MD5 SASL Support (NCBC-459)

[NCBC-487] Create Sasl Mechanism Factory Created: 24/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Technical task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Factory for creating Sasl mechanisms based off of CB servers supported mechanisms from ListMechanism.

 Comments   
Comment by Jeff Morris [ 26/May/14 ]
commit bd6601186c0007b771b84a7cbdc88a8c5f20aebc




Set, add, and replace should be separate methods (NCBC-123)

[NCBC-462] Add support for Update operation Created: 07/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Technical task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-481] Sandcastle Documentation for Beta Created: 14/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive developer-preview-1-help.zip    

 Comments   
Comment by Jeff Morris [ 15/May/14 ]
Sans looking and complete documentation, attached is the sandcastle generated HTML for the .NET 2 DP1. Closing this ticket, but will open more to handle formatting and additional commenting. Please contents of attached zip - extract and open index.html in a browser.
Comment by Matt Ingenthron [ 15/May/14 ]
Nice!




Subclass KeyMapper for VBucket and Ketama based Key mapping (NCBC-410)

[NCBC-412] Develop Ketama based Keymapper Created: 10/Mar/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0 Beta

Type: Technical task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-621] IRI Parsing error when bootstrapping on mono Created: 05/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.3.9
Fix Version/s: 1.3.10

Type: Bug Priority: Minor
Reporter: Michael Nitschinger Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Hey Jeff,

I tried the 1.3.9 one on mono, but there appears to be a weird issue. I use the 4.5 compat mode with 1.3.9, but also tried 4.0. Anyways, it seems to bootstrap and doesn't complain in general, but it fails when working on the URI extensions.

Maybe this is something easy to fix or we just dont support mono here? I've attached the logs.



 Comments   
Comment by Michael Nitschinger [ 05/Sep/14 ]
Last login: Fri Sep 5 11:10:52 on ttys001
clear; cd "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug"; export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/3.8.0/share/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.8.0/lib/pkgconfig"; export PKG_CONFIG_LIBDIR=""; export PATH="/Applications/Xamarin Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/sbin:/sbin"; export MONO_GAC_PREFIX="/Applications/Xamarin Studio.app/Contents/MacOS"; export XBUILD_FRAMEWORK_FOLDERS_PATH=""; "/Library/Frameworks/Mono.framework/Versions/3.8.0/bin/mono" --debug "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug/cbworld.exe" ; echo; read -p 'Press any key to continue...' -n1; exit
┌─[michael@daschlbase]─[~]
└──╼ clear; cd "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug"; export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/3.8.0/share/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.8.0/lib/pkgconfig"; export PKG_CONFIG_LIBDIR=""; export PATH="/Applications/Xamarin Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/sbin:/sbin"; export MONO_GAC_PREFIX="/Applications/Xamarin Studio.app/Contents/MacOS"; export XBUILD_FRAMEWORK_FOLDERS_PATH=""; "/Library/Frameworks/Mono.framework/Versions/3.8.0/bin/mono" --debug "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug/cbworld.exe" ; echo; read -p 'Press any key to continue...' -n1; exit




DEBUG [1] (:0) - Initializing Couchbase.CouchbasePool
 WARN [1] (:0) - Creating new client. CID: c5e9ddd2-b6bd-4d47-b72b-8e4bc486f26e CouchbaseClient
 WARN [1] (:0) - Starting Couchbase.CouchbasePool
 WARN [1] (:0) - Starting the listener. Queue=True
 WARN [Threadpool worker] (:0) - Started working.
 WARN [Threadpool worker] (:0) - Looking for the first working node.
DEBUG [Threadpool worker] (:0) - Found config for bucket default.
 WARN [Threadpool worker] (:0) - Resolved pool url http://127.0.0.1:8091/pools to http://127.0.0.1:8091/pools/default/bucketsStreaming/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96
 WARN [Threadpool worker] (:0) - Start receiving messages.
 INFO [Threadpool worker] (:0) - Received new configuration.
 INFO [Threadpool worker] (:0) - Has vbucket. Server count: 1
DEBUG [Threadpool worker] (:0) - Found address 127.0.0.1 for 127.0.0.1
DEBUG [Threadpool worker] (:0) - Using address 127.0.0.1 for 127.0.0.1
 WARN [Threadpool worker] (:0) - Creating node Couchbase.CouchbasePool
ERROR [Threadpool worker] (:0) - Failed to initialize the pool.
System.MissingFieldException: Cannot find variable s_IriParsing.
  at System.MonoType.InvokeMember (System.String name, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, System.String[] namedParameters) [0x00549] in /Volumes/build-root-ramdisk/mono-3.8.0/mcs/class/corlib/System/MonoType.cs:518
  at System.Type.InvokeMember (System.String name, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args) [0x00000] in /Volumes/build-root-ramdisk/mono-3.8.0/mcs/class/corlib/System/Type.cs:1411
  at Couchbase.Extensions.UriExtensions.EnableIriParsing (System.Uri uri, Boolean enable) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.CreateNode (System.Net.IPEndPoint endpoint, ISaslAuthenticationProvider auth, System.Collections.Generic.Dictionary`2 nodeInfo) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.InitVBucket (Couchbase.Configuration.ClusterConfig config, ISaslAuthenticationProvider auth) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.ReconfigurePool (Couchbase.Configuration.ClusterConfig config) [0x00000] in <filename unknown>:0
 WARN [Threadpool worker] (:0) - Processing message: {"name":"default","bucketType":"membase","authType":"sasl","saslPassword":"","proxyPort":0,"replicaIndex":false,"uri":"/pools/default/buckets/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96","streamingUri":"/pools/default/bucketsStreaming/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96","localRandomKeyUri":"/pools/default/buckets/default/localRandomKey","controllers":{"flush":"/pools/default/buckets/default/controller/doFlush","compactAll":"/pools/default/buckets/default/controller/compactBucket","compactDB":"/pools/default/buckets/default/controller/compactDatabases","purgeDeletes":"/pools/default/buckets/default/controller/unsafePurgeBucket","startRecovery":"/pools/default/buckets/default/controller/startRecovery"},"nodes":[{"couchApiBaseHTTPS":"https://127.0.0.1:18092/default%2B56d89e666ebf2e54ccb952e114c79f96","couchApiBase":"http://127.0.0.1:8092/default%2B56d89e666ebf2e54ccb952e114c79f96","replication":1,"clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@127.0.0.1","thisNode":true,"hostname":"127.0.0.1:8091","clusterCompatibility":196608,"version":"3.0.0-1118-rel-enterprise","os":"x86_64-apple-darwin10.8.0","ports":{"sslProxy":11214,"httpsMgmt":18091,"httpsCAPI":18092,"proxy":11211,"direct":11210}}],"stats":{"uri":"/pools/default/buckets/default/stats","directoryURI":"/pools/default/buckets/default/statsDirectory","nodeStatsListURI":"/pools/default/buckets/default/nodes"},"ddocs":{"uri":"/pools/default/buckets/default/ddocs"},"nodeLocator":"vbucket","fastWarmupSettings":false,"autoCompactionSettings":false,"uuid":"56d89e666ebf2e54ccb952e114c79f96","vBucketServerMap":{"hashAlgorithm":"CRC","numReplicas":0,"serverList":["127.0.0.1:11210"],"vBucketMap":[[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]]},"bucketCapabilitiesVer":"","bucketCapabilities":["cbhello","touch","couchapi","cccp"]}
 INFO [1] (:0) - CID Config: c5e9ddd2-b6bd-4d47-b72b-8e4bc486f26e {"Servers":{"Bucket":"default","BucketPassword":"","Username":"","Password":"","Urls":[{"Uri":"http://127.0.0.1:8091/pools"}],"Port":1,"RetryCount":0,"RetryTimeout":"00:00:02","ObserveTimeout":"00:01:00","HttpRequestTimeout":"00:01:00","VBucketRetryCount":2,"ViewRetryCount":2},"SocketPool":{"MinPoolSize":10,"MaxPoolSize":20,"ConnectionTimeout":"00:00:10","QueueTimeout":"00:00:02.5000000","ReceiveTimeout":"00:00:10","DeadTimeout":"00:00:02","FailurePolicyFactory":{"Type":null,"Factory":null,"Content":{"Content":null}},"LingerTime":"00:00:10","LingerEnabled":false},"HeartbeatMonitor":{"Uri":"","Interval":10000,"Enabled":true},"HttpClient":{"InitializeConnection":true,"Timeout":"00:01:15"},"NodeLocator":{"Type":null,"Factory":null,"Content":{"Content":null}},"KeyTransformer":{"Type":null,"Factory":null,"Content":{"Content":null}},"Transcoder":{"Type":null,"Factory":null,"Content":{"Content":null}},"PerformanceMonitorFactory":{"Factory":null},"DocumentNameTransformer":{"Type":"Couchbase.Configuration.ProductionModeNameTransformer, Couchbase, Version=1.3.9.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2","Factory":null,"Content":{"Content":null}},"HttpClientFactory":{"Type":"Couchbase.DefaultHttpClientFactory, Couchbase, Version=1.3.9.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2","Factory":null,"Content":{"Content":null}},"VBucketRetryCount":2,"ViewRetryCount":2}
finding
storingFalse

Press any key to continue...
Comment by Michael Nitschinger [ 05/Sep/14 ]
Code I'm using is:

using System;
using Couchbase;
using Enyim.Caching.Memcached;
using Newtonsoft.Json;

namespace cbworld
{
class MainClass
{
public static void Main (string[] args)
{
log4net.Config.XmlConfigurator.Configure();
var client = new CouchbaseClient ();
Console.WriteLine ("finding" + client.Get("key"));
var result = client.Store (StoreMode.Set, "key", "Hello World");
Console.WriteLine ("storing" + result);
}
}

}
Comment by Jeff Morris [ 05/Sep/14 ]
This is a difference in the System.URI class between .NET and Mono.
Comment by Don Pinto [ 05/Sep/14 ]
I don't think we even test on Mono today.
Downgrading this to minor.

Thanks,




[NCBC-622] Exception < 1024 vbuckets Created: 05/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 2.0 DP2
Fix Version/s: backlog-2.0

Type: Bug Priority: Major
Reporter: Michael Nitschinger Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Hey,

I think the code probably doesn't work with 128 vbuckets as used on mac. On a linux machine with 1024 it works fine.


Unhandled Exception:
System.IndexOutOfRangeException: Array index is out of range.
  at Couchbase.Core.Buckets.VBucketKeyMapper.CreateVBuckets () [0x00000] in <filename unknown>:0
  at Couchbase.Core.Buckets.VBucketKeyMapper..ctor (System.Security.Cryptography.HashAlgorithm algorithm, System.Collections.Generic.List`1 servers, Couchbase.Configuration.Server.Serialization.VBucketServerMap vBucketServerMap) [0x00000] in <filename unknown>:0
  at Couchbase.Core.Buckets.VBucketKeyMapper..ctor (System.Collections.Generic.List`1 servers, Couchbase.Configuration.Server.Serialization.VBucketServerMap vBucketServerMap) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.CouchbaseConfigContext.LoadConfig (IBucketConfig bucketConfig) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.ConfigContextBase..ctor (IBucketConfig bucketConfig, Couchbase.Configuration.Client.ClientConfiguration clientConfig, System.Func`2 ioStrategyFactory, System.Func`3 connectionPoolFactory, System.Func`4 saslFactory) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.CouchbaseConfigContext..ctor (IBucketConfig bucketConfig, Couchbase.Configuration.Client.ClientConfiguration clientConfig, System.Func`2 ioStrategyFactory, System.Func`3 connectionPoolFactory, System.Func`4 saslFactory) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig (IBucketConfig bucketConfig) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig (System.String bucketName, System.String password) [0x00000] in <filename unknown>:0
  at Couchbase.Core.ClusterManager.CreateBucket (System.String bucketName, System.String password) [0x00000] in <filename unknown>:0
  at Couchbase.Core.ClusterManager.CreateBucket (System.String bucketName) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbaseCluster.OpenBucket (System.String bucketname) [0x00000] in <filename unknown>:0
  at couchbase_net_client_example.Program.Main (System.String[] args) [0x00017] in /Users/michaelnitschinger/Downloads/couchbase-net-client-2.0-dp2-example/couchbase-net-client-example/Program.cs:17
[ERROR] FATAL UNHANDLED EXCEPTION: System.IndexOutOfRangeException: Array index is out of range.
  at Couchbase.Core.Buckets.VBucketKeyMapper.CreateVBuckets () [0x00000] in <filename unknown>:0
  at Couchbase.Core.Buckets.VBucketKeyMapper..ctor (System.Security.Cryptography.HashAlgorithm algorithm, System.Collections.Generic.List`1 servers, Couchbase.Configuration.Server.Serialization.VBucketServerMap vBucketServerMap) [0x00000] in <filename unknown>:0
  at Couchbase.Core.Buckets.VBucketKeyMapper..ctor (System.Collections.Generic.List`1 servers, Couchbase.Configuration.Server.Serialization.VBucketServerMap vBucketServerMap) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.CouchbaseConfigContext.LoadConfig (IBucketConfig bucketConfig) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.ConfigContextBase..ctor (IBucketConfig bucketConfig, Couchbase.Configuration.Client.ClientConfiguration clientConfig, System.Func`2 ioStrategyFactory, System.Func`3 connectionPoolFactory, System.Func`4 saslFactory) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.CouchbaseConfigContext..ctor (IBucketConfig bucketConfig, Couchbase.Configuration.Client.ClientConfiguration clientConfig, System.Func`2 ioStrategyFactory, System.Func`3 connectionPoolFactory, System.Func`4 saslFactory) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig (IBucketConfig bucketConfig) [0x00000] in <filename unknown>:0
  at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig (System.String bucketName, System.String password) [0x00000] in <filename unknown>:0
  at Couchbase.Core.ClusterManager.CreateBucket (System.String bucketName, System.String password) [0x00000] in <filename unknown>:0
  at Couchbase.Core.ClusterManager.CreateBucket (System.String bucketName) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbaseCluster.OpenBucket (System.String bucketname) [0x00000] in <filename unknown>:0
  at couchbase_net_client_example.Program.Main (System.String[] args) [0x00017] in /Users/michaelnitschinger/Downloads/couchbase-net-client-2.0-dp2-example/couchbase-net-client-example/Program.cs:17
The application was terminated by a signal: SIGHUP






[NCBC-364]  VBucket Locator Component Created: 13/Jan/14  Updated: 15/Sep/14  Due: 27/Jan/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
Fix Version/s: 2.0 Beta

Type: Story Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
As a user,
I want a VBucket Locator Component
So that operations send/retrieve data from the correct node in the cluster based off of the hash of the key

Acceptance:
-The hash creator is swappable
-The default hash supported is CRC32
-The correct node is returned during a VBucket look-up

 

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Refactored and completed last week.




[NCBC-640] Couchbase.CouchbaseCluster is redundant. Created: 12/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP3
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Brett Lawson Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The CouchbaseCluster class duplicates the namespace. Should this class not be named simply 'Cluster'?




[NCBC-561] During a Hard Failover -1 is returned in VBucketMap for Primary and all Replicas Created: 24/Jul/14  Updated: 15/Sep/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Test Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Example VBucketMap:

["192.168.56.102:11210","192.168.56.103:11210"],"vBucketMap":[[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]...

This causes a IndexOutOfRangeException.

 Comments   
Comment by Jeff Morris [ 24/Jul/14 ]
Spoke with Mordy and trying the following approach:

1 - If Primary is -1, then shuffle server list and randomly take a server
2 - Send operation and if NMV is returned, update config (add wait event w/timeout to block until set by NotifyObserver)
3 - Set a property for retry attempts and a configurable max retry limit
4 - Resend operation
5 - If max retries, then operation failed and return failure response to app layer




[NCBC-625] View do not work with dynamic type or strings on Mono Created: 06/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Improvement Priority: Minor
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From Michaels review:

"I think because of my own fault I was not able to get views to work because there it was complaining about the dynamic part which needs a dll that is not included, and when I did a .Query<string> Newtonsoft complained it could not convert it to a string. But don’t mind on that one, I’m sure it works good with VS of course."




[NCBC-551] After a hard Failover in flight operations continue to use failed over node Created: 13/Jul/14  Updated: 15/Sep/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Test Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When a node is failed over, in flight operations continue to try to use the failed over node's TCP connections, which are "dead". When this occurs, the client should retry x times and then go back one step to get a new VBucket mapping and node to use and then retry again.

 Comments   
Comment by Chad Kreimendahl [ 26/Aug/14 ]
This is actually a major issue for us in the current code base. I'm curious if this could be resolved and backported ASAP?




[NCBC-540] Ensure TTL on operations follows documented rules Created: 01/Jul/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
See here: http://docs.couchbase.com/couchbase-devguide-2.0/#about-document-expiration




[NCBC-569] Client hangs on CLOSE_WAIT when node is removed from Cluster or when trying to bootstrap against node that isn't in a cluster. Created: 29/Jul/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-39] Minimize key size by storing as binary array Created: 30/Apr/12  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Improvement Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .NET client, Couchbase Server 1.8


 Description   
To reduce overall memory consumption, and make most efficient use of resources, the client should be able to store data as a binary array instead of in a string representation. For example, a GUID which might take 36 bytes as a string can be stored as a 20-byte binary array.

However, the .NET client API doesn't provide any means to store non-string representations of keys, so we're not able to maximize efficiency in this way.






[NCBC-103] Provide Consistent Order of Parameters Created: 24/Aug/12  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Provide consistent, predictable order for method parameters as other SDKS.




[NCBC-612] Provide configurable timeouts for View and N1QL queries Created: 28/Aug/14  Updated: 15/Sep/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
These should default to certain values at the ClientConfiguration level and be overridable at the BucketConfiguration and the query levels themselves.




Provide support for Management API (NCBC-594)

[NCBC-596] Create BucketManager class Created: 20/Aug/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Technical task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Methods required:
-------------------------------
insertDesignDocument
updateDesignDocument
getDesignDocument
removeDesignDocument
listDesignDocuments
flush


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.5pz82devlh8d
createBucket
removeBucket


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.t4f3x16dy0fh







[NCBC-619] Make Socket connection timeout configurable Created: 31/Aug/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When trying to connect to a down node, the client will wait the default timeout before failing. This blocks the user making them wait quite awhile (~20 seconds) before trying the next node in the list. This patch should make the timeout configurable.




[NCBC-99] Provide Error Handling Consistent with Other SDKs Created: 24/Aug/12  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Anonymous Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Provide Error Handling Consistent with Other SDKs and underlying protocol.

 Comments   
Comment by Matt Ingenthron [ 24/Aug/12 ]
Karen: there are a number of specific bugs filed and work underway on this, planned for 1.1.7. Given the context, I don't know if they'll ever be perfectly consistent, but that's okay.

Was there something specific you were concerned with here?




[NCBC-493] Implement Replica Read Capability Created: 29/May/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by NCBC-84 Replica read command Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-568 Update IVBucket to support more than ... Technical task Resolved Jeff Morris  




[NCBC-391] Handle case where config thread cluster state is updated after bootstrapping Created: 13/Feb/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The config thread uses the information from the client configuration to bootstrap, however after bootstrapping this information (cluster topology) may change if nodes are added and/or removed. This ticket is to handle the case when the node that the config thread is listening to, goes offline.




Provide support for Management API (NCBC-594)

[NCBC-595] Create and Implement ClusterManager class Created: 20/Aug/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Technical task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Methods required:
addNode
removeNode
rebalance
listBuckets
createBucket
removeBucket


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.t4f3x16dy0fh







[NCBC-535] Complete Awaitable Socket IO Engine Created: 26/Jun/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Provide Async TAP methods for all operations - view, kv, and n1ql

 Description   
This is required so that TAP methods are async all the way through. This allows the users of the client to await on an operation.




[NCBC-630] complete 2.0 sandcastle docs Created: 08/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Brett Lawson
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive couchbase-net-sdk-2.0-sandcastle.zip    

 Description   
Please come up with a set of commits to update the sandcastle docs to be complete and add the interface taxonomy.

 Comments   
Comment by Jeff Morris [ 08/Sep/14 ]
For reference, this the current sandcastle docs. Use index.html to run off you desktop.




[NCBC-440] Cluster object needs to cluster level Authentication Created: 28/Apr/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: New Feature Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: 2.0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
While buckets are authenticated, cluster level authentication also needs to be done.




[NCBC-594] Provide support for Management API Created: 20/Aug/14  Updated: 15/Sep/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-595 Create and Implement ClusterManager c... Technical task Open Jeff Morris  
NCBC-596 Create BucketManager class Technical task Open Jeff Morris  

 Description   
As an admin
I want to administrate my cluster
So that I can automate tasks such as adding and removing buckets.





[NCBC-516] .NET SDK 2.0 Documentation Created: 17/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 2.0 DP2
Fix Version/s: 2.0 Beta

Type: Epic Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-495 Code Comments & Sandcastle Documentation Technical task Closed Jeff Morris  
Epic Name: Beta 1 Documentation and Sample App
Epic Status: To Do

 Description   
This includes Code Comments and Sandcastle docs, and Example Application, and general developer guide. The release of Beta 1 depends upon the completion of this epic.




[NCBC-496] 2.0 Sample Application Created: 02/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: 2.0 DP1
Fix Version/s: 2.0 Beta

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-518] 2.0 Sample Application Created: 17/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: 2.0 DP2
Fix Version/s: 2.0 Beta

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Beta 1 Documentation and Sample App

 Description   
Probably do something different than another beer app? dunno...

 Comments   
Comment by Matt Ingenthron [ 17/Jun/14 ]
Whatever we do there, we should implement commonly and across the board.
Comment by Jeff Morris [ 17/Jun/14 ]
Todo list? Blog? Something that uses a wide range of operations and features...also, an application that realistically has potential for scale.
Comment by Matt Ingenthron [ 17/Jun/14 ]
The earlier thought was that we'd move to a music sharing oriented app. There is a dataset for this. Let me follow up with the dataset owner to see what the latest is.




[NCBC-517] General Developer Documentation (use TOC as template) Created: 17/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 2.0 DP2
Fix Version/s: 2.0 Beta

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Microsoft Word SDK TOCs.docx    
Epic Link: Beta 1 Documentation and Sample App

 Description   
Use Amy's TOC as a template + feedback

 Comments   
Comment by Jeff Morris [ 14/Aug/14 ]
WIP docs (content only):
https://docs.google.com/document/d/1VCYTRVwUHrJzX4ovL4EtYdvJa5qCGtuAirlKfL8KKXM/edit#




[NCBC-641] Update version and other assembly metadata info Created: 15/Sep/14  Updated: 15/Sep/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The assembly version is 1.0.0.0 (the default) for the Beta release. This will be scripted in future releases.




Generated at Sun Sep 21 07:19:55 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.