[NCBC-597] [vpn run] Couchbase.Configuration.Server.Serialization.BootstrapException: Could not bootstrap from configured servers list Created: 21/Aug/14  Updated: 25/Aug/14  Resolved: 25/Aug/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: Test 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 NCBC-597.log.zip    
Issue Links:
Relates to
relates to NCBC-600 Update Client Client Configuration Wh... Resolved

 Description   
git log
commit 86219ee99ccafdd00c98d577c9bc2b97efef35bb
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Aug 20 17:44:45 2014 -0700

    NCBC-592: AuthenticationException in CouchbaseBucket.SendWithRetry

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,17 INFO] (BRun run:435) Initializing history database

============================================================
Running Rb2Out-HYBRID
    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-1173\Rb2Out-HYBRID\08-21-14\018604\baf8737ee95c04b1942a18c39e286fd1

    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.4.144 --cluster_node=10.3.4.145
 \ --cluster_node=10.3.4.146 --cluster_node=10.3.4.147
        --cluster_ssh-username=root --cluster_ssh-password=couchbase
    ---------------------------------------->8
[1,50 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
[1,77 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: remove 2 nodes and rebalance. Rebound for 90 seconds.
[1,78 INFO] (RunContext run:124) Starting cluster and driver
[1,79 INFO] (HostPortDriver launch:32) Invoking SDKD as 'C:\temp\sdkd-out-debug\SdkdConsole.exe'
[1,79 INFO] (CBCluster startCluster:360) Node http://10.3.4.144:8091 is master now
[1,79 DEBUG] (CBCluster startCluster:366) Stopping any existing rebalance operations..
[2,13 INFO] (SDKD log:137) --- Logging Self-Test ---
[2,14 INFO] (SDKD log:137) [Sdkd.Main|Info] Info Message
[2,14 INFO] (SDKD log:137) [Sdkd.Main|Warn] Warn Message
[2,14 INFO] (SDKD log:137) [Sdkd.Main|Error] Error Message
[2,14 INFO] (SDKD log:137) [Sdkd.Main|Fatal] Fatal Message
[2,18 INFO] (SDKD log:137) [Sdkd.Main|Info] SDKD Listening on port 8675
[2,32 INFO] (SDKD log:137) Call SweepOnce()
[2,32 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[2,32 INFO] (SDKD log:137) Call SweepOnce()
[2,32 DEBUG] (Handle sendMessageAsync:183) > INFO@0.0
[2,32 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[2,43 INFO] (SDKD log:137) Call SweepOnce()
[2,43 INFO] (SDKD log:137) Call SweepOnce()
[2,44 DEBUG] (Handle receiveMessage:158) < INFO@0.0 => {"CAPS":{"DS_SHARED":true,"PREAMBLE":false,"CANCEL":true,"CONTINUOUS":true},"COMPONENTS":{"SDK":"1.0.0.0","CLR":"4.0.30319.34014"}}
[13,36 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.4.145:8091,ns_1@10.3.4.145>
[13,83 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.4.146:8091,ns_1@10.3.4.146>
[14,26 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.4.147:8091,ns_1@10.3.4.147>
[14,72 DEBUG] (SSHConnection initUserKeys:79) Loaded indentity C:\Users\Andrei\.ssh\id_rsa
[14,72 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[14,72 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[14,73 DEBUG] (SSHConnection initUserKeys:79) Loaded indentity C:\Users\Andrei\.ssh\id_rsa
[16,79 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.4.146:8091
[16,79 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.4.145:8091
[16,81 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.4.144:8091
[16,83 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start && pkill -CONT -f memcached && pkill -CONT -f beam.smp && iptables -F && iptables -t nat -F on 10.3.4.146
[16,83 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start && pkill -CONT -f memcached && pkill -CONT -f beam.smp && iptables -F && iptables -t nat -F on 10.3.4.144
[16,83 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start && pkill -CONT -f memcached && pkill -CONT -f beam.smp && iptables -F && iptables -t nat -F on 10.3.4.145
[16,97 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.4.147:8091
[16,98 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start && pkill -CONT -f memcached && pkill -CONT -f beam.smp && iptables -F && iptables -t nat -F on 10.3.4.147
[17,54 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@241a6856
[17,54 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@412effef
[17,55 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@1deaf20
[17,99 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@7a2f1c2a
[17,99 DEBUG] (CBCluster setupNewCluster:271) Provisioning initial node com.couchbase.cbadmin.client.CouchbaseAdmin@7c737a1a
[35,10 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.4.145:8091
[41,18 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.4.146:8091
[44,39 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.4.147:8091
[56,06 INFO] (CBCluster setupNewCluster:293) All nodes added. Will rebalance
[56,91 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[56,91 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[57,12 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[57,34 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[66,15 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[68,68 INFO] (RunContext run:143) Driver and cluster initialized
[68,92 INFO] (RunContext call:167) Running scenario..
[68,93 INFO] (Scenario run:72) Starting RAMP phase
[68,93 INFO] (Workload setupDesign:63) Creating design test_design
[70,20 INFO] (Workload setupDesign:80) Design creation done
[70,20 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[70,20 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[70,20 INFO] (SDKD log:137) Call SweepOnce()
[70,20 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[70,20 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101
[70,29 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving Common.Logging.Log4Net
[70,29 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly Common.Logging.Log4Net, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e
[70,31 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving log4net
[70,31 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821
[78,64 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@101.1
[78,64 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_LOAD@101.2 => {Options={DelayMin=0, TimeRes=0, IterWait=1, DelayMax=0}, Schema={InflateLevel=40, InflateContent=meh}, DSType=DSTYPE_SEEDED, DS={KSize=12, KSeed=ViewFillerSeed, VSize=512, VSeed=Vie
wFillerSeed, Continuous=false, Repeat=rep, Count=1000}}
[78,65 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_LOAD
[78,66 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[78,66 INFO] (SDKD log:137) "Options": {
[78,66 INFO] (SDKD log:137) "DelayMin": 0,
[78,66 INFO] (SDKD log:137) "TimeRes": 0,
[78,67 INFO] (SDKD log:137) "IterWait": 1,
[78,67 INFO] (SDKD log:137) "DelayMax": 0
[78,67 INFO] (SDKD log:137) },
[78,67 INFO] (SDKD log:137) "Schema": {
[78,67 INFO] (SDKD log:137) "InflateLevel": 40,
[78,68 INFO] (SDKD log:137) "InflateContent": "meh"
[78,68 INFO] (SDKD log:137) },
[78,68 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[78,69 INFO] (SDKD log:137) "DS": {
[78,69 INFO] (SDKD log:137) "KSize": 12,
[78,69 INFO] (SDKD log:137) "KSeed": "ViewFillerSeed",
[78,69 INFO] (SDKD log:137) "VSize": 512,
[78,70 INFO] (SDKD log:137) "VSeed": "ViewFillerSeed",
[78,70 INFO] (SDKD log:137) "Continuous": false,
[78,70 INFO] (SDKD log:137) "Repeat": "rep",
[78,71 INFO] (SDKD log:137) "Count": 1000
[78,71 INFO] (SDKD log:137) }
[78,71 INFO] (SDKD log:137) }
[290,18 INFO] (SDKD log:137) [Sdkd.ViewLoader|Info] Summary details: {}
[290,18 DEBUG] (Handle receiveMessage:158) < [SDKD:SDKD_EINVAL="Need at least one kv pair. None requested"] CB_VIEW_LOAD@101.2
[290,19 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.3
[290,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CLOSEHANDLE
[290,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {}
[290,19 INFO] (Workload call:112) Preloading items into cluster before workload
[290,19 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Release CouchbaseBucket 2092826221
[290,20 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@102.4 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[290,20 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Release CouchbaseBucket client.Dispose()2092826221
[290,20 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[290,20 INFO] (SDKD log:137) Call SweepOnce()
[290,21 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[290,21 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 102
[290,22 INFO] (SDKD log:137) [Sdkd.Handle|Warn] DispatchCommand(req, SdkHandle) == false
[296,87 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@102.4
[296,88 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@102.5 => {Options={DelayMin=0, TimeRes=0, IterWait=100, DelayMax=0}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=false, Repeat=REP, Coun
t=15000}}
[296,88 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[296,88 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[296,88 INFO] (SDKD log:137) "Options": {
[296,89 INFO] (SDKD log:137) "DelayMin": 0,
[296,89 INFO] (SDKD log:137) "TimeRes": 0,
[296,89 INFO] (SDKD log:137) "IterWait": 100,
[296,89 INFO] (SDKD log:137) "DelayMax": 0
[296,90 INFO] (SDKD log:137) },
[296,90 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[296,90 INFO] (SDKD log:137) "DS": {
[296,90 INFO] (SDKD log:137) "KSize": 32,
[296,90 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[296,91 INFO] (SDKD log:137) "VSize": 128,
[296,91 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[296,91 INFO] (SDKD log:137) "Continuous": false,
[296,91 INFO] (SDKD log:137) "Repeat": "REP",
[296,92 INFO] (SDKD log:137) "Count": 15000
[296,92 INFO] (SDKD log:137) }
[296,92 INFO] (SDKD log:137) }
[347,55 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409
[1868,44 DEBUG] (Handle receiveMessage:158) < MC_DS_MUTATE_SET@102.5 => {[OK]: 14941, [MEMD:GENERIC]: 59}
[1868,44 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@102.6
[1868,44 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CLOSEHANDLE
[1868,44 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {}
[1868,44 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Release CouchbaseBucket 1781340248
[1868,45 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@107.11 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,45 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@106.10 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,45 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@103.7 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,47 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@105.9 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@104.8 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@111.15 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@112.16 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@110.14 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@109.13 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Release CouchbaseBucket client.Dispose()1781340248
[1868,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@108.12 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1868,48 INFO] (SDKD log:137) [Sdkd.Handle|Warn] DispatchCommand(req, SdkHandle) == false
[1868,49 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,49 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,49 INFO] (SDKD log:137) Call SweepOnce()
[1868,49 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,50 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,50 INFO] (SDKD log:137) Call SweepOnce()
[1868,50 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,50 INFO] (SDKD log:137) Call SweepOnce()
[1868,51 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,51 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,51 INFO] (SDKD log:137) Call SweepOnce()
[1868,51 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,52 INFO] (SDKD log:137) Call SweepOnce()
[1868,52 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,53 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,53 INFO] (SDKD log:137) Call SweepOnce()
[1868,54 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,54 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,54 INFO] (SDKD log:137) Call SweepOnce()
[1868,55 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,55 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,55 INFO] (SDKD log:137) Call SweepOnce()
[1868,55 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,55 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,56 INFO] (SDKD log:137) Call SweepOnce()
[1868,56 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,56 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1868,56 INFO] (SDKD log:137) Call SweepOnce()
[1868,57 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1868,57 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 107
[1868,57 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 106
[1868,57 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 103
[1868,58 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 105
[1868,58 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 104
[1868,58 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 112
[1868,58 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 109
[1868,58 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 111
[1868,59 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 108
[1868,59 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 110
[1874,52 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@107.11
[1874,62 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@107.17 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Coun
t=15000}}
[1874,62 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[1874,62 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@113.18 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1874,63 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1874,63 INFO] (SDKD log:137) "Options": {
[1874,63 INFO] (SDKD log:137) "DelayMin": 1,
[1874,63 INFO] (SDKD log:137) "TimeRes": 1,
[1874,64 INFO] (SDKD log:137) "IterWait": 1,
[1874,64 INFO] (SDKD log:137) "DelayMax": 10
[1874,64 INFO] (SDKD log:137) },
[1874,64 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1874,65 INFO] (SDKD log:137) "DS": {
[1874,65 INFO] (SDKD log:137) "KSize": 32,
[1874,65 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1874,66 INFO] (SDKD log:137) "VSize": 128,
[1874,66 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1874,66 INFO] (SDKD log:137) "Continuous": true,
[1874,67 INFO] (SDKD log:137) "Repeat": "REP",
[1874,67 INFO] (SDKD log:137) "Count": 15000
[1874,67 INFO] (SDKD log:137) }
[1874,67 INFO] (SDKD log:137) }
[1874,67 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1874,68 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1874,68 INFO] (SDKD log:137) Call SweepOnce()
[1874,68 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 113
[1880,35 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@106.10
[1880,35 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@106.19 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Coun
t=15000}}
[1880,36 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[1880,36 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1880,36 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@114.20 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1880,37 INFO] (SDKD log:137) "Options": {
[1880,37 INFO] (SDKD log:137) "DelayMin": 1,
[1880,38 INFO] (SDKD log:137) "TimeRes": 1,
[1880,38 INFO] (SDKD log:137) "IterWait": 1,
[1880,38 INFO] (SDKD log:137) "DelayMax": 10
[1880,38 INFO] (SDKD log:137) },
[1880,39 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1880,39 INFO] (SDKD log:137) "DS": {
[1880,39 INFO] (SDKD log:137) "KSize": 32,
[1880,39 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1880,40 INFO] (SDKD log:137) "VSize": 128,
[1880,40 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1880,40 INFO] (SDKD log:137) "Continuous": true,
[1880,41 INFO] (SDKD log:137) "Repeat": "REP",
[1880,41 INFO] (SDKD log:137) "Count": 15000
[1880,41 INFO] (SDKD log:137) }
[1880,41 INFO] (SDKD log:137) }
[1880,42 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1880,42 INFO] (SDKD log:137) Call SweepOnce()
[1880,42 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1880,42 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 114
[1886,61 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@103.7
[1886,61 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@103.21 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Coun
t=15000}}
[1886,61 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[1886,62 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1886,62 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@115.22 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1886,62 INFO] (SDKD log:137) "Options": {
[1886,63 INFO] (SDKD log:137) "DelayMin": 1,
[1886,63 INFO] (SDKD log:137) "TimeRes": 1,
[1886,63 INFO] (SDKD log:137) "IterWait": 1,
[1886,64 INFO] (SDKD log:137) "DelayMax": 10
[1886,64 INFO] (SDKD log:137) },
[1886,64 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1886,65 INFO] (SDKD log:137) "DS": {
[1886,65 INFO] (SDKD log:137) "KSize": 32,
[1886,65 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1886,66 INFO] (SDKD log:137) "VSize": 128,
[1886,66 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1886,66 INFO] (SDKD log:137) "Continuous": true,
[1886,67 INFO] (SDKD log:137) "Repeat": "REP",
[1886,67 INFO] (SDKD log:137) "Count": 15000
[1886,68 INFO] (SDKD log:137) }
[1886,68 INFO] (SDKD log:137) }
[1886,68 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1886,68 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1886,68 INFO] (SDKD log:137) Call SweepOnce()
[1886,69 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 115
[1892,19 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@104.8
[1892,19 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@104.23 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Count=15000
}}
[1892,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_GET
[1892,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1892,20 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@116.24 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1892,20 INFO] (SDKD log:137) "Options": {
[1892,20 INFO] (SDKD log:137) "DelayMin": 1,
[1892,21 INFO] (SDKD log:137) "TimeRes": 1,
[1892,21 INFO] (SDKD log:137) "IterWait": 1,
[1892,21 INFO] (SDKD log:137) "DelayMax": 10
[1892,21 INFO] (SDKD log:137) },
[1892,22 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1892,22 INFO] (SDKD log:137) "DS": {
[1892,22 INFO] (SDKD log:137) "KSize": 32,
[1892,22 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1892,23 INFO] (SDKD log:137) "VSize": 128,
[1892,23 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1892,23 INFO] (SDKD log:137) "Continuous": true,
[1892,24 INFO] (SDKD log:137) "Repeat": "REP",
[1892,24 INFO] (SDKD log:137) "Count": 15000
[1892,24 INFO] (SDKD log:137) }
[1892,24 INFO] (SDKD log:137) }
[1892,25 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1892,25 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1892,25 INFO] (SDKD log:137) Call SweepOnce()
[1892,25 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 116
[1897,18 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@105.9
[1897,18 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@105.25 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Count=15000
}}
[1897,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_GET
[1897,19 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1897,19 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@117.26 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1897,19 INFO] (SDKD log:137) "Options": {
[1897,19 INFO] (SDKD log:137) "DelayMin": 1,
[1897,20 INFO] (SDKD log:137) "TimeRes": 1,
[1897,20 INFO] (SDKD log:137) "IterWait": 1,
[1897,20 INFO] (SDKD log:137) "DelayMax": 10
[1897,21 INFO] (SDKD log:137) },
[1897,21 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1897,21 INFO] (SDKD log:137) "DS": {
[1897,21 INFO] (SDKD log:137) "KSize": 32,
[1897,22 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1897,22 INFO] (SDKD log:137) "VSize": 128,
[1897,22 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1897,22 INFO] (SDKD log:137) "Continuous": true,
[1897,23 INFO] (SDKD log:137) "Repeat": "REP",
[1897,23 INFO] (SDKD log:137) "Count": 15000
[1897,23 INFO] (SDKD log:137) }
[1897,24 INFO] (SDKD log:137) }
[1897,24 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1897,24 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1897,25 INFO] (SDKD log:137) Call SweepOnce()
[1897,25 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 117
[1903,07 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@112.16
[1903,07 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@112.27 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Coun
t=15000}}
[1903,08 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[1903,08 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1903,08 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@118.28 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1903,08 INFO] (SDKD log:137) "Options": {
[1903,09 INFO] (SDKD log:137) "DelayMin": 1,
[1903,09 INFO] (SDKD log:137) "TimeRes": 1,
[1903,09 INFO] (SDKD log:137) "IterWait": 1,
[1903,09 INFO] (SDKD log:137) "DelayMax": 10
[1903,10 INFO] (SDKD log:137) },
[1903,10 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1903,10 INFO] (SDKD log:137) "DS": {
[1903,10 INFO] (SDKD log:137) "KSize": 32,
[1903,11 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1903,11 INFO] (SDKD log:137) "VSize": 128,
[1903,11 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1903,12 INFO] (SDKD log:137) "Continuous": true,
[1903,12 INFO] (SDKD log:137) "Repeat": "REP",
[1903,12 INFO] (SDKD log:137) "Count": 15000
[1903,12 INFO] (SDKD log:137) }
[1903,13 INFO] (SDKD log:137) }
[1903,13 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1903,13 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1903,13 INFO] (SDKD log:137) Call SweepOnce()
[1903,14 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 118
[1909,85 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@109.13
[1909,85 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@109.29 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Coun
t=15000}}
[1909,86 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_MUTATE_SET
[1909,86 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@119.30 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1909,86 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1909,86 INFO] (SDKD log:137) "Options": {
[1909,87 INFO] (SDKD log:137) "DelayMin": 1,
[1909,87 INFO] (SDKD log:137) "TimeRes": 1,
[1909,87 INFO] (SDKD log:137) "IterWait": 1,
[1909,87 INFO] (SDKD log:137) "DelayMax": 10
[1909,88 INFO] (SDKD log:137) },
[1909,88 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1909,88 INFO] (SDKD log:137) "DS": {
[1909,89 INFO] (SDKD log:137) "KSize": 32,
[1909,89 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1909,89 INFO] (SDKD log:137) "VSize": 128,
[1909,89 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1909,90 INFO] (SDKD log:137) "Continuous": true,
[1909,90 INFO] (SDKD log:137) "Repeat": "REP",
[1909,91 INFO] (SDKD log:137) "Count": 15000
[1909,91 INFO] (SDKD log:137) }
[1909,91 INFO] (SDKD log:137) }
[1909,91 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1909,92 INFO] (SDKD log:137) Call SweepOnce()
[1909,92 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1909,92 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 119
[1925,93 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@111.15
[1925,93 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@111.31 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Count=15000
}}
[1925,93 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_GET
[1925,93 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@120.32 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[1925,93 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[1925,94 INFO] (SDKD log:137) "Options": {
[1925,94 INFO] (SDKD log:137) "DelayMin": 1,
[1925,94 INFO] (SDKD log:137) "TimeRes": 1,
[1925,94 INFO] (SDKD log:137) "IterWait": 1,
[1925,95 INFO] (SDKD log:137) "DelayMax": 10
[1925,95 INFO] (SDKD log:137) },
[1925,95 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[1925,95 INFO] (SDKD log:137) "DS": {
[1925,96 INFO] (SDKD log:137) "KSize": 32,
[1925,96 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[1925,96 INFO] (SDKD log:137) "VSize": 128,
[1925,96 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[1925,97 INFO] (SDKD log:137) "Continuous": true,
[1925,97 INFO] (SDKD log:137) "Repeat": "REP",
[1925,97 INFO] (SDKD log:137) "Count": 15000
[1925,98 INFO] (SDKD log:137) }
[1925,98 INFO] (SDKD log:137) }
[1925,98 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[1925,98 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[1925,99 INFO] (SDKD log:137) Call SweepOnce()
[1925,99 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 120
[2031,57 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@110.14
[2031,57 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@110.33 => {Options={DelayMin=1, TimeRes=1, IterWait=1, DelayMax=10}, DSType=DSTYPE_SEEDED, DS={KSize=32, KSeed=SimpleKey, VSize=128, VSeed=SimpleValue, Continuous=true, Repeat=REP, Count=15000
}}
[2031,57 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_GET
[2031,57 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[2031,57 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@121.34 => {Options={OtherNodes=[["10.3.4.145",8091],["10.3.4.146",8091],["10.3.4.147",8091]], Username=default, SSL=false, Password=}, Bucket=default, Port=8091, Hostname=10.3.4.144}
[2031,58 INFO] (SDKD log:137) "Options": {
[2031,58 INFO] (SDKD log:137) "DelayMin": 1,
[2031,58 INFO] (SDKD log:137) "TimeRes": 1,
[2031,58 INFO] (SDKD log:137) "IterWait": 1,
[2031,58 INFO] (SDKD log:137) "DelayMax": 10
[2031,58 INFO] (SDKD log:137) },
[2031,58 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[2031,58 INFO] (SDKD log:137) "DS": {
[2031,58 INFO] (SDKD log:137) "KSize": 32,
[2031,58 INFO] (SDKD log:137) "KSeed": "SimpleKey",
[2031,59 INFO] (SDKD log:137) "VSize": 128,
[2031,59 INFO] (SDKD log:137) "VSeed": "SimpleValue",
[2031,59 INFO] (SDKD log:137) "Continuous": true,
[2031,59 INFO] (SDKD log:137) "Repeat": "REP",
[2031,59 INFO] (SDKD log:137) "Count": 15000
[2031,59 INFO] (SDKD log:137) }
[2031,59 INFO] (SDKD log:137) }
[2031,59 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[2031,59 INFO] (SDKD log:137) !!!!!!!!!!!!!!!
[2031,59 INFO] (SDKD log:137) Call SweepOnce()
[2031,59 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 121
[2133,15 INFO] (SDKD log:137)
[2133,15 INFO] (SDKD log:137) Unhandled Exception : Couchbase.Configuration.Server.Serialization.BootstrapException: Could not bootstrap from configured servers list.
[2133,15 INFO] (SDKD log:137) at Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig.Initialize() at c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\Streaming\HttpServerConfig.cs:line 52

[2133,16 INFO] (SDKD log:137) at Couchbase.Configuration.Server.Providers.Streaming.HttpStreamingProvider.StartProvider(String username, String password) at c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\
Streaming\HttpStreamingProvider.cs:line 238
[2133,16 INFO] (SDKD log:137) at Couchbase.Configuration.Server.Providers.Streaming.HttpStreamingProvider.GetConfig(String bucketName, String password) at c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\St
reaming\HttpStreamingProvider.cs:line 53
[2133,16 INFO] (SDKD log:137) at Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) at c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\ClusterManager.cs:line 159
[2133,16 INFO] (SDKD log:137) at Couchbase.CouchbaseCluster.OpenBucket(String bucketname, String password) at c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\CouchbaseCluster.cs:line 84
[2133,16 INFO] (SDKD log:137) at SdkdConsole.Daemon.Handle.Run() at c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 134
[2133,16 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[2133,17 INFO] (SDKD log:137) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[2133,17 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[2133,17 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[2133,17 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart()
[2152,56 ERROR] (BRun maybePropagate:237) 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.run(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.8.0_11]
        at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_11]
[2152,56 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@103.35
[2152,56 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.8.0_11]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.8.0_11]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.8.0_11]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.8.0_11]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.8.0_11]
        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:281) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.runSingleTest(BRun.java:388) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.run(BRun.java:472) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.main(BRun.java:504) [sdkdclient-1.0-SNAPSHOT.jar:na]

reproduce it in each run through vpn, don't see in jenkins http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/64/console

 Comments   
Comment by Jeff Morris [ 22/Aug/14 ]
What is going on here is that the while trying to bootstrap, the client has exhausted the servers available within it's client configuration. Without looking at the sdkd-net code, I am guessing it's creating a configuration with a single bootstrap server and then eventually that bootstrap server is removed from the cluster. As evidence:

Line 19: 2014-08-20 11:19:48,001 [4] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 7120: 2014-08-20 11:21:34,247 [5] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 112230: 2014-08-20 11:46:07,977 [12] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 112298: 2014-08-20 11:46:13,909 [21] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 112523: 2014-08-20 11:46:19,922 [26] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 112936: 2014-08-20 11:46:25,401 [15] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 113567: 2014-08-20 11:46:31,724 [14] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 114433: 2014-08-20 11:46:38,069 [23] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 115409: 2014-08-20 11:46:44,009 [22] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 116591: 2014-08-20 11:46:49,994 [20] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 116654: 2014-08-21 08:11:15,680 [4] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 123744: 2014-08-21 08:14:54,350 [11] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 228894: 2014-08-21 08:41:12,600 [13] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 228959: 2014-08-21 08:41:18,672 [7] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 229187: 2014-08-21 08:41:24,526 [9] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 229665: 2014-08-21 08:41:30,757 [6] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 230256: 2014-08-21 08:41:36,329 [5] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 230950: 2014-08-21 08:41:41,370 [23] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 231963: 2014-08-21 08:41:47,217 [22] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 233352: 2014-08-21 08:41:53,990 [20] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 237408: 2014-08-21 08:42:10,063 [21] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools
Line 267746: 2014-08-21 08:43:55,722 [15] INFO Couchbase.Configuration.Server.Providers.Streaming.HttpServerConfig - Bootstrapping from http://10.3.4.144:8091/pools

The bootstrap list is shuffled, but the it always tries to bootstrap off the same server.
Comment by Jeff Morris [ 22/Aug/14 ]
Another possible issue is that the client is using the HTTP provider, which means it tried the CCCP provider and failed. The CCCP provider is preferred when the server is > 2.5.
Comment by Jeff Morris [ 25/Aug/14 ]
Depending upon how the client is used, this should resolve this: http://review.couchbase.org/#/c/40850/

However, you should add more nodes to your bootstrap list. This is the list the client will shuffle through until it either finds a node to bootstrap against or cannot bootstrap (because it can't find a candidate node in _your_ provided list). For example:

 var config = new ClientConfiguration
            {
                Servers = new List<Uri>
                {
                    new Uri("http://192.168.56.101:8091/pools"),
                    new Uri("http://192.168.56.102:8091/pools"),
                    new Uri("http://192.168.56.103:8091/pools"),
                    new Uri("http://192.168.56.104:8091/pools"),
                }
            };




[NCBC-550] Thread A is disposing of Bucket while thread B is still using it Created: 11/Jul/14  Updated: 28/Jul/14  Resolved: 27/Jul/14

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

Type: Bug Priority: Test 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

Attachments: Text File log_25.txt    
Issue Links:
Relates to
relates to NCBC-545 couchApiBase in pools/default/buckets... Closed

 Description   

2014-07-11 10:56:35,176 [14] INFO Couchbase.IO.Operations.OperationResult`1 - Received config rev#1073
2014-07-11 10:56:35,176 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - New config found 1073
2014-07-11 10:56:35,176 [14] WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True
2014-07-11 10:56:39,401 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - Requires retry SimpleKeyREP73REP73REP73REP73REP73REP73REP73

 Comments   
Comment by Jeff Morris [ 13/Jul/14 ]
commit 28ea4d12d13803a472b2e31c848c1aa47f05ad67

This should fix the threading issues discovered thus far. Importantly it adds ref counting to bucket classes, so that the dispose will only be called by the final thread using the shared bucket.

Let's try another set of situational tests and see what happens.
Comment by Jeff Morris [ 13/Jul/14 ]
Note: use this path (upper case "Src"): couchbase-csharp-client-ng/Src/ _not_ couchbase-csharp-client-ng/src/

Comment by Andrei Baranouski [ 14/Jul/14 ]
Hi Jeff,

seems like it's still reproduced: http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/25/console


2014-07-14 01:09:51,763 [14] INFO Couchbase.IO.Operations.OperationResult`1 - Received config rev#1163
2014-07-14 01:09:51,763 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - New config found 1163
2014-07-14 01:09:51,767 [14] WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True
2014-07-14 01:09:51,767 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - Requires retry SimpleKeyREP0REP0REP0REP0REP0REP0REP0REP0


client's logs attached


Comment by Andrei Baranouski [ 14/Jul/14 ]
client's logs with 2.0 commit 28ea4d against 3.0.--918
Comment by Jeff Morris [ 14/Jul/14 ]
Andrei -

Looks like a different error:

[51.36 INFO] (SDKD log:137)  at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Couchbase.Core.Server.GetBaseViewUri(String bucketName) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Server.cs:line
   at Couchbase.Core.Server.Send[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Server.cs:line 85
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 492
   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 122
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 225
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 191
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 123
   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()

If it's a different error, then we should open a new ticket. Let me know if this is the case.

-Jeff

Comment by Jeff Morris [ 14/Jul/14 ]
Quick question: in the situational test are you disposing the bucket? I am going to add more tracing and then provide another SHA1 for testing.
Comment by Andrei Baranouski [ 14/Jul/14 ]
Hi Jeff,

yes, stack trace in the test is different but client's logs are the same as in the ticket, so if it's the new issue...

currently in my runs I don't use the bucket disposing because we re-use client instances in all threads/phases in the test/scenario https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Couchbase/ClientFactory.cs#L33

but i will add at the end of the tests or when we run with ShareClients = false


Comment by Jeff Morris [ 14/Jul/14 ]
>>WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True

The last sentence on that line makes me think that somehow the bucket instance is being disposed either implicitly (via finalizer) or explicitly.

Sure enough >> DEBUG Couchbase.Core.ClusterManager - Disposing!!!

The patch in place should keep disposed from being called until the last instance has finished using it. Hmm.
Comment by Jeff Morris [ 23/Jul/14 ]
This should be resolved as long as the bucket instance is not disposed or reaches finalization (in other words it's the applications responsibility to ensure that the bucket isn't disposed). If an operation is attempted on a disposed bucket, an ObjectDisposedException will be thrown which must be handled by the app.
Comment by Don Pinto [ 25/Jul/14 ]
Jeff, Can you please sync-up with Andrei over Skype. This is still looking as a blocker from his side.

Thanks,
Comment by Jeff Morris [ 27/Jul/14 ]
http://review.couchbase.org/#/c/39935/
Comment by Jeff Morris [ 28/Jul/14 ]
SHA for testing: commit 9ce8806edc38503086af1fe9af66484b5766859d




[NCBC-505] Ram size variable overflows when deserializing configuration Created: 11/Jun/14  Updated: 13/Jun/14  Resolved: 13/Jun/14

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

Type: Bug 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   
"I have been trying to use this DP1. It throws "JSON integer 15456010240 is too large or small for an Int32. Path '[0].quota.ram', line 1, position 12344" at the line cluster.OpenBucket(bucketName); Should that not be Int64 variable to hold the RAM size?"

 Comments   
Comment by Jeff Morris [ 13/Jun/14 ]
commit e73b094db436ddadaa078b30389c33af2f66378f




[NCBC-400] Constructor fails to initialize in a 2 node cluster Created: 18/Feb/14  Updated: 19/Feb/14  Resolved: 19/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.3.3
Fix Version/s: None

Type: Task Priority: Blocker
Reporter: Andrew Jebasingh Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: 2 node cluster running on Centos 6.5 with Couchbase Server 2.5

Attachments: Zip Archive TestApp (2).zip     Zip Archive TestApp.zip    

 Description   
Details are at http://www.couchbase.com/communities/q-and-a/constructor-hangs-while-trying-initialize#comment-1564

The test solution I created is attached.

Thanks!

 Comments   
Comment by Jeff Morris [ 18/Feb/14 ]
Tried this on a 2.5 Cluster and it worked. Logging wasn't working because you were missing the enyim sectionGroup.
Comment by Andrew Jebasingh [ 19/Feb/14 ]
Okay I got it figured out finally and can reproduce it all the time on demand now. It's fiddler2. If I have fiddler running, then it hangs on the streaming connection (which is to be expected I guess!)

However, when I close fiddler2 and then try running it, it works great and returns from the constructor immediately.

Thanks for your help in resolving this issue, and hope this helps anyone else who has this problem!




[NCBC-484] Can't connect to local or remote Couchbase server Created: 20/May/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: niculear Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Client - Windows 8.1
Servers tested:
  Windows Server 2012
  Windows 8.1
  Windows 7
  Centos 6

Attachments: Zip Archive CouchBase_Connect_Test.zip    

 Description   
I've written a test application that just connects to a Couchbase server, and reads one record. I've tested this app on other machines and it works, however I can't connect to any Couchbase server (local or remote) from my local machine. Every time, I get a System.Net.WebException when it times out.

Firewall is turned off
There are no HTTP debugging applications running
I can connect to the server via a web browser
Using a CouchbaseCluster connection works

Attached is my solution, and the log is in the /bin/debug folder.

 Comments   
Comment by Jeff Morris [ 20/May/14 ]
Does the "test-bucket" exist? Once I changed the source to this it worked for me locally:

            var conn = new CouchbaseClientConfiguration();
            conn.Urls.Add(new Uri("http://127.0.0.1:8091/pools/"));
            conn.Bucket = "default";
            conn.HttpRequestTimeout = new TimeSpan(0, 1, 0);

If does exist, then it's probably something that's blocking the streaming http connection from establishing. I usually see this with Fiddler/Charles on startup, but once the client has established it's connection you can run the http debugger with no problems. Is there something else that's possibly blocking the connection?
Comment by niculear [ 20/May/14 ]
Yes, I created a bucket called 'test-bucket' with default settings, and created one record in it:

UniqueID1 { "test-data": "It's Working!" }
Comment by Jeff Morris [ 20/May/14 ]
What happens when you change 127.0.0.1 => localhost? You mentioned you are using Hyper-V? That could be the problem...have you tried running VS using admin credentials ("run as adminstrator")?

Also, try changing the Get<string>(...) to ExecuteGet<string>(..) and then checking the result.Message property.
Comment by niculear [ 20/May/14 ]
Hi Jeff,

I've been running VS as admin the whole time, changing loopback address to localhost incurs the same result, and here is the response I get when using ExecuteGet:

Unable to locate node

If I run the app inside of one of my Hyper-V vm's (pointing to the host machine) it works.

Nick
Comment by niculear [ 20/May/14 ]
Hi Jeff,

Looks like it was my anti-virus after all. I use BitDefender, and after disabling the firewall, anti-virus, and every other service that could be disabled I looked for other causes for this problem. I decided to try uninstalling BitDefender from my system, and it seemed to work after that. I'll be opening a ticket with them to see why this is happening, so thanks for your help, and sorry to waste your time.

Nick
Comment by Jeff Morris [ 20/May/14 ]
No problem, just close this ticket :)
Comment by Jeff Morris [ 20/May/14 ]
Also, could you please update your question with the answer? http://www.couchbase.com/communities/q-and-a/windows-81-machine-will-not-connect-couchbase

It helps the next person who encounters the problem down the road.

Thanks,

Jeff

Comment by Jeff Morris [ 02/Jun/14 ]
User resolved.




[NCBC-420] N1QL Support for ad-hoc queries Created: 24/Mar/14  Updated: 01/Apr/14  Resolved: 01/Apr/14

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

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


 Comments   
Comment by Jeff Morris [ 01/Apr/14 ]
I shouldn't have made this a story, it's really a task under a story. I'll close it and create a more detailed one for the next sprint.

That being said, basic support for ad-hoc queries using the N1QL DP2 works. It's still a long way from production ready, but you can do this:

var bucket = (ICouchbaseBucket) _cluster.OpenBucket("default");
            const string query = "SELECT * FROM tutorial WHERE fname = 'Ian'";

            var result = bucket.Query<dynamic>(query);
            foreach (var row in result.Rows)
            {
                Console.WriteLine(row);
            }




[NCBC-415] Exception throw while getting View after update to 1.3.3 Created: 10/Mar/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.5

Type: Bug Priority: Blocker
Reporter: wilsont Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: ASP.net MVC3/4 , couchbase server 2.1.1 community edition (build-764)

Attachments: Zip Archive MvcApplication2.zip     JPEG File screen1.JPG     JPEG File screen2.JPG     JPEG File screen3.JPG    

 Description   
First of all this problem doesn't exists in 1.3.1, it starts after I have updated the .net client to 1.3.3

The exception is being threw while i call

client.GetView(designName, viewName)

The View's object is not JSON, it's an serializable c# custom class.

Is there any way to solve this problem? Thanks a lot!

- See more at: http://www.couchbase.com/communities/comment/1633#comment-1633

Full exception

Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: A. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.ReadInternal() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Couchbase.GenericViewRowTransformer`1.TransformRow(JsonReader reader, ICouchbaseClient client, Boolean shouldLookupById) at Couchbase.CouchbaseView`1.b__0(JsonReader jr) at Couchbase.CouchbaseViewHandler.d__0`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

- See more at: http://www.couchbase.com/communities/comment/1633#comment-1633


Definition of View

function (doc, meta) {
 if(meta.id.indexOf("AsyncInsert") > -1)
    emit(meta.id, doc);
}

Sample Data
Key : SnapBucketAsyncInsertPhotoLike.4639.7616
Data : "AAEAAAD/////AQAAAAAAAAAMAgAAAEJPUkZyYW1ld29yaywgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwFAQAAACBPUkZyYW1ld29yay5Nb2RlbHMuQXN5bmNJbnNlcnRUTwQAAAAPX2ludmFsaWRhdGVsaXN0CV9jYWNoZWtleQRfc3FsDl9zcWxQYXJhbWV0ZXJzAwEBA9UCU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXSwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV2OAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlciwgT1JGcmFtZXdvcmssIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0CAAAACQMAAAAGBAAAABNQaG90b0xpa2UuNDYzOS43NjE2BgUAAAClBiBJbnNlcnQgaW50byBbUGhvdG9MaWtlXSAoW1NuYXBQaG90b0lkXSAsIFtTbmFwUGhvdG9TaXRlSWRdICwgW1NuYXBVc2VySWRdICwgW09SVXNlcklkXSAsIFtPUlVzZXJTaXRlSWRdICwgW1JhdGluZ10gLCBbQ3JlYXRlVGltZV0gKSB2YWx1ZXMgKEBTbmFwUGhvdG9JZCAsIEBTbmFwUGhvdG9TaXRlSWQgLCBAU25hcFVzZXJJZCAsIEBPUlVzZXJJZCAsIEBPUlVzZXJTaXRlSWQgLCBAUmF0aW5nICwgQENyZWF0ZVRpbWUgKSA7IFVQREFURSBbU25hcFBob3RvXSBTRVQgTGlrZUNvdW50PUxpa2VDb3VudCsxLExpa2VDb3VudDI0SG91cnM9TGlrZUNvdW50MjRIb3VycysxLExhc3RMaWtlVGltZT1AQ3VycmVudERhdGVUaW1lMiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXN0TGlrZURhdGVTZXJpYWw9QExhc3RMaWtlRGF0ZVNlcmlhbDINCiAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBTbmFwUGhvdG9JZD1AU25hcFBob3RvSWQyO0lOU0VSVCBJTlRPIFNuYXBVc2VyQWN0aXZpdHkgKFtTbmFwVXNlcklkXSxbVHlwZUlkXSxbQWN0aW9uVXNlcklkXSxbU25hcFBob3RvSWRdLFtJc1JlYWRdLFtDcmVhdGVUaW1lXSkgVkFMVUVTDQogICAgICAgICAgICAgICAgICAgICAgICAoIChTRUxFQ1QgU25hcFVzZXJJZCBGUk9NIFNuYXBQaG90byBXSVRIKG5vbG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIFNuYXBQaG90b0lkID0gQFNuYXBQaG90b0lkMiksIEBTbmFwVXNlckFjdGl2aXR5VHlwZUlkMixAQWN0aW9uVXNlcklkMixAU25hcFBob3RvSWQyLDAsQEN1cnJlbnREYXRlVGltZTIpOyAJBgAAAAQDAAAA1QJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLktleVZhbHVlUGFpcmAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uAwAA5QFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXVtdCAgJBwAAAAEAAAABAAAABAYAAACOAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlciwgT1JGcmFtZXdvcmssIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAACdPUkZyYW1ld29yay5Nb2RlbHMuU2ltcGxlU3FsUGFyYW1ldGVyW10CAAAACAgJCAAAAAwAAAAMAAAABwcAAAAAAQAAAAQAAAAD4wFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQT3////4wFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQIAAAADa2V5BXZhbHVlAQAIBgoAAAAJU25hcFBob3RvwB0AAAH1////9////woAAAAAAfT////3////CgAAAAAB8/////f///8KAAAAAAcIAAAAAAEAAAAQAAAABCVPUkZyYW1ld29yay5Nb2RlbHMuU2ltcGxlU3FsUGFyYW1ldGVyAgAAAAkOAAAACQ8AAAAJEAAAAAkRAAAACRIAAAAJEwAAAAkUAAAACRUAAAAJFgAAAAkXAAAACRgAAAAJGQAAAA0EDBoAAABOU3lzdGVtLkRhdGEsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQ4AAAAlT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlcgMAAAAFX25hbWUGX3ZhbHVlB19kYnR5cGUBAgQVU3lzdGVtLkRhdGEuU3FsRGJUeXBlGgAAAAIAAAAGGwAAAAxAU25hcFBob3RvSWQJHAAAAAXj////FVN5c3RlbS5EYXRhLlNxbERiVHlwZQEAAAAHdmFsdWVfXwAIGgAAAAgAAAABDwAAAA4AAAAGHgAAABBAU25hcFBob3RvU2l0ZUlkCR8AAAAB4P///+P///8IAAAAARAAAAAOAAAABiEAAAALQFNuYXBVc2VySWQJIgAAAAHd////4////wgAAAABEQAAAA4AAAAGJAAAAAlAT1JVc2VySWQJJQAAAAHa////4////wgAAAABEgAAAA4AAAAGJwAAAA1AT1JVc2VyU2l0ZUlkCSgAAAAB1////+P///8IAAAAARMAAAAOAAAABioAAAAHQFJhdGluZwkrAAAAAdT////j////CAAAAAEUAAAADgAAAAYtAAAAC0BDcmVhdGVUaW1lCS4AAAAB0f///+P///8EAAAAARUAAAAOAAAABjAAAAANQFNuYXBQaG90b0lkMgkxAAAAAc7////j////CAAAAAEWAAAADgAAAAYzAAAAEUBDdXJyZW50RGF0ZVRpbWUyCTQAAAABy////+P///8EAAAAARcAAAAOAAAABjYAAAAYQFNuYXBVc2VyQWN0aXZpdHlUeXBlSWQyCTcAAAAByP///+P///8IAAAAARgAAAAOAAAABjkAAAAOQEFjdGlvblVzZXJJZDIJOgAAAAHF////4////wgAAAABGQAAAA4AAAAGPAAAABRATGFzdExpa2VEYXRlU2VyaWFsMgk9AAAAAcL////j////CAAAAAUcAAAAHVN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbEludDMyAgAAAAptX2ZOb3ROdWxsB21fdmFsdWUAAAEIGgAAAAHAHQAAAR8AAAAcAAAAAQAAAAABIgAAABwAAAABHxIAAAElAAAAHAAAAAHYtAEAASgAAAAcAAAAAQAAAAABKwAAABwAAAABAQAAAAUuAAAAIFN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbERhdGVUaW1lAwAAAAptX2ZOb3ROdWxsBW1fZGF5Bm1fdGltZQAAAAEICBoAAAAB66IAABwsGgABMQAAABwAAAABwB0AAAE0AAAALgAAAAHrogAAHCwaAAE3AAAAHAAAAAEDAAAAAToAAAAcAAAAAR8SAAABPQAAABwAAAABF1EzAQs="


 Comments   
Comment by wilsont [ 10/Mar/14 ]
The sample project is using .net client 1.3.4 , the problem is still exists.
Comment by Jeff Morris [ 11/Mar/14 ]
This is a regression bug that was causing the generic CouchbaseView to be used in place of the standard CouchbaseView. This caused the GenericRowTransformer to be used which expects a type of "T".
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34391/
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34391/




[NCBC-363] Implement Client Configuration Management Created: 13/Jan/14  Updated: 31/May/14  Due: 27/Jan/14  Resolved: 31/May/14

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

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 developer,
I want a provider based configuration client management system
So that the client can be configured in a way which matches the my given use-case

Acceptance:
-Configuration can be done via app.config files or programmatically
-Default values are always supplied - this means that by simple new'ing up a client, it can be used immediately with no further code or configuration.
-All major components (which really leads to overall design) are pluggable and able to be tested in isolation

 

 Comments   
Comment by Jeff Morris [ 31/May/14 ]
commit b14e551ee8442d605f414fe0e6bde0f8b5bddde1

Additional work will be required as we define the set of configurable elements, but the base functionality is completed.




[NCBC-362] Implement Server Configuration Management Created: 13/Jan/14  Updated: 02/Jun/14  Due: 27/Jan/14  Resolved: 16/Mar/14

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

Type: Story 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-370 Develop File System Based Provider Im... Technical task Resolved Jeff Morris  
NCBC-371 Develop a Streaming HTTP Server Confi... Technical task Resolved Jeff Morris  
NCBC-372 Develop a CCCP Server Configuration P... Technical task Resolved Jeff Morris  

 Description   
As a developer,
I want a provider based configuration management system
So that the client will try multiple ways of getting a configuration before failing.

Acceptance:
-The most up-to-date configuration is always available to the client
-The implementation is via test-driven design
-The provider configuration is "configurable" from a client perspective
-The implementation uses some threshold so that the configuration changes are not "too noisy"
 




[NCBC-365] Incoming and Outgoing Data Serialization Created: 13/Jan/14  Updated: 19/Jun/14  Due: 27/Jan/14  Resolved: 19/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: backlog-2.0
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 my data to deserialized/serialized into it's correct type
So that I do not have to do any casting or conversion and my data is not corrupted

Acceptance:
-The operations are template based
-Boxing/unboxing are minimized or preferable eliminated
-The Type sent, is the Type received

*ALSO investigate flags field for storing type in message



 

 Comments   
Comment by Jeff Morris [ 19/Jun/14 ]
commit 4b57e61762fc57e51f028c723bb6b2cec6e2a683




[NCBC-366] Implement Connection Pool Created: 13/Jan/14  Updated: 02/Jun/14  Due: 27/Jan/14  Resolved: 13/Feb/14

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

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 network operator,
I want clients which I support, to minimize network and hardware/software resources
So that clients do not consume or use large number of socket connections, etc which impact overall network reliability

Acceptance:
-The connection pool is 'swappable'
-Connections are properly managed so that they are not leaked
-Unit tests




 

 Comments   
Comment by Jeff Morris [ 13/Feb/14 ]
A basic connection pool that was developed in the prototype has been integrated into the source. Some work still needs to be done with respect to creation/destruction and how this class interacts with the other classes in the object graph.




[NCBC-320] Run Situational Tests Against Created: 29/Oct/13  Updated: 18/Nov/13  Resolved: 18/Nov/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.3.0

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

Issue Links:
Dependency
Duplicate

 Description   
Saakshi -

Can run situational tests against this commit:http://review.couchbase.org/#/c/29832/

I need the results ASAP, so please do this today if possible. We can touch base on our weekly tonight. If you run into any issues building or running the code, let me know asap.

Thanks,

Jeff



 Comments   
Comment by Saakshi Manocha [ 11/Nov/13 ]
we will track the progress of this task in SDKQE-389




[NCBC-310] Refactor Connection Pool Created: 07/Oct/13  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.0

Type: Improvement 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   
Refactor and implement connection pool.

 Comments   
Comment by Jeff Morris [ 28/Oct/13 ]
http://review.couchbase.org/#/c/29832/
Comment by Jeff Morris [ 28/Oct/13 ]
Note the commit above may not work for versions of couchbase < 2.0. Is this a problem? If so, I can make it 1.8 compatible.
Comment by Perry Krug [ 29/Oct/13 ]
As per your last comment, I think it will be a problem if we don't provide at least a warning to pre-2.0 users (which we still have some of...and some of those are using .NET). If you can make it compatible, that would be great, if not, we need to make sure it's clear that users should not upgrade to this version if they are not yet on 2.0.
Comment by Jeff Morris [ 04/Dec/13 ]
Fixed by release of 1.3.0




[NCBC-289] Does not return errors object on view operation Created: 14/Aug/13  Updated: 10/Dec/13  Resolved: 10/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.7
Fix Version/s: 1.3.1

Type: New Feature Priority: Blocker
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The couchbase maunal shows the JSON for view responses:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-querying-errorcontrol.html

The Java and python SDK have ability to access errors .net does not.

Looking at CouchbaseViewHandler. It looks like its meant to be throwing an exception when it gets errors in the JSON. However that exception will never happen as there is a bug on lines 95 to 101 (code below). The two if statements counter each other. You can fix it via calling jsonReader.Read() after the 1st if statement however I believe that is not the correct solution. We should return an error object. I think the whole IEnumerator<T> TransformResults<T>(Func<JsonReader, T> rowTransformer, IDictionary<string, string> viewParams) needs looking at.

if (jsonReader.TokenType == JsonToken.PropertyName
&& jsonReader.Depth == 1
&& ((string)jsonReader.Value) == "errors")
{
// we skip the deserialization if the array is null
if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.StartArray)
{

 Comments   
Comment by Matt Ingenthron [ 12/Nov/13 ]
Jeff is running with this change.
Comment by Patrick Varley [ 18/Nov/13 ]
Jeff,

From what I remember looking at the code it look like the error object would only get initialised once the JSON respond was full parsed.
There were some operations that did not parsed the JSON to the end.

Please let me know if the method I created in http://review.couchbase.org/#/c/29173/ will be changed.

I know you been busy and this can wait until the December release.

Thanks,
Patrick
Comment by Jeff Morris [ 18/Nov/13 ]
Patrick -

I am mainly holding back on this only because we don't have valid unit tests to ensure that it works as expected. To make it easier to unit test, I am refactoring the code a bit so that any stream (not just the response from a web request) can run through that code. I started on this and then had to put it on the back burner for a bit, but will be jumping back to it as soon as 1.3.0 is released.

If anything needs to be changed, I'll let you know!

Thanks,

Jeff
Comment by Jeff Morris [ 05/Dec/13 ]
We decided to throw an exception when an error is detected for all view
error cases. In the next version (2.x) of the client will make a decision
on how we want the client to behave when an error is encountered when
processing a view. This commit makes it consistent across all error cases
and does not change the interface, which would likely impact users
requiring them to change there code from handling exceptions to checking
an errors property for failures.

This commit also adds additional unit tests and refactors the
CouchbaseViewHandler class so that we can pass streams into the
ReadResponse method that contain text resembling errors returned from the
server.
Comment by Jeff Morris [ 10/Dec/13 ]
CR & Submitted via gerrit




[NCBC-285] add new approach to retrieve configuration over memcached binary protocol Created: 30/Jul/13  Updated: 02/Jun/14  Resolved: 16/Mar/14

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

Type: New Feature Priority: Blocker
Reporter: Matt Ingenthron Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: cccp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
depends on MB-8728 add a new operation which allows for ... Closed

 Description   
To support better faster, more reliable response to configuration changes, the .NET client should change from HTTP streaming configuration to the new memcached binary protocol method delivered under project CCCP.

This may require adding new constructors and app.config options to be hostname and optionally port number driven.

This is part of project CCCP, as covered at http://www.couchbase.com/wiki/display/couchbase/Cluster+Configuration+Carrier+Publication




[NCBC-278] NREs thrown when executing views on overloaded server Created: 08/Jul/13  Updated: 02/Oct/13  Resolved: 02/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.2.7

Type: Bug Priority: Blocker
Reporter: Mark Nunberg Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Gantt: start-finish

 Description   
This is in the view code, should be a quick fix.

In a nutshell, rapidly querying the view ends up throwing an NRE thus crashing the calling thread. This seems to be thrown from the System.Web code, but is probably something wrong in the client itself

 Comments   
Comment by Mark Nunberg [ 09/Jul/13 ]
http://review.couchbase.org/#/c/27355/2
Comment by Mark Nunberg [ 09/Jul/13 ]
http://review.couchbase.org/#/c/27358/




[NCBC-257] During rebalance client tries to connect the primary node only Created: 02/May/13  Updated: 02/Oct/13  Resolved: 02/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.2.8

Type: Bug Priority: Blocker
Reporter: Saakshi Manocha Assignee: Jeff Morris
Resolution: Fixed Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
I'm adding this bug to identify performance issue that is raised in CBSE-521 and CBSE-528

It is observed during the sdkd scenario tests, that while rebalance is happening, the client tries to connect only the primary node and does not connect to the other secondary nodes in the cluster. During rebalance the topology changes and hence many errors like socket reset, no response received, operation time out, etc.
These errors go away when the rebalance is over and with rebound phase, no errors are observed.
Please see some sample reports:
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_fo-ept-rb-Sdotnet-1.2-release-T2013-04-02-00.11.35-LV_MC_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_rb-2-in-Sdotnet-1.2-release-T2013-04-02-00.21.03-LV_HTTP_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_fo-ept-eject-Sdotnet-1.2-release-T2013-04-02-00.17.30-LV_HTTP_BASIC.txt

Mark - need your input here too, do you think these errors during rebalance can impact performance or stability at customer site.


 Comments   
Comment by Saakshi Manocha [ 02/May/13 ]
Also, as per the documentation and our understanding, we can expect errors during CHANGE phase and ideally they should go away in REBOUND phase.

CHANGE: Here we see that errors start happening. This is because a cluster topology change started around this time. We can expect errors until the topology change is completed. In this case, the topology change was adding a single node to the cluster.
REBOUND: Here we see the errors are stopping. This is because the topology change has been completed. Since we added an extra node to the
cluster, the rate of operations has actually gone up from before. This is because there are more nodes to handle requests now.
Comment by Matt Ingenthron [ 10/May/13 ]
This appears to be a critical issue. Marking as blocker for 1.2.7 until we have a better understanding.
Comment by John Zablocki (Inactive) [ 15/May/13 ]
When you say "connect to the primary node only" are you referring to the streaming connection or all ops are going on the primary node?
Comment by Saakshi Manocha [ 23/May/13 ]
I ran the sdkd tests on a 4-node cluster. During the fail-over/rebalance phase, client automatically considers one node as the primary node and throughout the logs, the error is:
 System.IO.IOException: Failed to read from the socket '10.3.3.206:11210'. Error: SocketError value was Success, but 0 bytes were received

It only tries to connect to the primary node, never tries to connect to the other nodes, and once the primary node is up and the rebalance is over, the error rate slows down.
Comment by Michael Catanzariti [ 09/Sep/13 ]
Any news about that one?
we are experimenting the same issue when adding or removing a node into/from the cluster of 3 nodes during a load test (10000 concurrent users)

It seems that the client library is returning null on CouchbaseClient.GetWithCas only during the rebalance operation (a few minutes) as if it could not find existing documents.
once the rebalance operation is over, the driver returns correctly the existing documents
Comment by Michael Catanzariti [ 10/Sep/13 ]
Hi, We just trace the code of library and it seems the problems occurs in the method CouchbaseClient.ExecuteWithRedirect in the following section

if (iows.State == OperationState.InvalidVBucket)
{
    var nodes = this.Pool.GetWorkingNodes();

    foreach (var node in nodes)
    {
        opResult = node.Execute(op);
....


when the cluster is rebalancing, the nodes could be all disposed and the node.Execute method returns an error for ALL the nodes

Our further investigations lead us to think that a there is a race condition between disposing nodes when the driver receives a new config from the cluster and the execution of requests by the client.
Indeed in the method CouchbasePool.ReconfigurePool the statement "Interlocked.Exchange(ref this.state, state);" does not protect the method CouchbaseClient.ExecuteWithRedirect to get the old nodes.
The nodes could be the current ones in the statement "var nodes = this.Pool.GetWorkingNodes();" and the line after they could be already disposed by the listener thread.

I hope to be clear enough :)


Comment by Matt Ingenthron [ 10/Sep/13 ]
Thanks for the investigation information Michael, this should help us more quickly get to the bottom of it.
Comment by Jeff Morris [ 12/Sep/13 ]
I am looking into the issue and I see a couple of places in the CouchbasePool class that are suspect. I'll dig deeper into this and follow up with a resolution asap.

Comment by Jeff Morris [ 25/Sep/13 ]
http://review.couchbase.org/#/c/29197/




[NCBC-78] Enhance discussion of return codes/values Created: 26/Jun/12  Updated: 31/Jan/14  Resolved: 31/Jan/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.1.6
Fix Version/s: 1.3.2

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

Attachments: Microsoft Word error-code-checking.docx    
Issue Links:
Duplicate
is duplicated by NCBC-249 We need documentation that explains h... Resolved

 Description   
Given the comments on this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-retrieve-set.html

Perhaps there can be a section on the possible return codes/values, what they mean, when they might happen, and how to deal with them?

 Comments   
Comment by Mark Nunberg [ 22/Nov/12 ]
This is a must-have for SDK testing. It is very difficult to determine failure types and severities without knowing what types of errors, exception classes, or such to expect.

At the very least, there should be standard return codes (in a well-defined location) for memcached error codes.
Comment by Jeff Morris [ 30/Jan/14 ]
Possible dupe: http://www.couchbase.com/issues/browse/NCBC-249#comment-77768
Comment by Jeff Morris [ 30/Jan/14 ]
Proposed amendment to documentation. Please review and provide feedback.
Comment by Perry Krug [ 31/Jan/14 ]
Thanks Jeff, this is a great start and well explained. I think it fits very nicely into our documentation, and just needs to be linked to from a variety of places in order to help people find it.

I think it would also be helpful to see some examples of handling of some of the more common error codes
Comment by Jeff Morris [ 31/Jan/14 ]
Great. I think we should consider this a "work in progress" and do a bit each month. Probably the best way to approach this is to create separate, specific tickets addressing documentation that we are lacking and ad them to the backlog. I'll pull one or two into each monthly "sprint" that I do for a release. From a workflow perspective, I like jira tickets to have a short lifespan...makes me feel more productive ;)
Comment by Jeff Morris [ 31/Jan/14 ]
This will sit underneath: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-working-with-operation-results

Note that it's no longer listed as an "appendix" but as a section: "Working with Operation Results and Error Codes"

Will be published with release notes for 1.3.2 on Tuesday.




[NCBC-3] NuGet download is not working correclty Created: 01/Aug/11  Updated: 05/Aug/11  Resolved: 05/Aug/11

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: Matt Ingenthron Assignee: Bin Cui
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Created a project with VisualStudio, and tried to bring in the dependencies with NuGet. Unfortunately, the assemblies don't come in, correctly.

From zipfile download, they do load correctly.

 Comments   
Comment by Bin Cui [ 05/Aug/11 ]
Republish the package with required format.




[NCBC-549] View queries are using localhost when client is configured for a remote Created: 10/Jul/14  Updated: 10/Jul/14  Resolved: 10/Jul/14

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

Type: Bug 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   
If you manually create a ViewQuery object and pass it to IBucket.Query(IViewQuery), it will use localhost as the base host instead of the remote host/ip that the cluster configuration has returned.

 Comments   
Comment by Jeff Morris [ 10/Jul/14 ]
Included in this commit e5ead27c1efa5d33bb4d0ba9f55d424ffd9d3c79




[NCBC-637] When CCCP fails ensure NRE is not thrown Created: 11/Sep/14  Updated: 11/Sep/14  Resolved: 11/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: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This is a regression from an earlier fix. Currently, memcached buckets will fail because the client never gets out of the bootstrap phase because a NRE is thrown which stops the bootstrap process before the HttpStreamingProvider gets a chance to bootstrap.

 Comments   
Comment by Jeff Morris [ 11/Sep/14 ]
http://review.couchbase.org/#/c/41371/




[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-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-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




[NCBC-626] HttpRequestException in queries after rebalance out Created: 07/Sep/14  Updated: 17/Sep/14  Resolved: 17/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
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     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




[NCBC-468] Resolve compiler warnings Created: 08/May/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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


 Description   
There are a number of compiler warnings ~25. These needs to be resolved.

 Comments   
Comment by Jeff Morris [ 02/Jun/14 ]
commit 50580733fd0b279e57125cfb1b5da001ef3fbef4

Reduced the compiler/resharper warnings from 800+ to around 23~. The rest will be resolved in future commits.




[NCBC-459] CRAM MD5 SASL Support Created: 07/May/14  Updated: 02/Jun/14  Resolved: 29/May/14

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

Type: Task Priority: Critical
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-486 Create CRAM-MD5 ISaslMechanism Impl Technical task Resolved Jeff Morris  
NCBC-487 Create Sasl Mechanism Factory Technical task Resolved Jeff Morris  
NCBC-488 Integrate SASL Factory into client Technical task Resolved Jeff Morris  

 Description   
CRAM MD5 Sasl support for .NET client - PLAIN is currently supported.

 Comments   
Comment by Jeff Morris [ 29/May/14 ]
commit 85b1ae52e221414de4dfb0853292a62ae4147f9a




[NCBC-460] Rename ICluster and Cluster to ICouchbaseCluster and CouchbaseCluster Created: 07/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

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


 Description   
Rename for consistency across SDK's.




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

[NCBC-463] Add support for "Replace" operation Created: 07/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

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-464] Refactor Bucket.Get(ViewQuery) to Bucket.Query(ViewQuery) Created: 07/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit fb6789b718908136a8414b4b63a9153935655637




[NCBC-457] Change verbosity of HB logging to DEBUG Created: 05/May/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.6

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


 Comments   
Comment by Matt Ingenthron [ 05/May/14 ]
I might argue for debug here, but it's your call. I think of things like configuration changes as INFO level, and things like regular background stuff as DEBUG.
Comment by Jeff Morris [ 05/May/14 ]
Fair enough, it was DEBUG originally, so we would be just reverting back to what it previously was.
Comment by Jeff Morris [ 05/May/14 ]
http://review.couchbase.org/#/c/36715/1




[NCBC-456] SocketAsyncStrategy's Dispose method throws NotImplementedException Created: 03/May/14  Updated: 02/Jun/14  Resolved: 06/May/14

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

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


 Description   
Dispose needs to be implemented.

 Comments   
Comment by Jeff Morris [ 06/May/14 ]
commit 528b737f44a0363e0c04da81485c855151251e3e




[NCBC-455] Inserting POCO throws NullRefererenceException Created: 03/May/14  Updated: 02/Jun/14  Resolved: 04/May/14

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

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


 Description   
No serializer exists for POCOs

 Comments   
Comment by Jeff Morris [ 04/May/14 ]
Fixed, but TypeSerializer needs to be refactored at some point for perf reasons.

 commit 3c70e8cba079e7991fcc93c4d11d7621ba613fb1




[NCBC-453] When key is not found IOperationResult.Message field contains error message Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Description   
This applies to all operations that fail.

 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 3b936d2c03ddfc7e372f2645e0ed21601447f975




[NCBC-454] Make all Common.Logging.ILog references private static Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 8cb80ed372cb803bd7cf0a3f26e056653826c753




[NCBC-452] View Query Error Handling Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 1cbc7e11350dc15ae61e08d9045ecf5ae7bd56ea




[NCBC-451] Provide error handling for invalid N1QL queries. Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 45297110ec69a8936714d2c3302e03a97281077d




[NCBC-444] XML code documentation Created: 01/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

Type: Story Priority: Critical
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-445 XML code documentation - Couchbase.Vi... Technical task Resolved Jeff Morris  
NCBC-446 XML code documentation - Couchbase.Co... Technical task Resolved Jeff Morris  
NCBC-447 XML code documentation - Couchbase.N1... Technical task Resolved Jeff Morris  
NCBC-448 XML code documentation - Couchbase.Au... Technical task Resolved Jeff Morris  
NCBC-449 XML code documentation - Couchbase.Co... Technical task Resolved Jeff Morris  
NCBC-450 XML code documentation - Couchbase.IO... Technical task Resolved Jeff Morris  

 Description   
Annotating all public and most internal classes and methods with XML code comments.




XML code documentation (NCBC-444)

[NCBC-446] XML code documentation - Couchbase.Core.Buckets namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit d5b4c588612d5abb8955ad063ffb310d8ac4c17b




XML code documentation (NCBC-444)

[NCBC-449] XML code documentation - Couchbase.Configuration namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit ad3a5cb876587eb2ff4e4efc3036ac762366ed16




XML code documentation (NCBC-444)

[NCBC-448] XML code documentation - Couchbase.Authentication namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit c58e4aa806592bb556df1fe9c876f13fe26fa20a




XML code documentation (NCBC-444)

[NCBC-445] XML code documentation - Couchbase.Views namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit 9e9ca0adc357cbc43c1b300a46350f051179cd1f




XML code documentation (NCBC-444)

[NCBC-447] XML code documentation - Couchbase.N1QL namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit c9c7576b84ae7cc5c063cde4e9e81a1b52e94345




XML code documentation (NCBC-444)

[NCBC-450] XML code documentation - Couchbase.IO namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit 5402ad79dbc1eff8f7fa02436b2968bc62147621




[NCBC-443] Consolidate all query interfaces into IBucket Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit bae3efc69d5d231a30b2618ddca50471bf89470f




[NCBC-441] Cluster.cs needs another overloaded ctor for IClusterManager instances Created: 28/Apr/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

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


 Description   
This is for testability/DI, currently IClusterManager is new'd up in the ctor's

 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit fdb0731b8e36af268a8e479b2611bcb04048248f




[NCBC-436] Revieve error when I and try and access a view through the .net SDK Created: 18/Apr/14  Updated: 01/May/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.5

Type: Task Priority: Critical
Reporter: sglazer Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: 64bit Windows 7 I am running in a WCF service with target framework 4.5

Attachments: PNG File Couchbase.png    

 Description   
sample documents:

{
  "type": "UserWebsiteProperties",
  "url": "http://google.com",
  "keywords": [
    "k1",
    "k2",
    "k3",
    "k4",
    "k5"
  ]
}

{
  "type": "UserWebsiteProperties",
  "url": "http://www.test.com",
  "keywords": [
    "k1",
    "k2",
    "k2",
    "video1",
    ""
  ]
}

Map Function:
function (doc, meta) {
  if (doc.type && doc.type == "UserWebsiteProperties" && doc.keywords) {
     emit(doc.url, null);
  }
}

c# code:

 public KeywordList GetAllKeywords()
        {
            var client = CouchbaseManager.Instance;
            var view = client.GetView("_design/keywords", "keywords", true);
            
            var count = view.Count();
            foreach (var row in view)
            {
                var key = row.Info["key"];
            }

            
            return new KeywordList();
        }

Error Result:

Message: Query failed for view keywords in design document _design/keywords

Reason: attachments not supported in Couchbase

Stacktrace: at Couchbase.CouchbaseViewHandler.d__0`1.MoveNext()
at SEOServices.Service1.GetAllKeywords() in c:\Users\Stephen\Desktop\SEO\Services\SEO Services\SEOServices\Service1.svc.cs:line 32
at SyncInvokeGetAllKeywords(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
- See more at: http://www.couchbase.com/communities/q-and-a/net-client-getview-not-working#sthash.MRr0wTgI.dpuf







 Comments   
Comment by sglazer [ 18/Apr/14 ]
Please note: I'm querying the production version of the view in the code: var view = client.GetView("_design/keywords", "keywords", true); but posted a screen shot of the development view. They are the same in both and the error occurs regardless of which version of the view I use. Also a bit more code in case you need it: ublic static class CouchbaseManager
    {
        private readonly static CouchbaseClient _instance;

        static CouchbaseManager()
        {
            _instance = new CouchbaseClient();
        }

        public static CouchbaseClient Instance { get { return _instance; } }
    }
Comment by Jeff Morris [ 18/Apr/14 ]
It's a bug...the client is emitting a url that looks like this:
http://127.0.0.1:8092/default/_design/_design/keywords/_view/keywords

instead of:
http://127.0.0.1:8092/default/_design/keywords/_view/keywords

Can you try installing 1.3.3 and see if you can reproduce it? You may need to revert to 1.3.3 or even 1.3.1 - I'll have a patch pretty soon, if you need it I can do a verification fix.
Comment by Jeff Morris [ 18/Apr/14 ]
Actually, it's not a bug :) well, it's a bug on the users side: you are passing in "_design/keywords" as your design document, when all you need is "keywords". The "_design" portion is an API abstraction and not needed (the API will construct the url and add it). This will work:

var view = client.GetView("keywords", "keywords", true);

That being said, i think we should go ahead and remove the "_design" portion if it's added like this given the level of confusion it causes. The error message returned by the server was less that helpful.

Thanks,

Jeff
Comment by sglazer [ 18/Apr/14 ]
Thanks again for the speedy response Jeff. I would be happy to try installing 1.3.3 and letting you know what happens.I'm not exactly sure what a verification fix is but anything that can get me over this hump so that I can continue working with views would be great. I'll try 1.3.3 in the meantime. Can I use NUGET to intall that version?

Stephen
Comment by sglazer [ 18/Apr/14 ]
Thanks Jeff that did the trick. I apologize if I wasted your time but I used some posted sample code as a reference and the error message definitely threw me for a loop. Great job and thanks a ton for the help.




[NCBC-503] CouchbaseCluster construction is missing un/pw Created: 04/Jun/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.6

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


 Description   
https://github.com/couchbase/couchbase-net-client/pull/2

"I recently used the couchbase net client library and while trying to use the cluster management api's I found a bug where the constructor wasn't passing the username and password along while getting the pool and bucket data. This bug fix simply passes those into the http get calls."

 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
Merged: http://review.couchbase.org/#/c/37869/




[NCBC-502] XML Code documentation for configuration classes. Created: 03/Jun/14  Updated: 03/Jun/14  Resolved: 03/Jun/14

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

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


 Comments   
Comment by Jeff Morris [ 03/Jun/14 ]
commit 861b04002abab2a815b5a9c49c3829b602a0b325




[NCBC-501] Fix possible cast exception in KetamaKeyMapper Created: 03/Jun/14  Updated: 03/Jun/14  Resolved: 03/Jun/14

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

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


 Comments   
Comment by Jeff Morris [ 03/Jun/14 ]
commit 330e9aa65cc7071056bb54702665f6fbfd4a6b39




[NCBC-499] Refactor InternalPoolImpl so that NRE is not thrown. Created: 02/Jun/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.6

Type: Bug 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   
https://github.com/couchbase/couchbase-net-client/pull/14
http://www.couchbase.com/communities/q-and-a/nullreferenceexception-memcachednodeinternalpoolimpl

NullReferenceException at MemcachedNode+InternalPoolImpl.<Dispose>

I recently updated to Couchbase Client Library .NET 1.3.4 and I've been experiencing daily incidences of the following NullReferenceException:

System.NullReferenceException
Stack:
at Enyim.Caching.Memcached.MemcachedNode+InternalPoolImpl.b__7(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()

The exception is particularly problematic because it appears to happen within the Timer callback here: https://github.com/couchbase/couchbase-net-client/blob/master/src/Enyim.... which means that it bubbles up as an AppDomain.CurrentDomain.UnhandledException and terminates my process

I'm going to enable logging as described here (http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-logging) in hopes that I get some more information to go on
- See more at: http://www.couchbase.com/communities/q-and-a/nullreferenceexception-memcachednodeinternalpoolimpl#sthash.x5T3rjeQ.dpuf

 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
Merged: http://review.couchbase.org/#/c/37840/




[NCBC-494] Finalizer throws NRE if Pools has already been finalized/GC'd Created: 02/Jun/14  Updated: 04/Jun/14  Due: 05/Jun/14  Resolved: 04/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.6

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


 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
http://review.couchbase.org/#/c/37879/




[NCBC-492] Refactor ConfigProviders into ConfigProviderBase Created: 29/May/14  Updated: 02/Jun/14  Resolved: 29/May/14

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

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


 Description   
Refactored the common fields and methods of HttpStreamingProvider and CarrierConfigurationProvider into a base class: ConfigProviderBase. Improved readability and maintainability.

 Comments   
Comment by Jeff Morris [ 29/May/14 ]
commit 465ca71b91d55abc9be288a7b6be2fa671ffcc94




CRAM MD5 SASL Support (NCBC-459)

[NCBC-488] Integrate SASL Factory into client Created: 24/May/14  Updated: 02/Jun/14  Resolved: 27/May/14

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

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   
Integrate Sasl factory into client so that the mechanism to be used can be created on the fly based upon server capabilities.

 Comments   
Comment by Jeff Morris [ 27/May/14 ]
commit ca23efee6041e23c9c82467f276d7c074e0e3548




CRAM MD5 SASL Support (NCBC-459)

[NCBC-486] Create CRAM-MD5 ISaslMechanism Impl Created: 24/May/14  Updated: 02/Jun/14  Resolved: 24/May/14

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

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   
Basic functionality for CRAM-MD5 and SASL using Couchbase's terms.

 Comments   
Comment by Jeff Morris [ 24/May/14 ]
commit a042d8b567f452af62a0878cff71cfbd3b927e52




[NCBC-483] Add Apache License to each source file footer Created: 19/May/14  Updated: 02/Jun/14  Resolved: 19/May/14

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

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


 Comments   
Comment by Jeff Morris [ 19/May/14 ]
commit 1c16121de8673e6f826426af9208c35845e66e45




[NCBC-482] Provide hostname resolution to IP address Created: 16/May/14  Updated: 06/Jun/14  Resolved: 06/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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 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-510 Only use DNS lookup when IP is not av... Technical task Resolved Jeff Morris  

 Description   
BucketConfig requires host name to be the IP, which is invalid - the IP address should be resolved from the Hostname.

 Comments   
Comment by Jeff Morris [ 06/Jun/14 ]
commit 234b17990298d00d80115ddf6baf2533480d28af




[NCBC-477] Add support for Incr/Decr Created: 14/May/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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 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-508 Add Increment operation support Technical task Resolved Jeff Morris  
NCBC-509 Add Decrement operation support Technical task Resolved Jeff Morris  




[NCBC-476] Add Info trace statements to config management Created: 13/May/14  Updated: 02/Jun/14  Resolved: 13/May/14

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

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


 Comments   
Comment by Jeff Morris [ 13/May/14 ]
commit 5a674c8199d513bcef680ad4571ca49e9054b544




[NCBC-472] Implement Set, Add, Replace for Memcached bucket (really Insert, Replace, Upsert) Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

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


 Description   
This is similar to NCBC-123 but for memcached buckets.

 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit ff683cac318d103e9da79c987ebb8ab720c1c1aa




[NCBC-473] Refactor CreateQuery parameters Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

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


 Description   
Change the order of parameters to make more consistent.

 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit a859bdc22d58836e0e45214dc453be8b34b619ce




[NCBC-471] Add support for Remove (delete) operation Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

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


 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit e70cd0113c5eb63bac8b8ce0048ffebc526d4e70




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

[NCBC-470] Add support for Insert (Add) operation Created: 08/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

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-469] Refactor IBucket.Insert to IBucket.Upsert Created: 08/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit b49d6d867742223be95a30934081def9c623bb0f




[NCBC-424] Add SSL support in support of Couchbase Server 3.0 Created: 27/Mar/14  Updated: 02/Jun/14  Resolved: 22/May/14

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

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

Issue Links:
Dependency
blocks MB-10084 Sub-Task: Changes required for Data E... Open

 Description   
In support of the new SSL feature in Couchbase Server 3.0, we will need to add SSL support. See the related issue CCBC-344.

 Comments   
Comment by Jeff Morris [ 12/May/14 ]
Additional info: https://docs.google.com/document/d/17e-9gNJmIR5baqcxjQCbm5XVACpoYOK8PG-Neg6TTL8/edit
Comment by Jeff Morris [ 22/May/14 ]
commit 30536f0839814dc56543148b62afae3fadf39cb1




[NCBC-422] Check that a CCCP config's rev# is greater than the current Created: 24/Mar/14  Updated: 13/May/14  Resolved: 13/May/14

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

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


 Comments   
Comment by Jeff Morris [ 12/May/14 ]
Is the latest rev# always the most updated? Can I assume that CCCP will return a config more than once?
Comment by Jeff Morris [ 13/May/14 ]
43b60903f17b4ef424dda63a8989ff2573e04d6e




[NCBC-418] SASL Authentication Created: 24/Mar/14  Updated: 12/Apr/14  Resolved: 12/Apr/14

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

Type: Story 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   
Provide support for SASL authentication.

 Comments   
Comment by Jeff Morris [ 12/Apr/14 ]
Basic plain text support for SASL




[NCBC-352] ExecuteIncrement with CAS fails Created: 17/Dec/13  Updated: 24/Dec/13  Resolved: 17/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.0
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: bchavez Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The following unit test should pass:

        [Test]
        public void incer_with_cas_test()
        {
            var client = k.Get<CouchbaseClient>();

            client.Remove( "foobar" );

            var result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );

            Assert.NotNull( result.Value );
            Assert.That( result.Value, Is.EqualTo( 4 ) );
        }

However, the output is:
  Expected: 4
  But was: "1"

The debug/error log for Couchbase / Enyim reads as follows:

2013-12-16 23:36:59.5972|DEBUG|Couchbase.CouchbaseNode|Operation failed :i foobar n: 192.168.0.53:11210 t: Runner thread m: Failed to process response: Invalid arguments sc: InvalidArguments r: 0

2013-12-16 23:36:59.5972|DEBUG|Couchbase.CouchbaseClient|Operation failed :i foobar n: t: Runner thread m: Failed to process response: Invalid arguments sc: InvalidArguments r: 0



 Comments   
Comment by bchavez [ 17/Dec/13 ]
Slight correction to the last assertion:

Assert.That( ulong.Parse( result.Value.ToString() ) , Is.EqualTo( 4ul ) );

Output:

  Expected: 4
  But was: 1
Comment by Jeff Morris [ 17/Dec/13 ]
bchavez -

Try this:

       [Test]
        public void incer_with_cas_test()
        {
            Client.Remove("foobar");

            var casResult = Client.GetWithCas("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            var result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");

            Assert.NotNull(result.Value);
            Assert.That(Convert.ToInt32(result.Value), Is.EqualTo(4));
        }

BTW - Thank you, thank you, thank you for providing a test with your bug report :)

-Jeff
Comment by Jeff Morris [ 17/Dec/13 ]
I provided a working example that shows how to use CAS with the .NET SDK. The API is a little wonky and this is something we will improve in the next version: 2.0
Comment by bchavez [ 20/Dec/13 ]
Hi Jeff,

I don't think the unit test is semantically accurate ...

I've added a "Console.WriteLine" to print out the CAS value after each ExecuteIncrement:

    [Test]
        public void incer_with_cas_test2()
        {
            var Client = k.Get<CouchbaseClient>();

            Client.Remove( "foobar" );

            var casResult = Client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            var result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );

            Assert.NotNull( result.Value );
            Assert.That( Convert.ToInt32( result.Value ), Is.EqualTo( 4 ) );
        }

Cas Value: 0
Cas Value: 0
Cas Value: 0
Cas Value: 0

The foobar counter does reach a value of 4. However, it does so only when the cas value is zero. I don't think this is the expected behavior.

I've modified my unit test with your suggestion; and the unit test still fails:

       [Test]
        public void incer_with_cas_test()
        {
            var client = k.Get<CouchbaseClient>();

            client.Remove( "foobar" );

            var result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );

            Assert.NotNull( result.Result );
            Assert.That( ulong.Parse( result.Result.ToString() ) , Is.EqualTo( 4ul ) );
        }

Cas Value: 0
Cas Value: 2477644067283
Cas Value: 2477644067283
Cas Value: 2477644067283

  Expected: 4
  But was: 1
Comment by Jeff Morris [ 23/Dec/13 ]
bchavez -

Your right, that unit test is not correct. I'll dig deeper into this and see what I can find. Also, if you can isolate the issue and want to go ahead and try to fix it, feel free to submit a pull request.

-Jeff
Comment by bchavez [ 24/Dec/13 ]
Hey Jeff,

I'm starting to think couchbase / memcached fundamentally does not support Increment with CAS.

I've found that none of the other SDKs (java, python, etc...) do not support INCR with CAS parameter. The .NET SDK is the only one that stands out with CAS parameters.

Also, a quick perusal of the couchbase / memcached source code, I found:

couchbase-server_src\memcached\daemon\memcached.c:

static void complete_incr_bin(conn *c) {
    protocol_binary_response_incr* rsp = (protocol_binary_response_incr*)c->wbuf;
    protocol_binary_request_incr* req = binary_get_request(c);

    assert(c != NULL);
    assert(c->wsize >= sizeof(*rsp));

    if (req->message.header.request.cas != 0) {
        write_bin_packet(c, PROTOCOL_BINARY_RESPONSE_EINVAL, 0);
        return;
    }

I've confirmed with Wireshark protocol analyzer and the client is sending the correct CAS value over the wire on TCP 11210, but an "Invalid arguments" response is sent from couchbase.

Ultimately, from the memcache.c source code above, I think this means if the CAS value in the request header is NOT zero, an "Invalid arguments" response is shot back to the client.

Fundamentally, I don't think CAS operations can be preformed with INCR and DECR.

Could you please confirm that INCR with CAS is an invalid operation in Couchbase with someone who's more experienced with the couchbase server code?

I suppose as a possible workaround, I could "Increment with CAS" on the client side using Store mode operations ...

Thanks,
Brian
Comment by Jeff Morris [ 24/Dec/13 ]
Hey Brian -

So, the official story is that since incr/decr are atomic; there is no need for CAS, so the server does not support it. As to why the .NET client has incr/decr with overloads for CAS is beyond me, this version of the client has quite a bit of history behind it.

I think the right thing to do here is to mark them as obsolete with a message indicating why and then not include them in the 2.0 version of the client.

-Jeff




[NCBC-337] Investigate "View vquery was mapped to a dead node, failing." errors in situational testing Created: 04/Dec/13  Updated: 10/Dec/13  Resolved: 10/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.0
Fix Version/s: 1.3.1

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: PNG File statusHealthy-config.PNG     PNG File statusWarmup-config.PNG    

 Description   
In situational testing, we have a very large number of view exceptions in the logs. We may want to provide a retry strategy for certain classifications of view errors, especially during a rebalance scenario.

 Comments   
Comment by Jeff Morris [ 10/Dec/13 ]
So, this happens when a config does not contain a "couchApiBase" element is not returned with the config. At this point the "status" in the config is "warmup".
Comment by Jeff Morris [ 10/Dec/13 ]
http://review.couchbase.org/#/c/31007/




[NCBC-334] Add a method of getting the version of the library programatically Created: 14/Nov/13  Updated: 04/Jan/14  Resolved: 04/Jan/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.1

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


 Description   
From some tools, it would usually be useful to get a version from the CouchbaseClient class. Ideally this would be derived from something like 'git describe' such that we could see if the code being used is not yet released and what it's lineage is.



 Comments   
Comment by Jeff Morris [ 31/Dec/13 ]
After some discussion, the solution needs the following steps:

1-Git hook: writes the sha1, git-describe or other info describing the snapshot of source being built to a file (Version.txt) in the local directory - this hook is run on every pull, fetch, etc
2-Version.txt: a file in the local directory that is:
  a) a Build Action of "Embedded resource"*,
  b) is added to git-ignore
  c) contains the version info from git described in #1
3-Build event: will copy the text from the file into the appropriate assembly attributes:
  a) for version into the AssemblyVersionAttribute,
  b) for other info (git describe or sha1 into the AssemblyInformationalAttribute. I think we could do this via variable substitution.

*May not have to be an embedded resource, maybe just a file on disk.
Comment by Jeff Morris [ 31/Dec/13 ]
Prototype: https://github.com/jeffrymorris/githook-version-example
Comment by Jeff Morris [ 04/Jan/14 ]
Committed a first generation implementation that adds a post-merge git hook that will run on a git-pull (iif their are remote changes). The hook will run a git-describe to get the state of the current repo and embed it within the AssemblyInformationVersion attribute in the AssemblyInfo.cs, which makes the info viewing through Windows explorer. It also adds a Version.txt file with the same information that is included as an embedded resource.

A later revision will update the AssemblyVersion and AssemblyFileVersion attributes with a version based off the git-describe (details to come) and add the git log information to the Version.txt file as well as add a method to expose the information publicly.

Note that the psake scripts will overwrite this information and will need to be updated so that the info exists for release builds as well as testing builds.

http://review.couchbase.org/#/c/31597/




[NCBC-312] Client API documentation for the creation of Design Docs/Views Created: 09/Oct/13  Updated: 05/Feb/14  Resolved: 10/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.8
Fix Version/s: backlog-2.0

Type: New Feature Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: views
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From a user:

 "We’ve been reviewing again using couchbase for a couple of bits but have noticed that the current .net client has no ability to create views and this has to be done via the console. If we went this route this could become a management nightmare for us."

 Comments   
Comment by Jeff Morris [ 09/Oct/13 ]
There is some documentation here: http://docs.couchbase.com/couchbase-sdk-net-1.2/#appendix-cluster-management-with-thenet-client-library
Comment by Matt Ingenthron [ 10/Oct/13 ]
Closeable?
Comment by Jeff Morris [ 10/Oct/13 ]
Yes, I think so.
Comment by Jeff Morris [ 10/Oct/13 ]
Documentation can be found here:
http://docs.couchbase.com/couchbase-sdk-net-1.2/#appendix-cluster-management-with-thenet-client-library




[NCBC-311] Uncaught Null Reference Exception causes host process to terminate Created: 09/Oct/13  Updated: 03/Dec/13  Resolved: 03/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.0

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


 Description   
From the Enyim github repo:

I found a potential race condition inside Enyim.Caching causing a null reference exception which propagates up through CouchbaseClient and crashes the IIS process.

I've filed an issue on Github with the details but also want to see if Couchbase team can do anything about it. I'm not sure if or how Couchbase team is related to the Enyim.Caching project.

https://github.com/enyim/EnyimMemcached/issues/131:

I got this in my Windows event log:

An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/1/ROOT/oa3

Process ID: 3432

Exception: System.NullReferenceException

Message: Object reference not set to an instance of an object.

StackTrace: at Enyim.Caching.CountdownEvent.Signal()
at Couchbase.CouchbaseClient.<>c__DisplayClass16.b__f(Boolean success)
at Couchbase.SyncOperation.<>c__DisplayClass2.b__1(Boolean readSuccess)
at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.DoDecodeHeader(AsyncIOArgs asyncEvent, Boolean& pendingIO)
at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.DoDecodeHeaderAsync(AsyncIOArgs asyncEvent)
at Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.EndReceive()
at Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.AsyncReadCompleted(Object sender, SocketAsyncEventArgs e)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

It caused IIS / AppPool to crash. Looking at the source code I suspect it's a potential race condition where Enyim.Caching.CountdownEvent.mre was set to null by the Dispose() method while CouchbaseClient.PerformMultiSync() is calling .Signal() in an async operation (which calls this.mre.Set() triggering the NRE). Maybe there should be a null check before calling mre.Set()?

 Comments   
Comment by Jeff Morris [ 03/Dec/13 ]
http://review.couchbase.org/#/c/30275/




[NCBC-306] .NET GetJSON operation throws null reference exception Created: 03/Oct/13  Updated: 28/Oct/13  Resolved: 28/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.0

Type: Bug 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   
"When I try to perform a GetJSON operation for a key that doesn't have any data associated with it, I get a null reference exception. Is this the expected behaviour? Looking at the source for the .NET client it seems that a null check is performed, but too late."

 Comments   
Comment by Jeff Morris [ 28/Oct/13 ]
http://review.couchbase.org/#/c/29840/

I am not sure if my implementation is sufficient...however, a null value will be returned by the GetJson method if it was set by the SetJson method. My concern is that is it valid to have a null document in a bucket? Also, the string "null" is what is what is returned by the server.




[NCBC-198] When performing MultiGet, unloading AppDomain crashes the host Created: 08/Jan/13  Updated: 29/Oct/13  Resolved: 29/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.3.0

Type: Bug Priority: Critical
Reporter: John Zablocki (Inactive) Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
https://github.com/enyim/EnyimMemcached/issues/103

 Comments   
Comment by Jeff Morris [ 29/Oct/13 ]
https://www.couchbase.com/issues/browse/NCBC-311




[NCBC-170] evaluate socket pool reliability change Created: 30/Nov/12  Updated: 07/Oct/13  Resolved: 07/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.3.0

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


 Description   
A recent issue seems to be similar to a reported issue in EnyimMemcached. We should evaluate whether or not to include this in our release.

See https://github.com/enyim/EnyimMemcached/issues/94

 Comments   
Comment by Jeff Morris [ 07/Oct/13 ]
Nothing changed - issue restricted to older version of memcached.




[NCBC-138] Streaming api not working on Windows server 2008 with latest code form github Created: 08/Oct/12  Updated: 22/Oct/12  Resolved: 22/Oct/12

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Mike Wiederhold Assignee: Mike Wiederhold
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: windows server 2008 64-bit


 Description   
Please double check that the streaming api is still properly functioning and follow up on the forum post below.

http://www.couchbase.com/forums/thread/why-does-bucketstreaming-keep-failing-windows-server-2008-r2-beta-2-0

 Comments   
Comment by John Zablocki (Inactive) [ 22/Oct/12 ]
The build on Nuget and the binaries at couchbase.com/develop/net/next are both from the latest source published to GitHub. I regularly use the raw source and haven't seen this problem. Mark N. also uses the source when testing on a Windows Server box and hasn't reported this issue.




[NCBC-9] docs do not describe how to configure dev or production views Created: 29/Sep/11  Updated: 23/Mar/12  Resolved: 23/Mar/12

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.1

Type: Bug Priority: Critical
Reporter: Matt Ingenthron Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by John Zablocki (Inactive) [ 23/Mar/12 ]
It is now described at http://www.couchbase.com/develop/net/next
Comment by John Zablocki (Inactive) [ 23/Mar/12 ]
See ProductionModeNameTransformer and DevelopmentModeNameTransformer in Getting Started.




[NCBC-81] ExecuteGet() for DictionaryType on multiple keys does not throw a exception if it is not able to connect to a node Created: 28/Jun/12  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.1.6
Fix Version/s: 1.3.0

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


 Description   
For development purposes i'm using a local Couchbase server installation with a single node. So i guess that turning off the CouchbaseServer service means the whole cluster in my case.
Here's a simple demo code:

System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;

using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);

res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);

IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}", multigetRes.Count);

foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("Get {0} Success:{1}, StatusCode: {2} Message: {3}", kvp.Key, kvp.Value.Success, kvp.Value.StatusCode, kvp.Value.Message);
}
}

Output with CouchbaseServer service on:
Set1 Success:True StatusCode:0 Message:
Set2 Success:True StatusCode:0 Message:
Dictionary count: 2
Get Test1 Success:True, StatusCode: Message:
Get Test2 Success:True, StatusCode: Message:

Output with CouchbaseServer service off:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0





Singular gets result in the correct exception error message:
Modified demo:
System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;
using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}", multigetRes.Count);
foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("MultiGet {0} Success:{1}, StatusCode: {2} Message: {3}", kvp.Key, kvp.Value.Success, kvp.Value.StatusCode, kvp.Value.Message);
}
res = client.ExecuteGet("Test1");
Console.WriteLine("Get1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
res = client.ExecuteGet("Test2");
Console.WriteLine("Get2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
}

Output:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0
Get1 Success:False StatusCode: Message:Unable to locate node
Get2 Success:False StatusCode: Message:Unable to locate node

 Comments   
Comment by Ivars Auzins [ 04/Oct/13 ]
I added pull request in github that would fix this: https://github.com/couchbase/couchbase-net-client/pull/8
Comment by Jeff Morris [ 04/Oct/13 ]
Thanks Ivars! I will review this for the 1.3.0 release.
Comment by Jeff Morris [ 04/Dec/13 ]
http://review.couchbase.org/#/c/30718/




[NCBC-467] AwaitableIOStrategy need it's Dispose method to be implemented. Created: 08/May/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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


 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
Completed and committed some time back.




[NCBC-439] HttpStreamingProvider streaming thread hangs when Dispose is called on Cluster object Created: 28/Apr/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

Type: Bug 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   
When called Dispose() should close and cleanup _everything_ however, if you do not explicitly call Cluster.CloseBucket(bucket) in certain cases the HttpStreamingProvider listener thread will hang indefinitly if Cluster.Dispose() is called. This is a definite bug that needs to be resolved before developer preview.

*Note: remove comment from code when resolved

 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
commit 335b2ad22752623d6279850d2ec1a36448982e66




[NCBC-417] Cluster.Dispose does not release all resources - config listener thread hangs in certain cases Created: 16/Mar/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

Type: Bug 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


 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
Resolved some time back.




[NCBC-291] add method to access errors array in view response Created: 19/Aug/13  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

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


 Description   
Currently, there's no way to get to the errors []

 Comments   
Comment by Jeff Morris [ 12/Dec/13 ]
Per this ticket, this feature will be moved to the 2.0 version of the client: http://www.couchbase.com/issues/browse/NCBC-289
Comment by Jeff Morris [ 24/Jun/14 ]
commit 90124fe52922daa5e45dcc84e9121fd359122c9b




[NCBC-428] Refactor URI creation across all HTTP endpoints Created: 01/Apr/14  Updated: 25/Jun/14  Resolved: 25/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: backlog-2.0
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


 Description   
The current source is a mishmash of different ways to create uri's on the fly for configs, view requests, and query requests. This needs to be better thought and implemented or else we'll have a maintenance nitemare.

 Comments   
Comment by Jeff Morris [ 25/Jun/14 ]
This was done some time back. If I find any additional URI creation logic strewn about, I'll re-open or create a new ticket.




[NCBC-478] Add support for Append Created: 14/May/14  Updated: 25/Jun/14  Resolved: 25/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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


 Comments   
Comment by Jeff Morris [ 25/Jun/14 ]
commit 58188438cd4c21a73194e73f6342fbc410d0b941




[NCBC-500] IsArrayOrCollection does not support IEnumerable Created: 02/Jun/14  Updated: 30/Jun/14  Resolved: 30/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.7

Type: Story 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   
https://github.com/couchbase/couchbase-net-client/pull/15




[NCBC-421] Refactor and Improve IO layer Created: 24/Mar/14  Updated: 08/Jul/14  Resolved: 08/Jul/14

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

Type: Story Priority: Critical
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-524 Refactor OperationBase and other clas... Technical task Resolved Jeff Morris  
NCBC-525 Misc performance improvements and ref... Technical task Resolved Jeff Morris  

 Description   
The current impl needs to be optimized - SocketAsynEventArgs are not being reused causing excessive GC.

 Comments   
Comment by Jeff Morris [ 08/Jul/14 ]
commit 6a9633f6f107d49f5db7d0a624cf673b6a743656

Probably not the last refactor here, but made a number improvements to design and structure of IO layer, most notable decoupled conversion of data to/from server from IO connection to IO operation classes.




[NCBC-504] Use ForwardVBucketMap when available Created: 06/Jun/14  Updated: 24/Jul/14  Resolved: 24/Jul/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP2
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


 Comments   
Comment by Jeff Morris [ 24/Jul/14 ]
commit 8b030587562a1d21770505f2edc60a69f353faab




Add durability requirements (the feature formally known as "Observe") (NCBC-475)

[NCBC-490] support configuring the poll interval with .net client for observe persistto and replicateto performance Created: 27/May/14  Updated: 08/Aug/14  Resolved: 08/Aug/14

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

Type: Technical task Priority: Critical
Reporter: Cihan Biyikoglu Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .net libraries 1.3.5


 Description   
Most enterprises that use us as a platform for general purpose operation, do persistto and replicateto testing. Without the tunables, the results tend to be high latency.
It would be great to get the same configurability options as the JAVA client in the .net client. http://docs.couchbase.com/couchbase-sdk-java-1.2/#setting-runtime-parameters-for-the-couchbaseconnectionfactorybuilder


email exchange with Jeff:

From: Jeffry Morris <jeffry.morris@couchbase.com>
Date: Thursday, May 22, 2014 at 9:47 PM
To: Cihan Biyikoglu <cihan@couchbase.com>
Subject: RE: poll interval for observe

Cihan –
 
It doesn’t look like it – I see 500ms hardcoded in the source.
 
https://github.com/couchbase/couchbase-net-client/blob/master/src/Couchbase/ObserveHandler.cs#L171
 
I am pretty sure that is the poll interval.
 
I’ll take a deeper look tomorrow.
 
-Jeff
 
 
 
From: Cihan Biyikoglu
Sent: Thursday, May 22, 2014 9:27 PM
To: Jeffry Morris
Subject: poll interval for observe
 
Jeff, is there a way to set the poll interval in the .net client?
I am doing some testing with persist to and replicate to and need to play with the tuning.
Thanks

 Comments   
Comment by Jeff Morris [ 02/Jun/14 ]
Set fix version to be 1.3.7 which is set for July 1, 2014 release. Note that release is tentative pending .NET SDK 2.0 Beta Release on that date. It might be better to make this a 2.0 feature? At least it should have another ticket for inclusion there.
Comment by Cihan Biyikoglu [ 02/Jun/14 ]
2.0 works as well Jeff. thanks
Comment by Jeff Morris [ 08/Aug/14 ]
http://review.couchbase.org/#/c/40351/




[NCBC-564] Respect JsonSerializer settings for deserialization Created: 26/Jul/14  Updated: 11/Aug/14  Resolved: 11/Aug/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.7
Fix Version/s: 1.3.8

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


 Description   
Pull request here:
https://github.com/couchbase/couchbase-net-client/pull/17


 Comments   
Comment by Jeff Morris [ 28/Jul/14 ]
Thanks for submitting bchavez!
Comment by bchavez [ 28/Jul/14 ]
Thanks, I also am also (slightly off topic) having problems with this section of code:

            if (!IsArrayOrCollection(typeof(T)))
            {
                value = DocHelper.InsertId(value, key);
            }

I am managing all the document IDs myself in my application. But DocHelper keeps interfering with my ID during deserialization. Is there a way we can possibly set a flag that wont interfere with my JSON ?

One example: All my domain objects have a strongly typed Guid as their ID.

The KEY to an Account object is "acct:aaaa-bb-cc-dd".

POCO in C#:
public class Account{
    public Guid Id{get;set;}
}

I format the key to this object inside my App; however, during deserialization DocHelper interferes with the JSON by injecting the KEY: "acct:aaaa-bb-cc-dd" into the ID property in the JSON before deseralization.

So when Newtonsoft deserializes the JSON with the injected DocHelper Id:Key:"acct:aaaa-bb-cc-dd" cannot be converted to a Guid because of the prefix "acct:" is an invalid Guid format. I'd prefer the SDK not interfere with any of my ser/deser JSON.

Perhaps we can add some flag that can short circuit the DocHelper injection?

Thanks,
Brian
Comment by Jeff Morris [ 28/Jul/14 ]
Yes, the proper way to do this would be to create another ticket as a feature request.

A couple of criterion to consider:
a) The default should be the current behavior - don't break existing users
b) It's configurable through the app.config
c) Includes set of unit tests showing default and "set" behavior

As always, if you would like to take a stab at it and submit a PR, go for it :)

-Jeff
Comment by bchavez [ 28/Jul/14 ]
This is awesome. Thank you. Yea, I'll likely take a stab at it later today.
Comment by Jeff Morris [ 28/Jul/14 ]
>> I'd prefer the SDK not interfere with any of my ser/deser JSON.

Agreed, not sure why it enforces it TBH.

>>This is awesome. Thank you. Yea, I'll likely take a stab at it later today.

Cool, have fun!
Comment by Jeff Morris [ 11/Aug/14 ]
86fd1c588df15611b557bfa7e401581e005c188e




[NCBC-475] Add durability requirements (the feature formally known as "Observe") Created: 09/May/14  Updated: 11/Aug/14  Resolved: 11/Aug/14

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

Type: Story Priority: Critical
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-490 support configuring the poll interval... Technical task Resolved Jeff Morris  
NCBC-541 Implement Observe command Technical task Resolved Jeff Morris  
NCBC-542 Provide Observe method on IBucket Technical task Resolved Jeff Morris  
NCBC-543 Provide durability constraints for mu... Technical task Resolved Jeff Morris  

 Comments   
Comment by Matt Ingenthron [ 02/Jul/14 ]
The official term is "durability requirements"
Comment by Jeff Morris [ 11/Aug/14 ]
http://review.couchbase.org/#/c/40351/




[NCBC-601] ThrowArgumentOutOfRangeException in Couchbase.Core.VBucket.LocatePrimary() after failover nodes Created: 24/Aug/14  Updated: 26/Aug/14  Resolved: 26/Aug/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: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


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


Running ReAdd2-HYBRID: 2014-08-24 03:25:00

.....
[592.87 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@204.281
[592.87 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@204.282 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={limit=0}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[592.88 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_QUERY 
[592.88 INFO] (Scenario run:83) RAMP phase started. Waiting for 30 seconds
[592.88 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[592.88 INFO] (SDKD log:137)  "DSType": "DSTYPE_SEEDED",
[592.88 INFO] (SDKD log:137)  "DS": {},
[592.88 INFO] (SDKD log:137)  "ViewParameters": {
[592.88 INFO] (SDKD log:137)  "limit": 0
[592.88 INFO] (SDKD log:137)  },
[592.88 INFO] (SDKD log:137)  "DesignName": "test_design",
[592.88 INFO] (SDKD log:137)  "Options": {
[592.88 INFO] (SDKD log:137)  "DelayMax": 10,
[592.88 INFO] (SDKD log:137)  "DelayMin": 1,
[592.89 INFO] (SDKD log:137)  "IterWait": 1,
[592.89 INFO] (SDKD log:137)  "ViewQueryCount": -1,
[592.89 INFO] (SDKD log:137)  "ViewQueryDelay": 0,
[592.89 INFO] (SDKD log:137)  "TimeRes": 1
[592.89 INFO] (SDKD log:137)  },
[592.89 INFO] (SDKD log:137)  "ViewName": "test_view"
[592.89 INFO] (SDKD log:137) } 
[622.88 INFO] (Scenario run:86) Starting CHANGE phase
[622.88 INFO] (CBCluster failoverNodes:582) Failing over <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[623.18 INFO] (CBCluster failoverNodes:582) Failing over <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[623.38 INFO] (FailoverAction change:104) Nodes failed over. Requested sleep for 45 seconds
[623.50 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409 
[623.60 INFO] (SDKD log:137) 
[623.62 INFO] (SDKD log:137) Unhandled Exception: 
[623.62 INFO] (SDKD log:137) Unhandled Exception: 
[623.62 INFO] (SDKD log:137) Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
[623.62 INFO] (SDKD log:137) Parameter name: index
[623.63 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 1
[623.63 INFO] (SDKD log:137)  at System.ThrowHelper.ThrowArgumentOutOfRangeException()
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at Couchbase.Core.VBucket.LocatePrimary() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\VBucket.cs:line 20
   at Couchbase.Core.Buckets.CouchbaseBucket.GetServer(String key, IVBucket& vBucket) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 86
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 96
   at Couchbase.Core.Buckets.CouchbaseBucket.Upsert[T](String key, T value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 312
   at Sdkd.Commands.SetCommand.ExecuteSingle(String key, String value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\SetCommand.cs:line 77
   at Sdkd.Commands.KVCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\KVCommand.cs:line 25
   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 235
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 156
   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()





 Comments   
Comment by Andrei Baranouski [ 24/Aug/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-601/NCBC-601_log.zip
Comment by Jeff Morris [ 24/Aug/14 ]
Tentative patch: http://review.couchbase.org/#/c/40871/1

Discussed this with Mark Nunberg sometime back: What to do when the server returns -1 for a primary in it's VBucket map? I believe we agreed upon trying a replica (really any other available server) and if a NMV is encountered, the config will be refreshed. Let's see how this works.

We might need to handle the case of a null IServer by gracefully returning an error back to the application, instead of letting the null reference end up as a NRE.
Comment by Andrei Baranouski [ 26/Aug/14 ]
When I run with this commit I get

[270.31 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[270.32 INFO] (SDKD log:137) at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
at Couchbase.Core.VBucket.LocatePrimary() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase
\Core\VBucket.cs:line 29
at Couchbase.Core.Buckets.CouchbaseBucket.GetServer(String key, IVBucket& vBucket) in c:\jenkins\workspace\.net-sdkdclient-ng2-
andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 86
at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-
andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 96
at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-c
lient\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 888
at Sdkd.Commands.GetCommand.ExecuteSingle(String key, String value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net
\src\Sdkd\Commands\GetCommand.cs:line 18
at Sdkd.Commands.KVCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\KVCommand.cs:lin
e 25
at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andr
ei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 295
at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs
:line 175
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boo
lean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean pre
serveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
[270.34 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]
Comment by Jeff Morris [ 26/Aug/14 ]
Another patch:

git fetch ssh://jmorris@review.couchbase.org:29418/couchbase-net-client refs/changes/71/40871/2 && git checkout FETCH_HEAD




[NCBC-461] Add "meta document" support Created: 07/May/14  Updated: 01/Jul/14  Resolved: 01/Jul/14

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

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


 Description   
Per SDK 2.0 spec (note need to understand this a bit more)
id,
cas,
expiration
...

 Comments   
Comment by Jeff Morris [ 01/Jul/14 ]
https://www.couchbase.com/issues/browse/NCBC-538




[NCBC-474] Add CAS support Created: 09/May/14  Updated: 01/Jul/14  Resolved: 01/Jul/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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


 Comments   
Comment by Jeff Morris [ 01/Jul/14 ]
commit e601cf6c2f7c92efa69531e19662c404e1c10c26




[NCBC-479] Add Retry logic for NMV's Created: 14/May/14  Updated: 29/Jul/14  Resolved: 29/Jul/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
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


 Comments   
Comment by Jeff Morris [ 29/Jul/14 ]
CR: http://review.couchbase.org/#/c/39989/




[NCBC-498] Common Flags Created: 02/Jun/14  Updated: 29/Aug/14  Resolved: 29/Aug/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP1
Fix Version/s: backlog-2.0

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


 Description   
Support for "common flags" - consistent datatypes across all SDK's for stored values.

 Comments   
Comment by Jeff Morris [ 29/Aug/14 ]
http://www.couchbase.com/issues/browse/NCBC-608




[NCBC-623] [ssl+vpn] ArgumentOutOfRangeException when try Couchbase.Core.Serializers.TypeSerializer.Deserialize Created: 06/Sep/14  Updated: 10/Sep/14  Resolved: 10/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: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File test.logs    

 Description   
Unfortunately this run was without client logging because I was not planning to test client)
will try to provide them later, if I will be able to reproduce it

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,13 INFO] (BRun run:441) Initializing history database

============================================================
Running Rb2Out-HYBRID: 2014-09-06 12:43:12
    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\034992\74769ea477613d9a56c4eb5d41d6c987

    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

.....

[3870,95 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[3870,95 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 127
[3876,33 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@127.56
[3876,33 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@127.57 => {Options={DelayMin=1, TimeRes=1, ViewQueryCount=-1, IterWait=1, ViewQueryDelay=0, DelayMax=10}, ViewParameters={limit=0}, DesignName=test_design, DSType=DSTYPE_SEEDED, ViewName=t
est_view, DS={}}
[3876,34 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_QUERY
[3876,34 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@128.58 => {Options={OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]], Username=default, SSL=true, Password=}, Bucket=default, Port=8091, Hostname=10.3.121.134}
[3876,34 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[3876,34 INFO] (SDKD log:137) "Options": {
[3876,35 INFO] (SDKD log:137) "DelayMin": 1,
[3876,35 INFO] (SDKD log:137) "TimeRes": 1,
[3876,35 INFO] (SDKD log:137) "ViewQueryCount": -1,
[3876,35 INFO] (SDKD log:137) "IterWait": 1,
[3876,36 INFO] (SDKD log:137) "ViewQueryDelay": 0,
[3876,36 INFO] (SDKD log:137) "DelayMax": 10
[3876,36 INFO] (SDKD log:137) },
[3876,36 INFO] (SDKD log:137) "ViewParameters": {
[3876,37 INFO] (SDKD log:137) "limit": 0
[3876,37 INFO] (SDKD log:137) },
[3876,37 INFO] (SDKD log:137) "DesignName": "test_design",
[3876,37 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[3876,38 INFO] (SDKD log:137) "ViewName": "test_view",
[3876,38 INFO] (SDKD log:137) "DS": {}
[3876,38 INFO] (SDKD log:137) }
[3876,38 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[3876,39 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 128
[3892,59 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@128.58
[3892,59 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@128.59 => {Options={DelayMin=1, TimeRes=1, ViewQueryCount=-1, IterWait=1, ViewQueryDelay=0, DelayMax=10}, ViewParameters={limit=0}, DesignName=test_design, DSType=DSTYPE_SEEDED, ViewName=t
est_view, DS={}}
[3892,59 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_QUERY
[3892,59 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[3892,59 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@129.60 => {Options={OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]], Username=default, SSL=true, Password=}, Bucket=default, Port=8091, Hostname=10.3.121.134}
[3892,59 INFO] (SDKD log:137) "Options": {
[3892,59 INFO] (SDKD log:137) "DelayMin": 1,
[3892,60 INFO] (SDKD log:137) "TimeRes": 1,
[3892,60 INFO] (SDKD log:137) "ViewQueryCount": -1,
[3892,60 INFO] (SDKD log:137) "IterWait": 1,
[3892,60 INFO] (SDKD log:137) "ViewQueryDelay": 0,
[3892,60 INFO] (SDKD log:137) "DelayMax": 10
[3892,60 INFO] (SDKD log:137) },
[3892,60 INFO] (SDKD log:137) "ViewParameters": {
[3892,60 INFO] (SDKD log:137) "limit": 0
[3892,61 INFO] (SDKD log:137) },
[3892,61 INFO] (SDKD log:137) "DesignName": "test_design",
[3892,61 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[3892,61 INFO] (SDKD log:137) "ViewName": "test_view",
[3892,61 INFO] (SDKD log:137) "DS": {}
[3892,62 INFO] (SDKD log:137) }
[3892,62 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[3892,62 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 129
[3898,85 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@129.60
[3898,85 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_LOAD@129.61 => {Options={DelayMin=0, TimeRes=0, IterWait=1, DelayMax=0}, Schema={InflateLevel=40, InflateContent=meh}, DSType=DSTYPE_SEEDED, DS={KSize=12, KSeed=ViewFillerSeed, VSize=512, VSeed=
ViewFillerSeed, Continuous=false, Repeat=rep, Count=1000}}
[3898,85 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_LOAD
[3898,86 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[3898,86 INFO] (SDKD log:137) "Options": {
[3898,86 INFO] (SDKD log:137) "DelayMin": 0,
[3898,86 INFO] (SDKD log:137) "TimeRes": 0,
[3898,86 INFO] (SDKD log:137) "IterWait": 1,
[3898,87 INFO] (SDKD log:137) "DelayMax": 0
[3898,87 INFO] (SDKD log:137) },
[3898,87 INFO] (SDKD log:137) "Schema": {
[3898,87 INFO] (SDKD log:137) "InflateLevel": 40,
[3898,88 INFO] (SDKD log:137) "InflateContent": "meh"
[3898,88 INFO] (SDKD log:137) },
[3898,88 INFO] (SDKD log:137) "DSType": "DSTYPE_SEEDED",
[3898,88 INFO] (SDKD log:137) "DS": {
[3898,88 INFO] (SDKD log:137) "KSize": 12,
[3898,89 INFO] (SDKD log:137) "KSeed": "ViewFillerSeed",
[3898,89 INFO] (SDKD log:137) "VSize": 512,
[3898,89 INFO] (SDKD log:137) "VSeed": "ViewFillerSeed",
[3898,89 INFO] (SDKD log:137) "Continuous": false,
[3898,89 INFO] (SDKD log:137) "Repeat": "rep",
[3898,89 INFO] (SDKD log:137) "Count": 1000
[3898,90 INFO] (SDKD log:137) }
[3898,90 INFO] (SDKD log:137) }
[4038,12 INFO] (SDKD log:137) [Sdkd.ViewLoader|Warn] there are no OK responses in ViewLoader
[4038,12 INFO] (SDKD log:137) [Sdkd.ViewLoader|Info] Summary details: {
[4038,12 INFO] (SDKD log:137) "0": 579,
[4038,12 DEBUG] (Handle receiveMessage:158) < CB_VIEW_LOAD@129.61 => {[OK]: 579, [MEMD:GENERIC]: 421}
[4038,12 INFO] (SDKD log:137) "264": 421
[4038,13 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@129.62
[4038,13 INFO] (SDKD log:137) }
[4038,13 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@130.63 => {Options={OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]], Username=default, SSL=true, Password=}, Bucket=default, Port=8091, Hostname=10.3.121.134}
[4038,13 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[4038,13 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CLOSEHANDLE
[4038,14 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {}
[4038,14 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Release CouchbaseBucket -436020959
[4038,14 INFO] (SDKD log:137) [Sdkd.Handle|Warn] DispatchCommand(req, SdkHandle) == false
[4038,14 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 130
[4039,99 INFO] (SDKD log:137)
[4040,07 INFO] (SDKD log:137) Unhandled Exception: System.ArgumentOutOfRangeException: Index and the counter should indicate the position at the buffer
[4040,08 INFO] (SDKD log:137) prameter name: bytes
[4040,08 INFO] (SDKD log:137) at System.Text.UTF8Encoding.GetString(Byte[] bytes, Int32 index, Int32 count)
[4040,08 INFO] (SDKD log:137) at Couchbase.Core.Serializers.TypeSerializer.Deserialize(Byte[] buffer, Int32 offset, Int32 length) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\Serializers\TypeSerializer.cs:line 197
[4040,08 INFO] (SDKD log:137) at Couchbase.Core.Serializers.TypeSerializer.Deserialize[T](Byte[] buffer, Int32 offset, Int32 length) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\Serializers\TypeSerializer.cs:line 86
[4040,08 INFO] (SDKD log:137) at Couchbase.IO.Operations.OperationBase`1.GetValue() at d:\couchbase_src\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 229
[4040,09 INFO] (SDKD log:137) at Couchbase.IO.Operations.OperationBase`1.GetResult() at d:\couchbase_src\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 198
[4040,09 INFO] (SDKD log:137) at Couchbase.Core.Server.Send[T](IOperation`1 operation) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\Server.cs:line 91
[4040,09 INFO] (SDKD log:137) at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 98
[4040,09 INFO] (SDKD log:137) at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 894
[4040,09 INFO] (SDKD log:137) at Sdkd.Commands.GetCommand.ExecuteSingle(String key, String value) at d:\couchbase_src\sdkd-net\src\Sdkd\Commands\GetCommand.cs:line 17
[4040,10 INFO] (SDKD log:137) at Sdkd.Commands.KVCommand.Run() at d:\couchbase_src\sdkd-net\src\Sdkd\Commands\KVCommand.cs:line 24
[4040,10 INFO] (SDKD log:137) at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) at d:\couchbase_src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
[4040,10 INFO] (SDKD log:137) at SdkdConsole.Daemon.Handle.Run() at d:\couchbase_src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 146
[4040,10 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[4040,10 INFO] (SDKD log:137) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[4040,10 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[4040,11 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[4040,11 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart()
[4078,01 INFO] (SDKD log:137)
[4078,01 INFO] (SDKD log:137) Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of the object.
[4078,02 INFO] (SDKD log:137) at Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\Core\ClusterManager.cs:line 160
[4078,02 INFO] (SDKD log:137) at Couchbase.CouchbaseCluster.OpenBucket(String bucketname, String password) at d:\couchbase_src\couchbase-net-client\Src\Couchbase\CouchbaseCluster.cs:line 84
[4078,02 INFO] (SDKD log:137) at SdkdConsole.Daemon.Handle.Run() at d:\couchbase_src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 125
[4078,02 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[4078,02 INFO] (SDKD log:137) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[4078,03 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[4078,03 INFO] (SDKD log:137) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[4078,03 INFO] (SDKD log:137) at System.Threading.ThreadHelper.ThreadStart()
[4090,68 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.run(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:1.8.0_11]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.8.0_11]
        at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_11]
[4090,70 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@103.64
[4090,71 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.8.0_11]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.8.0_11]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.8.0_11]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.8.0_11]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.8.0_11]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.8.0_11]
        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]



 Comments   
Comment by Jeff Morris [ 10/Sep/14 ]
Fixed by this ticket: NCBC-631




[NCBC-606] Couchbase.ServerUnavailableException at Couchbase.Configuration.ConfigContextBase.GetServer() when some nodes failed over Created: 27/Aug/14  Updated: 11/Sep/14  Resolved: 11/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: Critical
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 NCBC-606.zip     File test.logs    
Issue Links:
Duplicate
is duplicated by NCBC-598 ServerUnavailableException after reba... Resolved

 Description   
call packages\sdkdclient\bin\brun.bat -A S3Creds_tmp -I cluster_conf
ig.ini -I sdkd.args --variants HYBRID -d all:trace
[0.30 INFO] (BRun run:436) Initializing S3
[1.12 INFO] (BRun run:441) Initializing history database
[1.75 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools

============================================================
Running ReAdd2-HYBRID: 2014-08-26 22:31:28
    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-1174\ReAdd2-HYBRID\08-26-14\0198
88\0dcd5a5bc61e625f06a757ab9dfa7db5

    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

.....


[123.71 INFO] (Scenario run:86) Starting CHANGE phase
[123.71 INFO] (CBCluster failoverNodes:588) Failing over <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[123.72 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/failOver
[124.10 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409
[124.13 INFO] (CBCluster failoverNodes:588) Failing over <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[124.14 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/failOver
[124.40 INFO] (FailoverAction change:104) Nodes failed over. Requested sleep for 45 seconds
[125.61 INFO] (SDKD log:137)
[125.63 INFO] (SDKD log:137) Unhandled Exception: Couchbase.ServerUnavailableException: Exception of type 'Couchbase.ServerUnavail
ableException' was thrown.
[169.41 INFO] (FailoverAction doNextAction:68) Readding nodes after failover
[169.41 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/reAddNode
[169.41 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/reAddNode
[169.42 INFO] (FailoverAction doNextAction:85) Rebalancing nodes after failover
[169.42 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/nodes
[169.43 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/rebalance
[169.45 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[169.45 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[170.46 TRACE] (CouchbaseAdmin getResponseJson:167) GET
....
[196.67 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[196.68 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 37%
[197.59 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException Object reference not set to an instance of a
n object. at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewComman
d.cs:line 268
[197.61 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[197.61 INFO] (SDKD log:137) at Couchbase.Configuration.ConfigContextBase.GetServer() in c:\jenkins\workspace\.net-sdkdclient-n
g2-andrei\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 210
   at Couchbase.Core.Buckets.CouchbaseBucket.HandleIOError[T](IOperation`1 operation, IServer server) in c:\jenkins\workspace\.net
-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 194
   at Couchbase.Core.Buckets.CouchbaseBucket.CanRetryOperation[T](IOperationResult`1 operationResult, IOperation`1 operation, ISer
ver server) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:
line 179
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-
andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 104
   at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-c
lient\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 888
   at Sdkd.Commands.GetCommand.ExecuteSingle(String key, String value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net
\src\Sdkd\Commands\GetCommand.cs:line 18
   at Sdkd.Commands.KVCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\KVCommand.cs:lin
e 25
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andr
ei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 295
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs
:line 175
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boo
lean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean pre
serveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[197.64 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]
[197.66 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@103.73
[197.66 TRACE] (Handle sendMessageAsync:185) > {"Command":"CLOSEHANDLE","Handle":103,"ReqID":73,"CommandData":{}}
[197.66 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]
[197.68 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[197.83 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 39%
[198.80 INFO] (BRun uploadFile:141) Uploaded RAW => http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1174/Re
Add2-HYBRID/08-26-14/019888/0dcd5a5bc61e625f06a757ab9dfa7db5.zip
[198.83 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress


 Comments   
Comment by Jeff Morris [ 27/Aug/14 ]
These are same issue. Still trying to come up with a plan of attack for this one. A likely one will put the client back into bootstrap mode or possibly to force another config update.
Comment by Jeff Morris [ 11/Sep/14 ]
http://review.couchbase.org/#/c/41384/




[NCBC-639] ThrowOperationCanceledException in SendWithRetry[T](ViewQuery query) when 3 from 4 nodes restarted Created: 12/Sep/14  Updated: 12/Sep/14  Resolved: 12/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: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: win2012 3.0.0-1208


 Description   
http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2_win2012_64_andrei/23/consoleFull


Running SvcRestart-HYBRID: 2014-09-11 23:57:30
    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_win2012_64_andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1208\SvcRestart-HYBRID\09-11-14\025050\880a91bc80225536124352f8115cbc71

    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
.....


[2157.71 INFO] (Scenario run:83) RAMP phase started. Waiting for 30 seconds
[2157.71 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command CB_VIEW_QUERY 
[2157.71 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[2157.71 INFO] (SDKD log:137)  "DSType": "DSTYPE_SEEDED",
[2157.71 INFO] (SDKD log:137)  "DS": {},
[2157.71 INFO] (SDKD log:137)  "ViewParameters": {
[2157.71 INFO] (SDKD log:137)  "limit": 0
[2157.71 INFO] (SDKD log:137)  },
[2157.71 INFO] (SDKD log:137)  "DesignName": "test_design",
[2157.71 INFO] (SDKD log:137)  "Options": {
[2157.71 INFO] (SDKD log:137)  "DelayMax": 10,
[2157.71 INFO] (SDKD log:137)  "DelayMin": 1,
[2157.71 INFO] (SDKD log:137)  "IterWait": 1,
[2157.71 INFO] (SDKD log:137)  "ViewQueryCount": -1,
[2157.71 INFO] (SDKD log:137)  "ViewQueryDelay": 0,
[2157.71 INFO] (SDKD log:137)  "TimeRes": 1
[2157.71 INFO] (SDKD log:137)  },
[2157.71 INFO] (SDKD log:137)  "ViewName": "test_view"
[2157.71 INFO] (SDKD log:137) } 
[2187.71 INFO] (Scenario run:86) Starting CHANGE phase
[2187.72 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.121.135
[2190.35 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409 
[2191.77 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@52d654
[2192.77 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.121.136
[2196.16 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@38c8c5
[2197.19 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server stop on 10.3.3.206
[2201.34 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@f522e8
[2202.34 INFO] (Scenario sleepAndDo:109) Sleeping 5 seconds
[2207.38 INFO] (Scenario executeChange:134) Turning on services for nodes
[2207.38 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.135
[2208.94 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@19c873d
[2209.96 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.121.136
[2211.47 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@12a2259
[2212.47 DEBUG] (SSHCommand execute:75) Running /etc/init.d/couchbase-server start on 10.3.3.206
[2214.05 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@fe0ce9
[2215.05 INFO] (Scenario run:97) CHANGE phase done
[2215.05 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[2223.95 INFO] (SDKD log:137) 
[2223.95 INFO] (SDKD log:137) 
[2224.03 INFO] (SDKD log:137) Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception: 
[2224.04 INFO] (SDKD log:137) Unhandled Exception: System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 1
[2224.10 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_win2012_64_andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 0
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 164
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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()
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 3
[2224.10 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_win2012_64_andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 1141
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 164
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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()
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (SDKD log:137) +++ Received exception of ID 2
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (SDKD log:137) +++ Received exception of ID 2
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (SDKD log:137) +++ Received exception of ID 2
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (SDKD log:137) +++ Received exception of ID 2
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2224.10 INFO] (SDKD log:137) +++ Received exception of ID 2
[2224.10 INFO] (SDKD log:137) System.OperationCanceledException: The operation was canceled.
[2235.04 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[2235.04 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_16]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_16]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.6.0_16]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_16]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_16]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) ~[na:1.6.0_16]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.6.0_16]
at java.lang.Thread.run(Unknown Source) ~[na:1.6.0_16]
[2235.04 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@278.598
[2235.04 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_win2012_64_andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 1141
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 164
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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_win2012_64_andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 266
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_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()
[2235.05 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_16]
at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.6.0_16]
at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.6.0_16]
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.6.0_16]
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.6.0_16]
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.6.0_16]
at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.6.0_16]
at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.6.0_16]
at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.6.0_16]
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]
[2236.12 INFO] (BRun uploadFile:141) Uploaded RAW => http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1208/SvcRestart-HYBRID/09-11-14/025050/880a91bc80225536124352f8115cbc71.zip

the same test passed in previous runs
http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/91/consoleFull

 Comments   
Comment by Andrei Baranouski [ 12/Sep/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-639/4e70bec6/NCBC-639.zip
Comment by Jeff Morris [ 12/Sep/14 ]
http://review.couchbase.org/#/c/41394/




[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





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!




[NCBC-522] Make ILog instance within OperationResult(T) class static. Created: 20/Jun/14  Updated: 20/Jun/14  Resolved: 20/Jun/14

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

Type: Bug 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


 Description   
A new ILog instance was being created for every operation which led to excessive GC's.

 Comments   
Comment by Jeff Morris [ 20/Jun/14 ]
commit 65af0f30971c185ec7a4c227895e865a0ce81666




[NCBC-523] Refactor operations to use Converter Created: 20/Jun/14  Updated: 20/Jun/14  Resolved: 20/Jun/14

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

Type: Improvement 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


 Comments   
Comment by Jeff Morris [ 20/Jun/14 ]
commit a39674d03536c07b276857e21a2b121658a66339




[NCBC-521] Ensure one copy of ITypeSerializer is used per client instance Created: 19/Jun/14  Updated: 19/Jun/14  Resolved: 19/Jun/14

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

Type: 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


 Description   
This is will minimize GC's by reusing the serializer across all operations. ITypeSerializer instances should be stateless.

 Comments   
Comment by Jeff Morris [ 19/Jun/14 ]
commit 95a1dbbdaa201d6661a680706ce1a0f7885c7480




[NCBC-515] .NET Client accepts port 11211 as input Created: 16/Jun/14  Updated: 16/Jun/14  Resolved: 16/Jun/14

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

Type: Bug 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


 Description   
The client will accept the proxy port 11211 which is intended for use with clients that use Moxi. This causes the client to fail without an obvious reason. This will add an explicit exception class to make it easier to diagnose the issue, letting the caller know immediately, that the port isn't supported and that they should use port 11210 or 11207 (for ssl).

 Comments   
Comment by Jeff Morris [ 16/Jun/14 ]
commit 9cd7c766e9994caa03dc050224b40afd88b50c2c




[NCBC-514] When password is set at bucket level and OpenBucket(bucketName) is called, empty password is used. Created: 16/Jun/14  Updated: 16/Jun/14  Resolved: 16/Jun/14

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

Type: 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


 Description   
This will cause an empty string to be sent instead of the configured password resulting in a AuthenticationException to be logged.

 Comments   
Comment by Jeff Morris [ 16/Jun/14 ]
commit bab727843ac0cc83ded8d3bb1c710ca8cf690191




Provide hostname resolution to IP address (NCBC-482)

[NCBC-510] Only use DNS lookup when IP is not available Created: 13/Jun/14  Updated: 13/Jun/14  Resolved: 13/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP2
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


 Description   
Fixes an issue where DNS lookup fails because hostname is already an IPAddress.

 Comments   
Comment by Jeff Morris [ 13/Jun/14 ]
commit 7a556c364144409d35e5cb82ce12c484b89e6dbc




[NCBC-512] Switch from custom BinaryConverter to IByteConverter Created: 14/Jun/14  Updated: 17/Jun/14  Resolved: 17/Jun/14

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

Type: 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


 Description   
http://msdn.microsoft.com/en-us/library/system.bitconverter%28v=vs.110%29.aspx

 Comments   
Comment by Jeff Morris [ 17/Jun/14 ]
This ticket was originally intended to swap the BinaryConverter for System.BitConverter, however after testing the performance, the bit shifting approach is around ~20-30% faster. With BitConverter you have to partition the buffer and convert back and forth from big-endian to little-endian which slightly impacts performance. With bit shifting you can swap the buffer in place...so, we ended up with an extension point: IByteConverter. If you don't like the default implementation, ManualByteConverter, you can roll your own.
Comment by Jeff Morris [ 17/Jun/14 ]
commit 448bba208e6874d9e5d83e75886bdc604af126c4




[NCBC-511] Provide overrideable offset for body Created: 14/Jun/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

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

Type: 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


 Comments   
Comment by Jeff Morris [ 14/Jun/14 ]
commit 7786d196d16538fa0fefb473b3be88d22397b4ef

This may change later...




Add support for Incr/Decr (NCBC-477)

[NCBC-509] Add Decrement operation support Created: 13/Jun/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP2
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


 Comments   
Comment by Jeff Morris [ 14/Jun/14 ]
commit e37b7f07b25fcd3de8357e2bf1846203ca7eea25