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

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

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





[NCBC-567] Couchbase.IO.Strategies.DefaultIOStrategy - Could not authenticate default using Couchbase.Authentication.SASL.CramMd5Mechanism. Created: 28/Jul/14  Updated: 29/Jul/14

Status: Reopened
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: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive log.zip    

 Description   
after some time the tests begin to fall with
2014-07-28 00:59:20,864 [27] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Could not authenticate default using Couchbase.Authentication.SASL.CramMd5Mechanism.


Running Rb2Out-HYBRID: 2014-07-28 00:05:18
    rebalance/mode=out
    workload=HybridWorkloadGroup
    rebalance/count=2
    testcase=RebalanceScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-973\Rb2Out-HYBRID\07-28-14\025518\7d8cf558a26ca99fe4dc3028bc6b2ec0

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
        --rebalance-mode out --workload HybridWorkloadGroup
 \
        --rebalance-count 2 --testcase RebalanceScenario -C share\rexec
 \
        --rexec_path C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port
 \
        8675 --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \
        --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \
        --cluster_ssh-username=root --cluster_ssh-password=couchbase
    ---------------------------------------->8
[1.47 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
[1.87 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: remove 2 nodes and rebalance. Rebound for 90 seconds.
[1.88 INFO] (RunContext run:124) Starting cluster and driver
[1.89 INFO] (CBCluster startCluster:360) Node http://10.3.121.134:8091 is master now
[1.89 INFO] (HostPortDriver launch:32) Invoking SDKD as 'C:\temp\sdkd-out-debug\SdkdConsole.exe' 
[1.89 DEBUG] (CBCluster startCluster:366) Stopping any existing rebalance operations..
[2.26 INFO] (SDKD log:137) --- Logging Self-Test ---
[2.27 INFO] (SDKD log:137) [Sdkd.Main|Info] Info Message 
[2.27 INFO] (SDKD log:137) [Sdkd.Main|Warn] Warn Message 
[2.28 INFO] (SDKD log:137) [Sdkd.Main|Error] Error Message 
[2.28 INFO] (SDKD log:137) [Sdkd.Main|Fatal] Fatal Message 
[2.28 INFO] (SDKD log:137) [Sdkd.Main|Info] SDKD Listening on port 8675 
[2.42 DEBUG] (Handle sendMessageAsync:183) > INFO@0.0
[2.43 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[2.76 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.17929"}}
[4.02 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[4.06 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[4.11 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.3.206:8091,ns_1@10.3.3.206>
[4.18 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[4.18 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[4.70 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.134:8091
[4.71 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.3.206:8091
[4.71 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.135:8091
[4.71 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.136:8091
[4.73 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.121.134
[4.73 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.3.206
[4.73 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.121.136
[4.73 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.121.135
[4.94 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@641a034d
[4.94 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@19c6866d
[4.95 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@51c293f8
[4.95 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@5a9b8ff9
[4.95 DEBUG] (CBCluster setupNewCluster:271) Provisioning initial node com.couchbase.cbadmin.client.CouchbaseAdmin@6e0f0ad
[18.52 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.135:8091
[26.45 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.136:8091
[30.42 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.3.206:8091
[35.78 INFO] (CBCluster setupNewCluster:293) All nodes added. Will rebalance
[35.84 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[36.84 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[36.85 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[36.85 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[36.87 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[42.18 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[42.23 INFO] (RunContext run:143) Driver and cluster initialized
[42.26 INFO] (RunContext call:167) Running scenario..
[42.26 INFO] (Scenario run:72) Starting RAMP phase
[42.26 INFO] (Workload setupDesign:63) Creating design test_design
[42.51 INFO] (Workload setupDesign:80) Design creation done
[42.51 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[42.52 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[42.53 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101 
[42.54 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[42.56 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving Common.Logging.Log4Net 
[42.56 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly Common.Logging.Log4Net, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e 
[42.59 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving log4net 
[42.59 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821 
[42.91 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@101.1
[42.91 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_LOAD@101.2 => {DSType=DSTYPE_SEEDED, DS={KSeed=ViewFillerSeed, VSeed=ViewFillerSeed, Count=1000, Continuous=false, VSize=512, Repeat=rep, KSize=12}, Schema={InflateContent=meh, InflateLevel=40}, Options={DelayMax=0, DelayMin=0, IterWait=1, TimeRes=0}}
[43.02 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409 
[43.39 INFO] (SDKD log:137) [Sdkd.ViewLoader|Info] Summary details: {
[43.39 INFO] (SDKD log:137)  "0": 44,
[43.40 INFO] (SDKD log:137)  "264": 956
[43.40 INFO] (SDKD log:137) } 
[43.40 DEBUG] (Handle receiveMessage:158) < CB_VIEW_LOAD@101.2 => {[OK]: 44, [MEMD:GENERIC]: 956}
[43.40 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.3
[43.40 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.41 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@102.4 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.41 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 102 
[43.41 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.42 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@102.4
[43.42 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_LOAD@102.5 => {DSType=DSTYPE_SEEDED, DS={KSeed=ViewFillerSeed, VSeed=ViewFillerSeed, Count=1000, Continuous=false, VSize=512, Repeat=rep, KSize=12}, Schema={InflateContent=meh, InflateLevel=40}, Options={DelayMax=0, DelayMin=0, IterWait=1, TimeRes=0}}
[43.82 INFO] (SDKD log:137) [Sdkd.ViewLoader|Info] Summary details: {
[43.82 INFO] (SDKD log:137)  "0": 39,
[43.83 INFO] (SDKD log:137)  "264": 961
[43.83 INFO] (SDKD log:137) } 
[43.83 DEBUG] (Handle receiveMessage:158) < CB_VIEW_LOAD@102.5 => {[OK]: 39, [MEMD:GENERIC]: 961}
[43.83 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@102.6
[43.83 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.83 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@103.7 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.83 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 103 
[43.83 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.85 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@103.7
[43.85 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@103.8 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[43.85 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@104.9 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.85 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.86 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 104 
[43.86 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.87 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@104.9
[43.88 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@104.10 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[43.88 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@105.11 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.88 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.88 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 105 
[43.88 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.90 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@105.11
[43.90 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@105.12 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[43.90 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.90 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@106.13 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.91 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 106 
[43.91 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.92 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@106.13
[43.93 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@106.14 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[43.93 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.93 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@107.15 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.94 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 107 
[43.94 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.97 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@107.15
[43.97 DEBUG] (Handle sendMessageAsync:183) > CB_VIEW_QUERY@107.16 => {DSType=DSTYPE_SEEDED, DS={}, ViewParameters={}, DesignName=test_design, Options={DelayMax=10, DelayMin=1, IterWait=1, ViewQueryCount=-1, ViewQueryDelay=0, TimeRes=1}, ViewName=test_view}
[43.97 INFO] (Workload call:112) Preloading items into cluster before workload
[43.97 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[43.97 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@108.17 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[43.98 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 108 
[43.98 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[43.99 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@108.17
[43.99 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@108.18 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=false, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=0, DelayMin=0, IterWait=100, TimeRes=0}}
[51.93 DEBUG] (Handle receiveMessage:158) < MC_DS_MUTATE_SET@108.18 => {[OK]: 364, [MEMD:GENERIC]: 14636}
[51.93 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@108.19
[51.94 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@111.22 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@112.23 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@115.26 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@116.27 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@110.21 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@109.20 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@114.25 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@113.24 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.94 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@117.28 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.95 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@118.29 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51.96 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.96 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.99 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.99 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.99 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[51.99 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.00 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@111.22
[52.00 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.00 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.00 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@111.30 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.00 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 111 
[52.00 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.01 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 110 
[52.01 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 115 
[52.01 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 109 
[52.01 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 114 
[52.01 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@119.31 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.01 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 116 
[52.02 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 117 
[52.02 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 118 
[52.02 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 112 
[52.02 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.02 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 113 
[52.03 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.03 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@110.21
[52.03 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 119 
[52.03 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.03 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@110.32 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.04 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@120.33 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.04 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.05 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 120 
[52.07 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.07 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@115.26
[52.07 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@115.34 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.08 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.08 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@121.35 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.09 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 121 
[52.10 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.10 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@109.20
[52.10 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@109.36 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.11 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.11 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@122.37 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.12 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 122 
[52.12 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.13 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@114.25
[52.13 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@114.38 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.13 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@123.39 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.13 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.14 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 123 
[52.16 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.16 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@116.27
[52.16 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@116.40 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.17 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@124.41 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.17 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.18 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 124 
[52.24 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.25 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@117.28
[52.25 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@117.42 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.26 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@125.43 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.26 INFO] (SDKD log:137) 
[52.26 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.26 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 125 
[52.27 INFO] (SDKD log:137) Unhandled Exception: System.Security.Authentication.AuthenticationException: default
[52.30 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.30 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@118.29
[52.31 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 1
[52.31 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@118.44 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.31 INFO] (SDKD log:137)  at Couchbase.IO.Strategies.DefaultIOStrategy.Authenticate(IConnection connection) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 75
   at Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 40
   at Couchbase.Core.Server.Send[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Server.cs:line 82
   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 121
   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) 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()
[52.31 INFO] (SDKD log:137) 
[52.32 INFO] (SDKD log:137) Unhandled Exception: System.Security.Authentication.AuthenticationException: default
[52.32 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@126.45 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.32 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.33 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 126 
[52.34 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.35 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@112.23
[52.35 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@112.46 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.37 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@127.47 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.37 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.37 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 127 
[52.40 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@113.24
[52.40 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@113.48 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.40 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.41 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@128.49 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[52.41 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle 
[52.42 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 128 
[52.45 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.45 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@119.31
[52.46 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@119.50 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.52 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.53 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@120.33
[52.53 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@120.51 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.55 INFO] (SDKD log:137) +++ Received exception of ID 0
[52.55 INFO] (SDKD log:137) 
[52.56 INFO] (SDKD log:137) Unhandled Exception: System.Security.Authentication.AuthenticationException: default
[52.63 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.63 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@121.35
[52.63 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@121.52 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.67 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.68 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@122.37
[52.68 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@122.53 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[52.76 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[52.77 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@123.39
[52.77 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@123.54 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[53.05 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[53.05 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@124.41
[53.05 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@124.55 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[53.15 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew 
[53.15 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@125.43
[53.16 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@125.56 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=15000, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[53.17 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 3
[53.18 INFO] (SDKD log:137)  at Couchbase.IO.Strategies.DefaultIOStrategy.Authenticate(IConnection connection) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 75
   at Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 40
   at Couchbase.Core.Server.Send[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Server.cs:line 82
   at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 282
   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:line 25
   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()
[53.18 INFO] (SDKD log:137) 
[53.19 INFO] (SDKD log:137) Unhandled Exception: Couchbase.Configuration.ConfigException: Could not bootstrap default. See log for details.
[65.28 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[65.29 INFO] (SDKD log:137)  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 210
   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()
[65.30 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]
[65.31 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@103.57
[65.31 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]

 Comments   
Comment by Jeff Morris [ 28/Jul/14 ]
This should be covered by NCBC-550.
Comment by Jeff Morris [ 28/Jul/14 ]
Should be covered by NCBC-550: commit 9ce8806edc38503086af1fe9af66484b5766859d
Comment by Andrei Baranouski [ 29/Jul/14 ]
Hi Jeff, still see the same issue for latest master branch:

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


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

2014-07-29 01:32:12,669 [32] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Could not authenticate default using Couchbase.Authentication.SASL.CramMd5Mechanism - 22da11dd-6230-4ead-88f8-b68476731dc0.
2014-07-29 01:32:12,667 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.135:11210
2014-07-29 01:32:12,670 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210
Comment by Jeff Morris [ 29/Jul/14 ]
The authentication error is happening because the CouchbaseCluster object is being finalizing (your leaking it somewhere in SDKQE most likely) and then trying do operations against it, but internally everything is disposed.

Line 200: 2014-07-29 01:32:06,326 [2] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Finalizing DefaultIOStrategy for 10.3.121.134:11210 - b76ca56e-e63e-413e-83d6-af0930c69b6e
Line 205: 2014-07-29 01:32:06,328 [2] DEBUG Couchbase.IO.ConnectionPool`1 - Disposing ConnectionPool for 10.3.121.134:11210
Line 246: 2014-07-29 01:32:06,335 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210
Line 251: 2014-07-29 01:32:06,336 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210
Line 252: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210
Line 253: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.135:11210
Line 255: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.136:11210
Line 258: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.3.206:11210
Line 260: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.135:11210
Line 261: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210
Line 262: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.3.206:11210
Line 263: 2014-07-29 01:32:06,337 [2] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.136:11210
Line 264: 2014-07-29 01:32:06,338 [2] DEBUG Couchbase.CouchbaseCluster - Finalizing CouchbaseCluster
Line 265: 2014-07-29 01:32:06,341 [2] INFO Couchbase.Configuration.Server.Providers.ConfigProviderBase - Unregistering observer default
Line 271: 2014-07-29 01:32:06,342 [2] DEBUG Couchbase.Configuration.ConfigContextBase - Disposing ConfigContext
Line 272: 2014-07-29 01:32:06,403 [2] DEBUG Couchbase.Core.Server - Disposing Server for 10.3.121.134:11210
Line 273: 2014-07-29 01:32:06,404 [2] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Disposing DefaultIOStrategy for 10.3.121.134:11210 - 9adbed7c-6e2a-4b6c-be4a-76897a4987bc

Thread [2] is the finalizer thread. Line 200 is suspect and likely a leak internally within the client, i believe it's fixed in a later commit but will dig deeper. Line 264 looks like the CouchbaseCluster object is no longer be referenced (leaked likely by SDKQE?) and is being finalized.

Let me look a little deeper - i am also going to change the log message so that when a TCP error is detected during auth, the log message states that as the reason.
Comment by Jeff Morris [ 29/Jul/14 ]
I think I found a problem with sdkq-net:

https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Couchbase/ClientFactory.cs#L269

After calling ReleaseClient, which simply returns if the SharedClients is false, the CouchbaseCluster object is set to null:

https://github.com/couchbase/sdkd-net/blob/client-2.0/src/SdkdConsole/Daemon/Handle.cs#L68

The CouchbaseCluster object will be placed on the finalization queue (since it has a finalizer) and the instance will live on until GC kicks in and determines that it's finalizer must be called - this why we see:

Line 264: 2014-07-29 01:32:06,338 [2] DEBUG Couchbase.CouchbaseCluster - Finalizing CouchbaseCluster

In the logs. If the intention is to keep the CouchbaseClietnt alive through the entire run of tests, then we need to remove the SdkHandle = null. If the intention is to destroy the object, then call Dispose() then set to null and recreate the object when needed.





Implement Replica Read Capability (NCBC-493)

[NCBC-568] Update IVBucket to support more than one replica Created: 29/Jul/14  Updated: 29/Jul/14  Resolved: 29/Jul/14

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

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


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




[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: 2.0.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


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




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

 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-547] ExecuteIncrement requires value to be stored as a numeric string. Created: 09/Jul/14  Updated: 28/Jul/14  Resolved: 28/Jul/14

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

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

Issue Links:
Relates to

 Description   
This may be handled in the documentation instead of as a code patch.

 Comments   
Comment by Jeff Morris [ 09/Jul/14 ]
The doucmentation here: http://docs.couchbase.com/couchbase-sdk-net-1.3/index.html#increment-methods

"...the Increment methods may not be used with keys that were first created with a Store method. To initialize a counter, you must first use either Increment or Increment with a default value."

Should be something like:

"...the Increment methods may be used with keys that were first created with a Store method, if and only if the value is a numeric string. To initialize a counter, you must first use either Increment or Increment with a default value."

In general though, the correct way to do this is via Increment/Decrement _not_ by incrementing a key stored with a Store method.
Comment by Jeff Morris [ 28/Jul/14 ]
This is expected behavior from the perspective of the server. In general, if you are going to use Incr/Decr, don't use Store() to create the keys.




[NCBC-564] Respects JsonSerializer settings for deserialization Created: 26/Jul/14  Updated: 28/Jul/14

Status: Open
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: Unresolved 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!




[NCBC-555] Multi get can fail and return a null StatusCode Created: 18/Jul/14  Updated: 28/Jul/14

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

Type: Bug Priority: Major
Reporter: Jim Walker Assignee: Jim Walker
Resolution: Unresolved Votes: 0
Labels: exception, null, rebalance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Server: 2.5.1 cluster - 3 nodes. 1 bucket
Client: Windows 7 (VM), VS Express 2013, CouchBase .NET SDK 1.3.7, .NET 3.5 or 4

Issue Links:
Dependency

 Description   
Found that performing a multi-get during a rebalance had a couple of issue when the code returns from the following line.

https://github.com/couchbase/couchbase-net-client/blob/4642a9d3ef32d5a00bcb458f108c8c002c4b1535/src/Enyim.Caching/Memcached/Protocol/Binary/MultiGetOperation.cs#L185

Client code is using client.ExecuteGet(<array of keys>)

The main issue is that the 'result.Fail' ends up back with the client and StatusCode == null, even though there's a "not my vbucket" status (7) in response.StatusCode.

Minor issue is that the result.Fail message doesn't get formatted to include the correlationId, always prints {0}.

I've a draft patch that ensures the StatusCode is passed through so that the client can see the failure is not-my-vbucket and issue a retry.

With my draft patch though I couldn't seem to get the StatusCode passed through without creating an "rv" and returning that.

Basically:

result.StatusCode = response.StatusCode;
return result.Fail(...);

and

this.StatusCode = response.StatusCode;
return result.Fail(...)

still returned StatusCode of null?



(patch attached soon)

 Comments   
Comment by Jim Walker [ 18/Jul/14 ]
Patch (researching appropriate test cases now....)

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

With this patch and clients checking for not-my-vbucket all is well.
Comment by Jim Walker [ 21/Jul/14 ]
Previous patch abandoned. This one is a touch tidier

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

Regarding test-cases, this looks to be covered already but requires a careful rebalance timed with the correct test.

E.g. something like

When_Getting_Multiple_Existing_Keys_Result_Is_Successful()
Comment by Jim Walker [ 22/Jul/14 ]
Correct branch this time!

http://review.couchbase.org/39658




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

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

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

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

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




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

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

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


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




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

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

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


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




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

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

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


 Description   
Example VBucketMap:

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

This causes a IndexOutOfRangeException.

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

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




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: 28/Jul/14

Status: Open
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: Unresolved 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




[NCBC-566] System.ObjectDisposedException: CancellationTokenSource has been removed(vpn run) Created: 28/Jul/14  Updated: 28/Jul/14

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

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

Attachments: Zip Archive log.zip    

 Description   
I don't see this error on jenkins, but see in my local run via vpn

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

============================================================
Running Rb2Out-KV
    rebalance/mode=out
    rebalance/count=2
    testcase=RebalanceScenario
    Logging to c:\jenkins\workspace-net2\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-973\Rb2Out-KV\07-28-14\024288\f41f42648d9af13515187408fcc57f3a

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --rebalance-mode out --rebalance-count 2 --testcase
 \ RebalanceScenario -C share\rexec --rexec_path
 \ C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port 8675
 \ --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \ --cluster_ssh-username=root --cluster_ssh-password=couchbase
        --dsw_kvcount 10
    ---------------------------------------->8
[1,49 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
[1,79 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: remove 2 nodes and rebalance. Rebound for 90 seconds.
[1,80 INFO] (RunContext run:124) Starting cluster and driver
[1,81 INFO] (CBCluster startCluster:360) Node http://10.3.121.134:8091 is master now
[1,81 INFO] (HostPortDriver launch:32) Invoking SDKD as 'C:\temp\sdkd-out-debug\SdkdConsole.exe'
[1,81 DEBUG] (CBCluster startCluster:366) Stopping any existing rebalance operations..
[1,96 INFO] (SDKD log:137) --- Logging Self-Test ---
[1,96 INFO] (SDKD log:137) [Sdkd.Main|Info] Info Message
[1,96 INFO] (SDKD log:137) [Sdkd.Main|Warn] Warn Message
[1,96 INFO] (SDKD log:137) [Sdkd.Main|Error] Error Message
[1,97 INFO] (SDKD log:137) [Sdkd.Main|Fatal] Fatal Message
[1,97 INFO] (SDKD log:137) [Sdkd.Main|Info] SDKD Listening on port 8675
[2,32 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[2,32 DEBUG] (Handle sendMessageAsync:183) > INFO@0.0
[2,46 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"}}
[8,14 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[8,64 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[9,13 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.3.206:8091,ns_1@10.3.3.206>
[9,63 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[9,64 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[11,64 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.136:8091
[11,64 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.134:8091
[11,65 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.3.206:8091
[11,65 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.135:8091
[11,67 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.121.134
[11,67 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.3.206
[11,68 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.121.135
[11,68 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.121.136
[12,52 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@58a5be95
[12,52 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@698355aa
[12,52 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@3caec762
[12,52 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@5305036e
[12,53 DEBUG] (CBCluster setupNewCluster:271) Provisioning initial node com.couchbase.cbadmin.client.CouchbaseAdmin@4a48489f
[27,05 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.135:8091
[29,85 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.136:8091
[36,65 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.3.206:8091
[44,43 INFO] (CBCluster setupNewCluster:293) All nodes added. Will rebalance
[45,40 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[45,40 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[45,65 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[45,90 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[53,46 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[56,38 INFO] (RunContext run:143) Driver and cluster initialized
[56,63 INFO] (RunContext call:167) Running scenario..
[56,63 INFO] (Scenario run:72) Starting RAMP phase
[56,64 INFO] (Workload call:112) Preloading items into cluster before workload
[56,64 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[56,64 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[56,65 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101
[56,65 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[56,66 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving Common.Logging.Log4Net
[56,66 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly Common.Logging.Log4Net, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e
[56,68 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving log4net
[56,68 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821
[60,62 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@101.1
[60,62 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@101.2 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=false, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=0, DelayMin=0, IterWait=100, TimeRe
s=0}}
[64,45 DEBUG] (Handle receiveMessage:158) < MC_DS_MUTATE_SET@101.2 => {[OK]: 10}
[64,45 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.3
[64,45 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,45 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@107.9 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,45 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@105.7 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,46 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@106.8 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,46 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@104.6 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,46 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@103.5 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,47 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@102.4 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,47 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@111.13 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,47 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,47 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@110.12 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@109.11 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@108.10 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[64,48 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,49 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,49 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,49 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 105
[64,50 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[64,50 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 106
[64,50 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,50 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 107
[64,51 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 104
[64,51 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 103
[64,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 102
[64,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[64,52 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 111
[64,53 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 110
[64,53 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 109
[64,54 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 108
[68,23 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[68,24 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@105.7
[68,24 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@105.14 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[68,25 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[68,25 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@112.15 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[68,25 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 112
[75,75 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[75,75 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@106.8
[75,75 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@106.16 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes
=1}}
[75,76 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[75,76 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@113.17 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[75,76 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 113
[77,56 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409
[85,70 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[85,70 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@107.9
[85,71 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@107.18 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes
=1}}
[85,72 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[85,72 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@114.19 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[85,72 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 114
[90,28 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[90,28 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@104.6
[90,28 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@104.20 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes
=1}}
[90,29 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@115.21 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[90,30 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[90,30 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 115
[94,10 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[94,10 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@102.4
[94,10 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@102.22 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[94,11 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[94,11 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@116.23 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[94,12 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 116
[97,89 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[97,89 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@103.5
[97,89 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@103.24 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[97,90 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[97,90 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@117.25 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[97,91 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 117
[101,67 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[101,67 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@111.13
[101,67 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@111.26 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[101,68 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[101,68 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@118.27 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[101,68 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 118
[105,46 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[105,46 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@110.12
[105,47 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@110.28 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[105,47 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[105,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@119.29 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[105,48 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 119
[111,46 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[111,46 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@109.11
[111,47 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@109.30 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[111,48 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@120.31 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[111,48 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[111,48 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 120
[115,29 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[115,29 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@108.10
[115,29 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@108.32 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[115,30 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[115,30 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@121.33 => {Port=8091, Bucket=default, Options={SSL=false, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[115,30 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 121
[119,14 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[119,14 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@112.15
[119,14 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@112.34 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[125,40 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[125,40 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@113.17
[125,40 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@113.35 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[134,08 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[134,08 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@114.19
[134,08 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@114.36 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[138,16 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[138,16 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@115.21
[138,16 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@115.37 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[146,03 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[146,03 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@116.23
[146,03 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@116.38 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[150,29 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[150,29 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@117.25
[150,29 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@117.39 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[154,13 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[154,13 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@118.27
[154,13 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@118.40 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[158,32 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[158,32 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@119.29
[158,32 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@119.41 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[168,41 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Shared clients disabled. Creating anew
[168,42 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@120.31
[168,42 DEBUG] (Handle sendMessageAsync:183) > MC_DS_MUTATE_SET@120.42 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRe
s=1}}
[168,79 INFO] (SDKD log:137)
[168,79 INFO] (SDKD log:137) Unrecognized исключение: System.ObjectDisposedException: CancellationTokenSource был удален(has been removed).
[168,79 INFO] (SDKD log:137) in System.Threading.CancellationTokenSource.ThrowObjectDisposedException()
[168,79 INFO] (SDKD log:137) in System.Threading.CancellationTokenSource.InternalRegister(Action`1 callback, Object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext)
[168,79 INFO] (SDKD log:137) in System.Threading.CancellationToken.Register(Action`1 callback, Object state, Boolean useSynchronizationContext, Boolean useExecutionContext)
[168,79 INFO] (SDKD log:137) in System.Threading.CancellationToken.Register(Action callback)
[168,80 INFO] (SDKD log:137) in Couchbase.Configuration.Server.Providers.Streaming.ConfigThreadState.ListenForConfigChanges() in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\Streaming\ConfigThreadState.
cs:line 72
[168,80 INFO] (SDKD log:137) in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[168,81 INFO] (SDKD log:137) in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[168,81 INFO] (SDKD log:137) in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[168,81 INFO] (SDKD log:137) in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[168,82 INFO] (SDKD log:137) in System.Threading.ThreadHelper.ThreadStart()
[184,10 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.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.7.0_60]
        at java.lang.Thread.run(Unknown Source) ~[na:1.7.0_60]
[184,13 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@102.43
[184,13 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.7.0_60]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.7.0_60]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.7.0_60]
        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]



 Comments   
Comment by Andrei Baranouski [ 28/Jul/14 ]
this may depend on http://review.couchbase.org/#/c/39935/ from NCBC-550 still not commited.




[NCBC-562] Provide configurable wait timeout for operations in mid-fight. Created: 24/Jul/14  Updated: 28/Jul/14

Status: Open
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: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When a failover occurs, the remote host immediately terminates the TCP connection causing the client to block for indefinite amount of time.This is to set a configurable timeout so that the client can abort the operation gracefully, if the timeout is exceeded.




[NCBC-565] Remove "verbose" logging and tracing Created: 27/Jul/14  Updated: 27/Jul/14

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

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


 Description   
This ticket is to ensure that the large number of trace/debug statements are removed before GA is released. While the verbosity make debugging easier, it may be a bit too much for a release candidate, thus this ticket is intended to ensure that extraneous trace/debug/log messages are removed or at least reviewed.




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

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

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




[NCBC-552] Ensure that bucket throws ObjectDisposedExceptions if an operation is attempted after calling Dispose() Created: 14/Jul/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 DP3

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   
When a thread calls Dispose on a bucket and no other thread is referencing it, subsequent operations will fail with an ObjectDisposedException: "This bucket [{0}] has been disposed! Performing operations on a disposed bucket is not supported!"

 Comments   
Comment by Jeff Morris [ 24/Jul/14 ]
http://review.couchbase.org/#/c/39381/




[NCBC-560] Measure performance impact of using Mutex's and possibly use RWSL instead. Created: 23/Jul/14  Updated: 23/Jul/14

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

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


 Description   
See this commit: http://review.couchbase.org/#/c/39761/ and http://www.couchbase.com/issues/browse/NCBC-558




[NCBC-559] During rebalance IConfigInfo impl is finalizing causing ODE on all Connections Created: 23/Jul/14  Updated: 23/Jul/14  Resolved: 23/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: 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 [ 23/Jul/14 ]
commit 7bda23d243cde3894e7b498a87a20ec15239f6ad




[NCBC-558] Add Thread Synchronization to ClusterManager and Provider classes Created: 23/Jul/14  Updated: 23/Jul/14  Resolved: 23/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: 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   
Add mutex's around some of the methods that require thread synchronization.

 Comments   
Comment by Jeff Morris [ 23/Jul/14 ]
http://review.couchbase.org/#/c/39761/




[NCBC-557] couchbaseBucket.CreateQuery(*).BucketName equals "" -> NullReferenceException in Queries Created: 23/Jul/14  Updated: 23/Jul/14  Resolved: 23/Jul/14

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

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


 Description   
have a code like:
var query =couchbaseBucket.CreateQuery( true, dname, vname);
Console.WriteLine("couchbaseBucket.Name: " + couchbaseBucket.Name);
Console.WriteLine("bucket name in query: " + query.BucketName);
IViewResult<dynamic> view = couchbaseBucket.Query<dynamic>(query);

output:
couchbaseBucket.Name: default
bucket name in query:


so, query.BucketName is "" after CreateQuery

couchbaseBucket.Query<dynamic>(query); ====>


     public IViewResult<T> Send<T>(IViewQuery query)
        {
            var baseUri = GetBaseViewUri(query.BucketName);========>
            query.BaseUri(baseUri);
            return ViewClient.Execute<T>(query);
        }



        public string GetBaseViewUri(string bucketName)
        {
            var uri = _nodeInfo.CouchApiBase;
            var bucketConfig = _clientConfiguration.BucketConfigs[bucketName]; // !!!bucketName equals and exception appears:




System.NullReferenceException: Object reference not set to an instance of the object.
[93,80 INFO] (SDKD log:137) в Couchbase.Core.Server.GetBaseViewUri(String bucketName) в c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Server.cs:line109
[93,81 INFO] (SDKD log:137) в Couchbase.Core.Server.Send[T](IViewQuery query) в c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Server.cs:line 88
[93,81 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) в c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line507
[93,81 INFO] (SDKD log:137) в Sdkd.Views.ViewCommand.GetViewObject(CouchbaseBucket cli, Request req, ViewOptions vo) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line126
[93,82 INFO] (SDKD log:137) в Sdkd.Views.ViewCommand.Run() в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line231
[93,82 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.DispatchCommand(Request req) в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line191
[93,82 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.Run() в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line123
[93,82 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[93,83 INFO] (SDKD log:137) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[93,83 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[93,83 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)



 Comments   
Comment by Jeff Morris [ 23/Jul/14 ]
Gerrit SHA: commit 9334ae491612644a306059aeb5d554c6132a22ae




[NCBC-554] The remote certificate is invalid according to the validation procedure. Created: 18/Jul/14  Updated: 23/Jul/14  Resolved: 23/Jul/14

Status: Closed
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: Andrei Baranouski 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

Attachments: PNG File cert_screen.png     Text File log.txt     Text File test_logs.txt    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-556 SslConnection uses obsolete GetBuffer... Technical task Closed Jeff Morris  

 Description   
as a continuation of the NCBC-553 ticket

in my tests i set use ssl for ClientConfiguration & BucketConfiguration

var bucketConfiguration = new BucketConfiguration();
bucketConfiguration.UseSsl = true;
var config = new ClientConfiguration();
config.UseSsl=true;

Then I've install cluster's certificate on vm where I run my tests(see sceenshot)

when I run my tests I get

client logs:

2014-07-16 16:19:16,768 [4] DEBUG Couchbase.Core.ClusterManager - !!Trying to boostrap with Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.
2014-07-16 16:19:16,950 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-16 16:19:17,041 [4] WARN Couchbase.Core.ClusterManager - System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
   at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost)
   at Couchbase.IO.Strategies.SslConnection.Authenticate() in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\SslConnection.cs:line 34
   at Couchbase.IO.DefaultConnectionFactory.<GetGeneric>b__4[T](IConnectionPool`1 p, IByteConverter c) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\DefaultConnectionFactory.cs:line 69
   at Couchbase.IO.ConnectionPool`1.Acquire() in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\ConnectionPool.cs:line 108
   at Couchbase.IO.ConnectionPool`1.Couchbase.IO.IConnectionPool.Acquire() in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\ConnectionPool.cs:line 170
   at Couchbase.Authentication.SASL.SaslFactory.<GetFactory3>b__0(String username, String password, IOStrategy strategy, IByteConverter converter) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Authentication\SASL\SaslFactory.cs:line 21
   at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig(String bucketName, String password) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Configuration\Server\Providers\CarrierPublication\CarrierPublicationProvider.cs:line 31
   at Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:line 149


test logs:

 c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng>call packages\sdkdclient\bin\brun.bat -I cluster_config.ini -I sdkd.args --variants HYBRID -d all:debug --no-upload
[0.34 INFO] (BRun run:435) Initializing history database
Will create SASL????true
Will create SASL????true
Will create SASL????true
Will create SASL????true

============================================================
Running Rb2Out-HYBRID
    rebalance/mode=out
    workload=HybridWorkloadGroup
    rebalance/count=2
    testcase=RebalanceScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-933\Rb2Out-HYBRID\07-16-14\083910\444e6acd28e9170d8ce86bfc626d8674

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --rebalance-mode out --workload HybridWorkloadGroup
 \ --rebalance-count 2 --testcase RebalanceScenario -C share\rexec
 \ --rexec_path C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port
 \ 8675 --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \ --cluster_ssh-username=root --cluster_ssh-password=couchbase
        --cluster_useSSL=True
    ---------------------------------------->8
[1.58 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
Will create SASL????true
Will create SASL????true
Will create SASL????true
Will create SASL????true
[2.05 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: remove 2 nodes and rebalance. Rebound for 90 seconds.
[2.07 INFO] (RunContext run:124) Starting cluster and driver
[2.08 INFO] (CBCluster startCluster:360) Node http://10.3.121.134:8091 is master now
[2.08 INFO] (HostPortDriver launch:32) Invoking SDKD as 'C:\temp\sdkd-out-debug\SdkdConsole.exe'
[2.08 DEBUG] (CBCluster startCluster:366) Stopping any existing rebalance operations..
[2.44 INFO] (SDKD log:137) --- Logging Self-Test ---
[2.46 INFO] (SDKD log:137) [Sdkd.Main|Info] Info Message
[2.46 INFO] (SDKD log:137) [Sdkd.Main|Warn] Warn Message
[2.47 INFO] (SDKD log:137) [Sdkd.Main|Error] Error Message
[2.47 INFO] (SDKD log:137) [Sdkd.Main|Fatal] Fatal Message
[2.47 INFO] (SDKD log:137) [Sdkd.Main|Info] SDKD Listening on port 8675
[2.62 DEBUG] (Handle sendMessageAsync:183) > INFO@0.0
[2.63 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[2.92 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.17929"}}
[3.33 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[3.36 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[3.39 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.3.206:8091,ns_1@10.3.3.206>
[3.49 DEBUG] (SSHConnection initUserKeys:79) Loaded indentity C:\Users\Administrator\.ssh\id_rsa
[3.50 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[3.50 DEBUG] (SSHConnection initUserKeys:79) Loaded indentity C:\Users\Administrator\.ssh\id_rsa
[3.51 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[4.06 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.134:8091
[4.07 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.135:8091
[4.07 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.136:8091
[4.07 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.3.206:8091
[4.09 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.121.136
[4.09 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.121.134
[4.10 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.121.135
[4.10 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.3.206
[4.30 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@174323d5
[4.31 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@f5d8d75
[4.31 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@3af2164f
[4.32 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@74bfd10a
[4.32 DEBUG] (CBCluster setupNewCluster:271) Provisioning initial node com.couchbase.cbadmin.client.CouchbaseAdmin@5d684e26
[25.89 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.135:8091
[31.16 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.136:8091
[34.06 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.3.206:8091
[39.84 INFO] (CBCluster setupNewCluster:293) All nodes added. Will rebalance
[39.87 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[40.88 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[40.88 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[40.89 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[40.90 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[47.18 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[47.22 INFO] (RunContext run:143) Driver and cluster initialized
[47.24 INFO] (RunContext call:167) Running scenario..
[47.24 INFO] (Scenario run:72) Starting RAMP phase
[47.24 INFO] (Workload setupDesign:63) Creating design test_design
[47.50 INFO] (Workload setupDesign:80) Design creation done
[47.50 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Port=8091, Bucket=default, Options={SSL=true, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["
0.3.3.206",8091]]}, Hostname=10.3.121.134}
[47.51 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[47.51 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101
[47.52 INFO] (SDKD log:137) ClientConfiguration!!!!!!!!!!!!{
[47.52 INFO] (SDKD log:137) "Port": 8091,
[47.52 INFO] (SDKD log:137) "Bucket": "default",
[47.53 INFO] (SDKD log:137) "Options": {
[47.53 INFO] (SDKD log:137) "SSL": true,
[47.53 INFO] (SDKD log:137) "Username": "default",
[47.53 INFO] (SDKD log:137) "Password": "",
[47.54 INFO] (SDKD log:137) "OtherNodes": [
[47.54 INFO] (SDKD log:137) [
[47.54 INFO] (SDKD log:137) "10.3.121.135",
[47.55 INFO] (SDKD log:137) 8091
[47.55 INFO] (SDKD log:137) ],
[47.55 INFO] (SDKD log:137) [
[47.55 INFO] (SDKD log:137) "10.3.121.136",
[47.56 INFO] (SDKD log:137) 8091
[47.56 INFO] (SDKD log:137) ],
[47.56 INFO] (SDKD log:137) [
[47.56 INFO] (SDKD log:137) "10.3.3.206",
[47.57 INFO] (SDKD log:137) 8091
[47.57 INFO] (SDKD log:137) ]
[47.57 INFO] (SDKD log:137) ]
[47.57 INFO] (SDKD log:137) },
[47.58 INFO] (SDKD log:137) "Hostname": "10.3.121.134"
[47.58 INFO] (SDKD log:137) }
[47.58 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Creating new shared client for key 'U,P,H10.3.121.134:8091,Bdefault'
[48.13 INFO] (SDKD log:137)
[48.14 INFO] (SDKD log:137) Unhandled Exception: Couchbase.Configuration.ConfigException: Could not bootstrap default. See log for details.
[52.62 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[52.62 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.2
[52.62 INFO] (SDKD log:137) at Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterMana
er.cs:line 204
   at Couchbase.Core.ClusterManager.CreateBucket(String bucketName) in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:line 137
   at Couchbase.CouchbaseCluster.OpenBucket() in c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\CouchbaseCluster.cs:line 70
   at Sdkd.Couchbase.ClientFactory.FindExistingClient(ClientConfiguration config) in c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 77
   at Sdkd.Couchbase.ClientFactory.CreateClient(ClientConfiguration config) in c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 256
   at SdkdConsole.Daemon.Handle.CreateHandle(Request req) in c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 84
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace-net2\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()
[52.64 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: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]
[52.80 ERROR] (BRun main:507) Caught exception
com.couchbase.sdkdclient.context.HarnessException: java.net.SocketException: Connection reset
        at com.couchbase.sdkdclient.context.HarnessException.create(HarnessException.java:56) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.scenario.PhasedScenario.run(PhasedScenario.java:80) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.context.RunContext$4.call(RunContext.java:169) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.context.RunContext$4.call(RunContext.java:165) ~[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]
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[na:1.6.0_27]
        at java.io.InputStreamReader.read(Unknown Source) ~[na:1.6.0_27]
        at java.io.BufferedReader.fill(Unknown Source) ~[na:1.6.0_27]
        at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.6.0_27]
        at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.6.0_27]
        at com.couchbase.sdkdclient.handle.Handle.receiveMessage(Handle.java:152) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.Handle.sendMessage(Handle.java:173) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.Handle.negotiate(Handle.java:237) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.HandleFactory.createHandle(HandleFactory.java:43) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.workload.ViewWorkload.loadData(ViewWorkload.java:85) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.workload.HybridWorkloadGroup.start(HybridWorkloadGroup.java:82) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.scenario.PhasedScenario.run(PhasedScenario.java:78) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        ... 10 common frames omitted


Jeff, I think I have correctly installed the certificate, but why do I get this error


 Comments   
Comment by Andrei Baranouski [ 21/Jul/14 ]
another attempt:

before creating the connection programmatically install a certificate:
            string file = "C:\\temp\\certificate"; // Contains name of certificate file
            X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadWrite);
            store.Add(new X509Certificate2(X509Certificate2.CreateFromCertFile(file)));
            store.Close();




client logs:

2014-07-21 12:19:53,172 [4] DEBUG Couchbase.Core.ClusterManager - !!Trying to boostrap with Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.
2014-07-21 12:19:53,432 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-21 12:19:53,981 [4] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire new: f513fedf-af29-43c7-aafe-bd7811a46038 - [0, 0]
2014-07-21 12:19:53,996 [4] ERROR Couchbase.Authentication.SASL.SaslFactory - System.NotImplementedException: The method or operation is not implemented
   в Couchbase.IO.Operations.OperationBase`1.GetBuffer() в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Operations\OperationBase'.cs:line 168
   в Couchbase.IO.Strategies.SslConnection.Send[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\SslConnection.cs:line 40
   в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation, IConnection connection) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 32
   в Couchbase.Authentication.SASL.SaslFactory.<GetFactory3>b__0(String username, String password, IOStrategy strategy, IByteConverter converter) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Authentication\SASL\SaslFactory.cs:line 24
2014-07-21 12:19:54,243 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-21 12:19:54,737 [4] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire new: 3cc96df3-2534-4c79-a5c3-12e2a635b156 - [0, 1]


test logs:

[46,24 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[46,49 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[46,75 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[52,35 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[55,24 INFO] (RunContext run:143) Driver and cluster initialized
[55,51 INFO] (RunContext call:167) Running scenario..
[55,51 INFO] (Scenario run:72) Starting RAMP phase
[55,51 INFO] (Workload setupDesign:63) Creating design test_design
[56,81 INFO] (Workload setupDesign:80) Design creation done
[56,81 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[56,81 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Port=8091, Bucket=default, Options={SSL=true, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[56,82 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101
[62,01 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Creating new shared client for key 'U,P,H10.3.121.134:8091,Bdefault'
[62,01 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving Common.Logging.Log4Net
[62,01 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly Common.Logging.Log4Net, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e
[62,01 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving log4net
[62,02 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821
[63,69 INFO] (SDKD log:137)
[63,70 INFO] (SDKD log:137) Unhandled exception: System.NotImplementedException: The method or operation is not implemented
[63,71 INFO] (SDKD log:137) в Couchbase.IO.Operations.OperationBase`1.GetBuffer() в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Operations\OperationBase'.cs:line 168
[63,71 INFO] (SDKD log:137) в Couchbase.IO.Strategies.SslConnection.Send[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\SslConnection.cs:line 40
[63,71 INFO] (SDKD log:137) в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation, IConnection connection) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 32
[63,71 INFO] (SDKD log:137) в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 42
[63,72 INFO] (SDKD log:137) в Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig(String bucketName, String password) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Configuration\S
erver\Providers\CarrierPublication\CarrierPublicationProvider.cs:line 35
[63,72 INFO] (SDKD log:137) в Couchbase.Core.ClusterManager.CreateBucket(String bucketName, String password) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:line 149
[63,72 INFO] (SDKD log:137) в Couchbase.Core.ClusterManager.CreateBucket(String bucketName) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:line 137
[63,73 INFO] (SDKD log:137) в Couchbase.CouchbaseCluster.OpenBucket() в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\CouchbaseCluster.cs:line 70
[63,73 INFO] (SDKD log:137) в Sdkd.Couchbase.ClientFactory.FindExistingClient(ClientConfiguration config) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 78
[63,73 INFO] (SDKD log:137) в Sdkd.Couchbase.ClientFactory.CreateClient(ClientConfiguration config) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Couchbase\ClientFactory.cs:line 264
[63,74 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.CreateHandle(Request req) в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 84
[63,74 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.Run() в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 103
[63,74 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[63,75 INFO] (SDKD log:137) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[63,75 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[63,75 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[63,76 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart()
[71,69 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.2
[71,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.7.0_60]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.7.0_60]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.7.0_60]
        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]
[71,97 ERROR] (BRun main:507) Caught exception
com.couchbase.sdkdclient.context.HarnessException: java.net.SocketException: Connection reset
        at com.couchbase.sdkdclient.context.HarnessException.create(HarnessException.java:56) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.scenario.PhasedScenario.run(PhasedScenario.java:80) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.context.RunContext$4.call(RunContext.java:169) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.context.RunContext$4.call(RunContext.java:165) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.7.0_60]
        at java.lang.Thread.run(Unknown Source) ~[na:1.7.0_60]
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(Unknown Source) ~[na:1.7.0_60]
        at java.net.SocketInputStream.read(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[na:1.7.0_60]
        at java.io.InputStreamReader.read(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedReader.fill(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedReader.readLine(Unknown Source) ~[na:1.7.0_60]
        at com.couchbase.sdkdclient.handle.Handle.receiveMessage(Handle.java:152) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.Handle.sendMessage(Handle.java:173) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.Handle.negotiate(Handle.java:237) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.HandleFactory.createHandle(HandleFactory.java:43) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.workload.ViewWorkload.loadData(ViewWorkload.java:85) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.workload.HybridWorkloadGroup.start(HybridWorkloadGroup.java:82) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.scenario.PhasedScenario.run(PhasedScenario.java:78) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        ... 8 common frames omitted

Comment by Jeff Morris [ 21/Jul/14 ]
https://www.couchbase.com/issues/browse/NCBC-556
Comment by Andrei Baranouski [ 23/Jul/14 ]
Hi Jeff,

I need to reopen the issue because I still can't use system installed certificate

I use the latest version https://github.com/couchbase/couchbase-net-client/commit/aa078fef70d4be711b704e522611f71d229c98c9

2014-07-23 19:15:06,985 [4] DEBUG Couchbase.Core.ClusterManager - Trying to boostrap with Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.
2014-07-23 19:15:07,239 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-23 19:15:08,447 [4] ERROR Couchbase.IO.ConnectionBase - System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
  inSystem.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
  inSystem.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)

all logs attached

https://www.couchbase.com/issues/secure/attachment/21366/log.txt
https://www.couchbase.com/issues/secure/attachment/21367/test_logs.txt
Comment by Jeff Morris [ 23/Jul/14 ]
Andrei -

Is the certificate installed correctly and up-to-date?

-Jeff
Comment by Andrei Baranouski [ 23/Jul/14 ]
Seems like installation cert via IE doesn't work properly(Brett's steps)
manual steps from Jeff that works for me:


Here are the steps I use:
[19:31:07] Jeff Morris: 1) Copy the cert from the settings tab and paste it into notepad
[19:32:01] Jeff Morris: 2) Save it to C: (root) as [somecertname].cert
[19:33:05] Jeff Morris: 3) Open the windows cert mgr:
      call certmgr.msc in cmd
[19:34:01] Jeff Morris: 4) right click on the trusted root certification authority and then "import"
[19:34:17] Jeff Morris: all tasks->import
[19:35:01] Jeff Morris: 5) click next and then use the dialog to find the cert stored at "C:"
[19:35:15] Jeff Morris: then close the dialogue

so, I get the same certificate if I install it programmatically
string file = "C:\\temp\\certificate"; // Contains name of certificate file
            X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadWrite);
            store.Add(new X509Certificate2(X509Certificate2.CreateFromCertFile(file)));
            store.Close();

 




The remote certificate is invalid according to the validation procedure. (NCBC-554)

[NCBC-556] SslConnection uses obsolete GetBuffer method - throws NIE Created: 21/Jul/14  Updated: 23/Jul/14  Resolved: 23/Jul/14

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

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   
Refactoring artifact (the bad kind):

ERROR Couchbase.Authentication.SASL.SaslFactory - System.NotImplementedException: The method or operation is not implemented
   в Couchbase.IO.Operations.OperationBase`1.GetBuffer() в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Operations\OperationBase'.cs:line 168
   в Couchbase.IO.Strategies.SslConnection.Send[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\SslConnection.cs:line 40
   в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation, IConnection connection) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 32
   в Couchbase.Authentication.SASL.SaslFactory.<GetFactory3>b__0(String username, String password, IOStrategy strategy, IByteConverter converter) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Authentication\SASL\SaslFactory.cs:line 24

 Comments   
Comment by Jeff Morris [ 21/Jul/14 ]
commit 6ee63bd5c77bbc41e3680b902c744d29e6598114
Comment by Andrei Baranouski [ 22/Jul/14 ]
seems like it's not in repo yet?
Comment by Andrei Baranouski [ 23/Jul/14 ]
Hi Jeff,

I still see it in the latest https://github.com/couchbase/couchbase-net-client/commits/master

2014-07-23 12:03:23,987 [4] DEBUG Couchbase.Core.ClusterManager - Trying to boostrap with Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.
2014-07-23 12:03:24,237 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-23 12:03:24,770 [4] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire new: 938028e3-93f4-4dc1-b033-d2d0c43accc5 - [0, 0]
2014-07-23 12:03:24,785 [4] ERROR Couchbase.Authentication.SASL.SaslFactory - System.NotImplementedException: The method or operation is not implemented.
   в Couchbase.IO.Operations.OperationBase`1.GetBuffer() в d:\couchbase_src\couchbase-csharp-client-ng\Src\Couchbase\IO\Operations\OperationBase'.cs:line 168
   в Couchbase.IO.Strategies.SslConnection.Send[T](IOperation`1 operation) в d:\couchbase_src\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\SslConnection.cs:line 40
   в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation, IConnection connection) в d:\couchbase_src\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 32
   в Couchbase.Authentication.SASL.SaslFactory.<GetFactory3>b__0(String username, String password, IOStrategy strategy, IByteConverter converter) в d:\couchbase_src\couchbase-csharp-client-ng\Src\Couchbase\Authentication\SASL\SaslFactory.cs:line 24
2014-07-23 12:03:25,021 [4] WARN Couchbase.IO.ConnectionBase - Starting SSL encryption on 10.3.121.134
2014-07-23 12:03:25,501 [4] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire new: c16d878a-d050-4ff5-ad4a-4d485ba43c22 - [0, 1]
Comment by Andrei Baranouski [ 23/Jul/14 ]
please let me know if you need more details
Comment by Andrei Baranouski [ 23/Jul/14 ]
Soory, seems like my code used reference on old code




[NCBC-553] Could not bootstrap bucket with ssl connection Created: 15/Jul/14  Updated: 21/Jul/14  Resolved: 21/Jul/14

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

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: commit 847b96def68d816ba7032da318ec86c510f9150a master branch v 3.0.0-933 cluster


 Description   
Hi Jeff,

I faced with the issues when I tried to switch .net sdkd tests on ssl.

I did nothing special in sdkd-net framework,
in short, as a result I create BucketConfiguration with ssl

            var bucketConfiguration = new BucketConfiguration();
            bucketConfiguration.BucketName = jObj[StringConst.HANDLE_BUCKET].ToString();
            bucketConfiguration.UseSsl =jObj[StringConst.HANDLE_OPTIONS[StringConst.HANDLE_SSL].ToBool();

then I see that my tests stuck on

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,14 INFO] (BRun run:435) Initializing history database
Will create SASL????true
Will create SASL????true
Will create SASL????true
Will create SASL????true

============================================================
Running Rb2Out-HYBRID
    rebalance/mode=out
    workload=HybridWorkloadGroup
    rebalance/count=2
    testcase=RebalanceScenario
    Logging to C:\jenkins\workspace-net2\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-933\Rb2Out-HYBRID\07-15-14\047482\e6fbe5361d1427bb464cf149d253458b

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --rebalance-mode out --workload HybridWorkloadGroup
 \ --rebalance-count 2 --testcase RebalanceScenario -C share\rexec
 \ --rexec_path C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port
 \ 8675 --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
 \ --cluster_ssh-username=root --cluster_ssh-password=couchbase
        --cluster_useSSL=True
    ---------------------------------------->8
[1,41 WARN] (Drivers getDriver:76) 'rexec' is now mapped to *local* execution only. Use RemoteExecutingDriver for remote execution
Will create SASL????true
Will create SASL????true
Will create SASL????true
Will create SASL????true
[1,79 INFO] (RunContext run:102) Ramp for 30 seconds. Cluster modification: remove 2 nodes and rebalance. Rebound for 90 seconds.
[1,79 INFO] (RunContext run:124) Starting cluster and driver
[1,80 INFO] (CBCluster startCluster:360) Node http://10.3.121.134:8091 is master now
[1,80 INFO] (HostPortDriver launch:32) Invoking SDKD as 'C:\temp\sdkd-out-debug\SdkdConsole.exe'
[1,80 DEBUG] (CBCluster startCluster:366) Stopping any existing rebalance operations..
[1,99 INFO] (SDKD log:137) --- Logging Self-Test ---
[1,99 INFO] (SDKD log:137) [Sdkd.Main|Info] Info Message
[1,99 INFO] (SDKD log:137) [Sdkd.Main|Warn] Warn Message
[1,99 INFO] (SDKD log:137) [Sdkd.Main|Error] Error Message
[1,99 INFO] (SDKD log:137) [Sdkd.Main|Fatal] Fatal Message
[2,00 INFO] (SDKD log:137) [Sdkd.Main|Info] SDKD Listening on port 8675
[2,34 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[2,35 DEBUG] (Handle sendMessageAsync:183) > INFO@0.0
[2,52 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"}}
[7,37 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[7,82 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[8,28 DEBUG] (CBCluster clearSingleCluster:140) Failing over existing node <URI:10.3.3.206:8091,ns_1@10.3.3.206>
[8,74 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[8,74 DEBUG] (SSHConnection connect:99) Connecting with User[root] Pass[HASH=3b8cf05627127baaf3808913209aac84]
[10,58 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.136:8091
[10,58 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.135:8091
[10,59 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.3.206:8091
[10,59 INFO] (NodeHost createSSH:147) SSH Initialized for http://10.3.121.134:8091
[10,61 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.121.135
[10,61 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.3.206
[10,61 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.121.136
[10,61 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.121.134
[11,33 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@10e975db
[11,33 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@4f388589
[11,33 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@3dbafe70
[11,34 DEBUG] (SSHCommand close:147) Closing channel com.jcraft.jsch.ChannelExec@729c078
[11,34 DEBUG] (CBCluster setupNewCluster:271) Provisioning initial node com.couchbase.cbadmin.client.CouchbaseAdmin@4ae6120d
[24,59 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.135:8091
[32,49 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.121.136:8091
[35,24 DEBUG] (CBCluster tryOnce:286) Adding node http://10.3.3.206:8091
[39,14 INFO] (CBCluster setupNewCluster:293) All nodes added. Will rebalance
[40,08 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[40,08 DEBUG] (CBCluster setupServerGroups:222) Not creating any groups
[40,31 INFO] (CBCluster setupMainBucket:209) Creating bucket default
[40,54 INFO] (CBCluster setupMainBucket:211) Bucket creation submitted
[47,78 INFO] (CBCluster waitForBucketReady:203) Bucket creation done
[50,40 INFO] (RunContext run:143) Driver and cluster initialized
[50,64 INFO] (RunContext call:167) Running scenario..
[50,64 INFO] (Scenario run:72) Starting RAMP phase
[50,64 INFO] (Workload setupDesign:63) Creating design test_design
[51,82 INFO] (Workload setupDesign:80) Design creation done
[51,82 INFO] (SDKD log:137) [Sdkd.Control|Info] Got a new connection. Creating child handle
[51,82 DEBUG] (Handle sendMessageAsync:183) > NEWHANDLE@101.1 => {Port=8091, Bucket=default, Options={SSL=true, Username=default, Password=, OtherNodes=[["10.3.121.135",8091],["10.3.121.136",8091],["10.3.3.206",8091]]}, Hostname=10.3.121.134}
[51,83 INFO] (SDKD log:137) [Sdkd.Control|Info] Registering handle 101
[51,83 INFO] (SDKD log:137) ClientConfiguration!!!!!!!!!!!!{
[51,83 INFO] (SDKD log:137) "Port": 8091,
[51,84 INFO] (SDKD log:137) "Bucket": "default",
[51,84 INFO] (SDKD log:137) "Options": {
[51,84 INFO] (SDKD log:137) "SSL": true,
[51,84 INFO] (SDKD log:137) "Username": "default",
[51,85 INFO] (SDKD log:137) "Password": "",
[51,85 INFO] (SDKD log:137) "OtherNodes": [
[51,85 INFO] (SDKD log:137) [
[51,85 INFO] (SDKD log:137) "10.3.121.135",
[51,86 INFO] (SDKD log:137) 8091
[51,86 INFO] (SDKD log:137) ],
[51,86 INFO] (SDKD log:137) [
[51,86 INFO] (SDKD log:137) "10.3.121.136",
[51,87 INFO] (SDKD log:137) 8091
[51,87 INFO] (SDKD log:137) ],
[51,87 INFO] (SDKD log:137) [
[51,87 INFO] (SDKD log:137) "10.3.3.206",
[51,87 INFO] (SDKD log:137) 8091
[51,88 INFO] (SDKD log:137) ]
[51,88 INFO] (SDKD log:137) ]
[51,88 INFO] (SDKD log:137) },
[51,88 INFO] (SDKD log:137) "Hostname": "10.3.121.134"
[51,88 INFO] (SDKD log:137) }
[51,89 INFO] (SDKD log:137) [Sdkd.ClientFactory|Info] Creating new shared client for key 'U,P,H10.3.121.134:8091,Bdefault'
[51,89 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving Common.Logging.Log4Net
[51,89 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly Common.Logging.Log4Net, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e
[51,89 INFO] (SDKD log:137) [Sdkd.Main|Info] Resolving log4net
[51,90 INFO] (SDKD log:137) [Sdkd.Main|Info] Have assembly log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821



logs.txt contains only:

2014-07-15 16:12:13,631 [4] DEBUG Couchbase.Core.ClusterManager - !!Trying to boostrap with Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.
2014-07-15 16:12:13,875 [4] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire new: 2632b059-2d3d-4b03-910e-d048e4025cda - [0, 0]


I've added in ClusterManager some logs to identify that ClusterManager.CreateBucket doesn't return bucket

--- a/Src/Couchbase/Core/ClusterManager.cs
+++ b/Src/Couchbase/Core/ClusterManager.cs
@@ -145,7 +145,7 @@ namespace Couchbase.Core
             {
                 try
                 {
- Log.DebugFormat("Trying to boostrap with {0}.", provider);
+ Log.DebugFormat("!!Trying to boostrap with {0}.", provider);
                     var config = provider.GetConfig(bucketName, password);
                     switch (config.NodeLocator)
                     {
@@ -203,6 +203,10 @@ namespace Couchbase.Core
             {
                 throw new ConfigException("Could not bootstrap {0}. See log for details.", bucketName);
             }
+ else
+ {
+ Log.DebugFormat("!!success bootstrap {0}. See log for details.", bucketName);
+ }
             return bucket;
         }


so, I didn't get "!!success bootstrap..." in logs


Jeff, could you take a look on it?

 Comments   
Comment by Andrei Baranouski [ 18/Jul/14 ]
the problem for this issue that I set ssl only for BucketConfiguration
like:

var bucketConfiguration = new BucketConfiguration();
bucketConfiguration.UseSsl = true;

when I set ssl for ClientConfiguration too the problem disappeared:
            var config = new ClientConfiguration();
            config.UseSsl=true;

so, the issues/questions now are:
a) if we set ssl only per bucket then client stuck on ClusterManager.CreateBucke and we "Could not bootstrap bucket with ssl connection"
b) the user can set in config ClientConfiguration with ssl and BucketConfiguration without ssl(and vice versa). what is expected behavior? should the client use ssl to communicate with cluster in general, but any bucket's ops use without ssl?
Comment by Jeff Morris [ 21/Jul/14 ]
Andrei -

This is how it should work:

a) If the UseSsl is set to true at the bucket level, then only that specific bucket will use/require SSL
b) If UseSsl is set that configuration level, then every bucket within that configuration will use/require to use SSL.

Here are some examples:

[Test]
        public void Test_UseSsl2()
        {
            var config = new ClientConfiguration
            {
                UseSsl = true
            };
            var cluster = new CouchbaseCluster(config);
            using (var bucket = cluster.OpenBucket())
            {
                //all buckets opened with this configuration will use SSL
            }
        }

        [Test]
        public void Test_UseSsl3()
        {
            var config = new ClientConfiguration
            {
                BucketConfigs = new Dictionary<string, BucketConfiguration>
                {
                    {"customers", new BucketConfiguration
                    {
                        UseSsl = true
                    }}
                }
            };
            var cluster = new CouchbaseCluster(config);
            using (var bucket = cluster.OpenBucket("customers"))
            {
                //only the customers bucket will use SSL
            }
        }

So, is this still an open issue or can it be resolved?

-Jeff
Comment by Jeff Morris [ 21/Jul/14 ]
commit 106f27387624fbb83d642b3c3916cab0dd0c8122




[NCBC-545] couchApiBase in pools/default/buckets/Bucket is in format http://IP:8092/BUCKET%2B/bucket_uuid( bucket_uuid is not required) Created: 08/Jul/14  Updated: 21/Jul/14  Resolved: 11/Jul/14

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

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

Attachments: Zip Archive Common.Logging.Log4Net.zip     Text File log.txt     File NCBC-545.logs    
Issue Links:
Relates to
relates to NCBC-550 Thread A is disposing of Bucket while... Resolved

 Description   
it's a blocker issue for at least couchbase-net-client against 3.0.0

for example, in the client when we build URL for queries we get uri like

http://10.3.4.144:8092/default+83794f1eaa6682ae0ada19cf8befd7ea/_design/test_design/_view/test_view/

3.0.0-918:

http://10.3.4.144:8091/pools/default/buckets/default
"couchApiBase":"http://10.3.4.144:8092/default%2B83794f1eaa6682ae0ada19cf8befd7ea"

2.5.0
http://10.3.4.147:8091/pools/default/buckets/default
"couchApiBase":"http://10.3.4.147:8092/default"


 Comments   
Comment by Aleksey Kondratenko [ 08/Jul/14 ]
Please explain _exactly_ how we're not allowed to add bucket uuid.

What actually breaks because of that and how exactly ?
Comment by Andrei Baranouski [ 08/Jul/14 ]
https://github.com/couchbase/couchbase-net-client/blob/master/src/Couchbase/DefaultHttpClient.cs#L202

to query client uses Uri(client.BaseAddress + "/" + path + queryString);

so, we get request like http://10.3.4.149:8092/default+58d6b67e4c80af5721e9ffcb72be97e1/_design/_design/test_design/_view/test_view that is not valid

[74.44 INFO] (SDKD log:137) [Couchbase.CouchbaseViewHandler|Warn] Design document not found, body: {"error":"not_found","reason":"missing"}
Comment by Aleksey Kondratenko [ 08/Jul/14 ]
Didn't get. Why _design gets duplicated? How existence of bucket uuid in couchApiBase (which is supposed to be to opaque) can affect it ?
Comment by Andrei Baranouski [ 08/Jul/14 ]
Thanks Alk for your comments

sorry, "_design" is my copy-paste error.

logs that I've added during debug

[39.66 INFO] (SDKD log:137) !!!!!!!!!!!!!!!!!!!!!!http://10.3.4.146:8092/default+83794f1eaa6682ae0ada19cf8befd7ea/_design/test_design/_view/test_view?

--- a/src/Couchbase/DefaultHttpClient.cs
+++ b/src/Couchbase/DefaultHttpClient.cs
@@ -105,6 +105,7 @@ namespace Couchbase
             public DefaultHttpResponseWrapper(HttpWebRequest request)
             {
                 this.request = request;
+ Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!" + request.Address);
             }


I figured out what the reason

http://10.3.4.146:8092/default+83794f1eaa6682ae0ada19cf8befd7ea/_design/test_design/_view/test_view - doesn't work, @Jeff seems like client "%2B" shouldn't decode "plus" symbol?
http://10.3.4.146:8092/default%2B83794f1eaa6682ae0ada19cf8befd7ea/_design/test_design/_view/test_view - works fine

not CB server issue
Comment by Wayne Siu [ 08/Jul/14 ]
Moving the ticket to NCBC project.
Comment by Jeff Morris [ 08/Jul/14 ]
What .NET client version is this impacting? 1.X or 2.X? Can you update the "Affects Version" in the ticket header?

Thanks,

Jeff
Comment by Wayne Siu [ 08/Jul/14 ]
Andrei,
I think it's 1.3. But please confirm. Thanks.
Comment by Andrei Baranouski [ 09/Jul/14 ]
it's 1.3.*
I used master branch with the latest commit
https://github.com/couchbase/couchbase-net-client/commit/fae1e56154cb069a598dbb43a9a3cbc2c284ff40
Comment by Jeff Morris [ 10/Jul/14 ]
Adding the bucket uuid is an unexpected change, however it appears that once the client is aware of it, it works the same as just using the bucket now.
Comment by Jeff Morris [ 10/Jul/14 ]
commit e5ead27c1efa5d33bb4d0ba9f55d424ffd9d3c79
Comment by Andrei Baranouski [ 10/Jul/14 ]
run with this commit http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/4/console


[42.98 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 107
   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 481
   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()

Comment by Jeff Morris [ 10/Jul/14 ]
Hi Andrei -

Can you enable logging on the SDK (instructions are here: https://www.couchbase.com/issues/browse/NCBC-536) and attach the log file to this ticket? Here is blog on how to set it up (use the app.config i attached to NCBC-536): http://blog.couchbase.com/couchbase-net-sdk-20-development-series-logging

What your providing me is the SDKQE log, what I need is the internal SDK log - it will give me a trace of what is happening before the exception occurs.

Thanks,

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

I'm able to get only client's logs in console http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/20/console
will they be useful for you?

because when I try to use app.config with "log4net" based on your example https://gist.github.com/andreibaranouski/f0d357a0c5a5897d848a I get https://friendpaste.com/3bWmWMkzZ93yJMq5htPSMI
[37.00 INFO] (SDKD log:137) Unhandled Exception: System.TypeInitializationException: The type initializer for 'Couchbase.Core.ClusterManager' threw an exception. ---> Common.Logging.ConfigurationExcep
tion: Failed obtaining configuration for Common.Logging from configuration section 'common/logging'. ---> System.Configuration.ConfigurationErrorsException: An error occurred creating the configuratio
n section handler for common/logging: Unable to create type 'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net' (C:\temp\sdkd-out-debug\SdkdConsole.exe.Config line 42) ---> Co
mmon.Logging.ConfigurationException: Unable to create type 'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net' ---> System.IO.FileNotFoundException: Could not load file or ass
embly 'Common.Logging.Log4Net' or one of its dependencies. The system cannot find the file specified. ---> System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Users\Administra
tor\Downloads\Couchbase-Net-Client-1.1.6\Common.Logging.Log4Net.dll' or one of its dependencies. The system cannot find the file specified.
[37.02 INFO] (LineGobbler doFilter:115) +++ Following exception has internal ID: 1
[37.02 INFO] (SDKD log:137) at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, I
ntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolea
n throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Bo
olean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppre
ssSecurityChecks, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at SdkdConsole.Program.GetDependency(Object sender, ResolveEventArgs args) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Program.cs:line 107

do you know what is wrong here?


Comment by Jeff Morris [ 11/Jul/14 ]
Is this from the 1.3.X client or from the 2.X? Each version has their own logging infrastructure, what I attached in the app.config was specifically for 2.X.

Make sure you have the following files in your bin (i'll attach them):
-Common.Logging
-Common.Logging.Log4Net
-log4net

Note that the tester project is all set up for logging as an example.

Also, "file:///C:\Users\Administrator\Downloads\Couchbase-Net-Client-1.1.6\" looks like a very old client version? 1.1.6?


Comment by Andrei Baranouski [ 11/Jul/14 ]
these logs are from 2.x

yes, I also noticed about Couchbase-Net-Client-1.1.6. will try to figure out where does it come
Comment by Andrei Baranouski [ 11/Jul/14 ]
Couchbase-Net-Client-1.1.6 is from https://github.com/couchbase/sdkd-net/blob/client-2.0/src/SdkdConsole/Program.cs#L92 but it's not used (folder doesn't exist)
really, Common.Logging.Log4Net.dll log4net.dll have been lost in the project
I will modify sdkd-net project to add this libraries in references or replace hard code "C:\Users\Administrator\Downloads\Couchbase-Net-Client-1.1.6\" on c:\tmp\libraries(that will have missed libraries, for example for debug)

anyway, I upload log4net logs to the ticket from the latest 2.0 master branch
Comment by Andrei Baranouski [ 11/Jul/14 ]
log4net on 2.x client
Comment by Jeff Morris [ 11/Jul/14 ]
Great Andrei, thanks!
Comment by Jeff Morris [ 11/Jul/14 ]
Andrei -

After looking at the logs, I am going to close this ticket and open another (NCBC-550) - the error you are seeing in unrelated to this ticket.

-Jeff





[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-536] [.net client 2.0]ConfigObserverNotFoundException during rebalance + mutation Created: 26/Jun/14  Updated: 10/Jul/14  Resolved: 09/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: Andrei Baranouski Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File App.config    
Issue Links:
Dependency

 Description   
I run the test agains 2.5 and used not yet commited sdkd-net(client-2.0) version

packages\sdkdclient\bin\brun.bat -I cluster_config.ini -I sdkd.args -d all:debug --no-upload --dsw_kvcount 10


[47,87 INFO] (SDKD log:137) SetCommand req.Command MC_DS_MUTATE_SET
[47,87 INFO] (SDKD log:137) SetCommand req.Command MC_DS_MUTATE_SET
[77,76 INFO] (Scenario run:86) Starting CHANGE phase
[78,22 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[79,88 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[81,11 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 2%
[82,35 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 4%
[83,58 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 5%
[84,80 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 7%
[86,03 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 8%
[87,26 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 10%
[88,49 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 11%
[88,66 INFO] (SDKD log:137)
[88,68 INFO] (SDKD log:137) Необработанное исключение: Couchbase.Configuration.ConfigObserverNotFoundException: default
[88,68 INFO] (SDKD log:137) в Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.UpdateConfig(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Configuration\Server
\Providers\CarrierPublication\CarrierPublicationProvider.cs:строка 78
[88,69 INFO] (SDKD log:137) в Couchbase.Core.ClusterManager.NotifyConfigPublished(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:строка 196
[88,69 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 464
[88,69 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.Upsert[T](String key, T value) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 86
[88,69 INFO] (SDKD log:137) в Sdkd.Commands.SetCommand.ExecuteSingle(String key, String value) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\SetCommand.cs:строка 77
[88,70 INFO] (SDKD log:137) в Sdkd.Commands.KVCommand.Run() в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\KVCommand.cs:строка 25
[88,70 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.DispatchCommand(Request req) в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:строка 193
[88,70 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.Run() в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:строка 125
[88,70 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[88,70 INFO] (SDKD log:137) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[88,71 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[88,71 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[88,71 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart()
[89,71 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 12%
[90,94 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 14%
[92,17 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 15%
[93,40 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 17%
[94,71 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 18%
[94,74 ERROR] (BRun maybePropagate:236) 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.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.7.0_60]
        at java.lang.Thread.run(Unknown Source) ~[na:1.7.0_60]
[94,75 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@101.41
[94,75 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.7.0_60]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.7.0_60]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.7.0_60]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.7.0_60]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.7.0_60]
        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:253) ~[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:275) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.runSingleTest(BRun.java:382) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.run(BRun.java:466) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.main(BRun.java:508) [sdkdclient-1.0-SNAPSHOT.jar:na]


Sorry, some Russian words :)



[21:37:47] Brett Lawson: Yea, it LOOKS like it could be a .NET bug, but it also could be a bug in the test.
[21:38:32] Brett Lawson: You should debug a little bit to try and identify how its occuring.
[21:39:52] Andrei Baranouski: okay, will post a ticket for now. then I will commit my sdkd fixes and will provide steps to reproduce (command line)


 Comments   
Comment by Andrei Baranouski [ 27/Jun/14 ]
some investigations:

I've the following changes in GetCommand.cs & SetCommand.cs to handle ConfigObserverNotFoundException when rebalance started
If i get ConfigObserverNotFoundException I sleep 150 sec to wait when rebalance completed and retry:



$ git diff
diff --git a/src/Sdkd/Commands/GetCommand.cs b/src/Sdkd/Commands/GetCommand.cs
index 55a90eb..588f1d0 100644
--- a/src/Sdkd/Commands/GetCommand.cs
+++ b/src/Sdkd/Commands/GetCommand.cs
@@ -8,6 +8,8 @@ using Sdkd.Protocol.Dataset;
 using Couchbase.Core;
 using Couchbase.IO.Operations;
 using Couchbase.Core.Buckets;
+using Couchbase.Configuration;^M
+using System.Threading;^M

 namespace Sdkd.Commands
 {
@@ -15,7 +17,22 @@ public class GetCommand : KVCommand
 {
        public override IOperationResult<Object> ExecuteSingle(string key, string value)
        {
- IOperationResult<String> res = Client.Get<String>(key);
+ Console.WriteLine(" AAAA " + Client.Name);^M
+ Console.WriteLine(Client.ToString());^M
+ IOperationResult<String> res = null;^M
+ try^M
+ {^M
+ res = Client.Get<String>(key);^M
+ }^M
+ catch (ConfigObserverNotFoundException e)^M
+ {^M
+ Console.WriteLine("UNABLE TO GET " + key);^M
+ Console.WriteLine(e.StackTrace);^M
+ Thread.Sleep(150000);^M
+ res = Client.Get<String>(key);^M
+ Console.WriteLine("SUCCESS TO GET " + key);^M
+ }^M
+ ^M
                if (res.Success == false)
                {
                        // Do something here


diff --git a/src/Sdkd/Commands/SetCommand.cs b/src/Sdkd/Commands/SetCommand.cs
index 63d7091..466741d 100644
--- a/src/Sdkd/Commands/SetCommand.cs
+++ b/src/Sdkd/Commands/SetCommand.cs
@@ -9,6 +9,8 @@ using Newtonsoft.Json.Linq;
 using Couchbase.Core;
 using Couchbase.IO.Operations;
 using Couchbase.Core.Buckets;
+using Couchbase.Configuration;^M
+using System.Threading;^M

 namespace Sdkd.Commands
 {
@@ -74,7 +76,21 @@ public class SetCommand : KVCommand
         }
         else if (Mode == OperationCode.Set)
         {
- return Client.Upsert<Object>(key, value);
+ try^M
+ {^M
+ return Client.Upsert<Object>(key, value);^M
+ }^M
+ catch (ConfigObserverNotFoundException e)^M
+ {^M
+ Console.WriteLine(DateTime.Now.ToString("h:mm:ss tt"));^M
+ Console.WriteLine("UNABLE TO UPSERT " + key);^M
+ Console.WriteLine(e.StackTrace);^M
+ Thread.Sleep(150000);^M
+ Console.WriteLine(DateTime.Now.ToString("h:mm:ss tt"));^M
+ IOperationResult<Object> temp = Client.Upsert<Object>(key, value);^M
+ Console.WriteLine("SUCCESS TO UPSERT " + key);^M
+ return temp;^M
+ }^M
         }
         else
         {


[89,82 INFO] (SDKD log:137) UNABLE TO UPSERT SimpleKeyREP3REP3REP3REP3REP3REP3REP3REP3
[89,82 INFO] (SDKD log:137) в Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.UpdateConfig(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Configuration\Server
\Providers\CarrierPublication\CarrierPublicationProvider.cs:строка 78
[89,82 INFO] (SDKD log:137) в Couchbase.Core.ClusterManager.NotifyConfigPublished(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:строка 196
[89,82 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 464
[89,82 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.Upsert[T](String key, T value) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 86
[89,83 INFO] (SDKD log:137) в Sdkd.Commands.SetCommand.ExecuteSingle(String key, String value) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\SetCommand.cs:строка 81
[90,74 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 22%
[91,97 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 23%
[93,19 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 24%
......................
[199,12 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[200,34 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[201,56 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[201,57 INFO] (Scenario run:97) CHANGE phase done
[201,57 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[230,00 INFO] (SDKD log:137) 11:28:49
[230,01 INFO] (SDKD log:137) SUCCESS TO UPSERT SimpleKeyREP3REP3REP3REP3REP3REP3REP3REP3
[230,67 INFO] (SDKD log:137) 11:28:49
[230,67 INFO] (SDKD log:137) UNABLE TO UPSERT SimpleKeyREP5REP5REP5REP5REP5REP5REP5REP5
[230,67 INFO] (SDKD log:137) в Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.UpdateConfig(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Configuration\Serve
r\Providers\CarrierPublication\CarrierPublicationProvider.cs:строка 78
[230,67 INFO] (SDKD log:137) в Couchbase.Core.ClusterManager.NotifyConfigPublished(IBucketConfig bucketConfig) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\ClusterManager.cs:строка 196
[230,67 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 464
[230,68 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.Upsert[T](String key, T value) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 86
[230,68 INFO] (SDKD log:137) в Sdkd.Commands.SetCommand.ExecuteSingle(String key, String value) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\SetCommand.cs:строка 81
[231,09 INFO] (SDKD log:137) 11:28:50
[231,10 INFO] (SDKD log:137)
[231,11 INFO] (SDKD log:137) Необработанное исключение: System.IO.IOException: Не удается записать данные в транспортное соединение: Программа на вашем хост-компьютере разорвала установленное подключение. ---> System.Net.Sockets.SocketException: Прог
рамма на вашем хост-компьютере разорвала установленное подключение
[231,11 INFO] (SDKD log:137) в System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
[231,11 INFO] (SDKD log:137) в System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
[231,11 INFO] (SDKD log:137) --- Конец трассировки внутреннего стека исключений ---
[231,12 INFO] (SDKD log:137) в System.Net.Sockets.NetworkStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
[231,12 INFO] (SDKD log:137) в Couchbase.IO.Strategies.EapConnection.Send[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\EapConnection.cs:строка 35
[231,12 INFO] (SDKD log:137) в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation, IConnection connection) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:строка 32
[231,12 INFO] (SDKD log:137) в Couchbase.IO.Strategies.DefaultIOStrategy.Execute[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:строка 42
[231,13 INFO] (SDKD log:137) в Couchbase.Core.Server.Send[T](IOperation`1 operation) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Server.cs:строка 80
[231,13 INFO] (SDKD log:137) в Couchbase.Core.Buckets.CouchbaseBucket.Upsert[T](String key, T value) в c:\jenkins\workspace-net2\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:строка 84
[231,13 INFO] (SDKD log:137) в Sdkd.Commands.SetCommand.ExecuteSingle(String key, String value) в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\SetCommand.cs:строка 90
[231,13 INFO] (SDKD log:137) в Sdkd.Commands.KVCommand.Run() в c:\jenkins\workspace-net2\sdkd-net\src\Sdkd\Commands\KVCommand.cs:строка 25
[231,13 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.DispatchCommand(Request req) в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:строка 191
[231,14 INFO] (SDKD log:137) в SdkdConsole.Daemon.Handle.Run() в c:\jenkins\workspace-net2\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:строка 123
[231,14 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[231,14 INFO] (SDKD log:137) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[231,14 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
[231,15 INFO] (SDKD log:137) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[231,15 INFO] (SDKD log:137) в System.Threading.ThreadHelper.ThreadStart()


so, here I see that after rebalance the second attempt was successful for SimpleKeyREP3REP3REP3REP3REP3REP3REP3REP3 but I again get exception for SimpleKeyREP5REP5REP5REP5REP5REP5REP5REP5
Comment by Andrei Baranouski [ 30/Jun/14 ]
my final conclusion after a deep study of the problem

when we perform Upset item during rebalance we call Upsert() and then check operationResult.Status == ResponseStatus.VBucketBelongsToAnotherServer
so, in the tests we get _VBucketBelongsToAnotherServer



CouchbaseBucket.sh:
 public IOperationResult<T> Upsert<T>(string key, T value)
        {
            IVBucket vBucket;
            var server = GetServer(key, out vBucket);

            var operation = new SetOperation<T>(key, value, vBucket, _converter);
            var operationResult = server.Send(operation);

            if (CheckForConfigUpdates(operationResult)) --- CHECK RESULT
            {
                Log.Info(m => m("Requires retry {0}", key));
            }
            return operationResult;
        }



 bool CheckForConfigUpdates<T>(IOperationResult<T> operationResult)
        {
            var requiresRetry = false;
            if (operationResult.Status == ResponseStatus.VBucketBelongsToAnotherServer)
            {
                var bucketConfig = ((OperationResult<T>)operationResult).GetConfig();
                if (bucketConfig != null)
                {
                    Log.Info(m => m("New config found {0}", bucketConfig.Rev));
                    _clusterManager.NotifyConfigPublished(bucketConfig); ------------------------FAILED because ConfigObservers is empty for this bucketConnection
                    requiresRetry = true;
                }
            }
            return requiresRetry;
        }


I tried to find the problem in the tests, as code may not yet be _clean after switching on 2.0, but apparently the problem on the SDK client side, because I have no problems for CRUD operation with CouchbaseBucket instance, but when rebalance starts....
Comment by Andrei Baranouski [ 30/Jun/14 ]
Jeff, could you take a look at the issue?
if you need any assistance (details steps to reproduce or create separate ticket in 'Couchbase .NET client library", ...) please let me know.
Comment by Andrei Baranouski [ 30/Jun/14 ]
maybe my test logs will be something useful https://friendpaste.com/2mIKMKUmN9rTRdUUX5fKTf
Comment by Jeff Morris [ 30/Jun/14 ]
Andrei -

Thanks for the detailed analysis, I'll take a look into it.

- Jeff
Comment by Jeff Morris [ 08/Jul/14 ]
Andrei -

Is this happening on every run or is this the initial test run? Having a bit of a hard time replicating it, although I don't doubt it's existence :)

-Jeff
Comment by Andrei Baranouski [ 09/Jul/14 ]
yes, it happens in every test. but not immediately, it happens when the tests trigger rebalance and vbucket map is changed
Comment by Jeff Morris [ 09/Jul/14 ]
Change the value of this element to a valid path on the machine running SDK: <param name="File" value="C:\temp\log.txt" />

This file also has to be included in the SDKD directory - or cut and paste the relevant bits so that logging is enabled.
Comment by Jeff Morris [ 09/Jul/14 ]
commit 369b8f312239156f9a46fba279afd7c5a84b3c77

Use the contents of the app.config attached to enable logging and run the tests again. Afterwards, attach the log file so I can review it.
Comment by Andrei Baranouski [ 10/Jul/14 ]
Thanks Jeff! seems like the issue has been resolved http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/2/console

but now I also see http://www.couchbase.com/issues/browse/NCBC-545 on .net client 2.0

could you pay attention for the issue because it can solve (unsolved :) )problem SDKQE-539 - Memory issues on Jenkins slave is causing job to abort intermittently

Comment by Jeff Morris [ 10/Jul/14 ]
Andrei

Very good! Were you able to get the log file? I need that to ascertain if much hunch (and thus the patch) are correct.

Also, for those other tickets, please update those tickets instead of referencing them on this one :)

-Jeff




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

[NCBC-542] Provide Observe method on IBucket Created: 02/Jul/14  Updated: 09/Jul/14

Status: In Progress
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: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This is a general publicly available Observe method for ensuring durability requirements on a set of keys. In addition, there will be overloads for each mutater (replace, insert, upsert) which provide durability support.

http://www.couchbase.com/wiki/display/couchbase/Observe




[NCBC-548] When # of replicas is 0 on bucket, IndexOutOfRangeException is thrown in client Created: 09/Jul/14  Updated: 09/Jul/14  Resolved: 09/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: 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 [ 09/Jul/14 ]
commit 48c81304abaaba354a2d34359c178497218518e1




[NCBC-546] ArgumentNullException: Buffer cannot be null. Created: 08/Jul/14  Updated: 08/Jul/14  Resolved: 08/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: 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   
Happens during swap/rebalance.

Couchbase.IO.Operations.OperationResult`1 - System.ArgumentNullException: Buffer cannot be null.
Parameter name: buffer
   at System.IO.MemoryStream..ctor(Byte[] buffer, Int32 index, Int32 count, Boolean writable, Boolean publiclyVisible)
   at System.IO.MemoryStream..ctor(Byte[] buffer, Int32 index, Int32 count)
   at Couchbase.Core.Serializers.TypeSerializer.DeserializeAsJson[T](Byte[] buffer, Int32 offset, Int32 length) in c:\Users\jmorris\repos\working\2.0\couchbase-csharp-client-ng\Src\Couchbase\Core\Serializers\TypeSerializer.cs:line 129
   at Couchbase.Core.Serializers.TypeSerializer.Deserialize[T](Byte[] buffer, Int32 offset, Int32 length) in c:\Users\jmorris\repos\working\2.0\couchbase-csharp-client-ng\Src\Couchbase\Core\Serializers\TypeSerializer.cs:line 118
   at Couchbase.IO.Operations.OperationResult`1.GetConfig() in c:\Users\jmorris\repos\working\2.0\couchbase-csharp-client-ng\Src\Couchbase\IO\Operations\OperationResult.cs:line 88

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




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




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

[NCBC-541] Implement Observe command Created: 02/Jul/14  Updated: 08/Jul/14  Resolved: 08/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: 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   
http://www.couchbase.com/wiki/display/couchbase/Observe

 Comments   
Comment by Jeff Morris [ 08/Jul/14 ]
commit 1765c40b1f65997e8f37c7e1b0c119eb18990f12




[NCBC-544] ExecuteAppend and ExecutePrepend methods on .Net documentation has error in sample code Created: 07/Jul/14  Updated: 08/Jul/14

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

Type: Bug Priority: Minor
Reporter: Cihan Biyikoglu Assignee: Amy Kurtzman
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The code samples below has an error:
http://docs.couchbase.com/couchbase-sdk-net-1.3/index.html

client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
var result = client.ExecuteAppend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

if (! result.Sucecss)
{
    Console.WriteLine("Append failed with message {0} and status code {1}", result.Message, result.StatusCode);

    if (result.Exception == null)
    {
        throw result.Exception;
    }
}



client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
var result = client.ExecutePrepend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

if (! result.Sucecss)
{
    Console.WriteLine("Prepend failed with message {0} and status code {1}", result.Message, result.StatusCode);

    if (result.Exception == null)
    {
        throw result.Exception;
    }
}

the last IF should be:
 if (result.Exception != null)


 Comments   
Comment by Amy Kurtzman [ 07/Jul/14 ]
@Cihan, please add a link to the heading that contains this example. I can't find it.

@Jeff, after Cihan supplies a closer link, please verify this change is correct and also let me know if the method name Sucecss in this line is spelled correctly (it's spelled that way in many examples in this document):

if (! result.Sucecss)
Comment by Cihan Biyikoglu [ 07/Jul/14 ]
if you search for "result.Exception == null" on this page you will find all the instances to correct. http://docs.couchbase.com/couchbase-sdk-net-1.3/index.html - there are 2.

they all should show this instead: result.Exception != null
Comment by Jeff Morris [ 07/Jul/14 ]
Indeed there is two issues here:
a) it should be "not equals" null
b) "Sucecss" should be "Success"

For example:

            client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
            Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
            var result = client.ExecuteAppend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

            if (!result.Success)
            {
                Console.WriteLine("Append failed with message {0} and status code {1}", result.Message, result.StatusCode);

                if (result.Exception != null)
                {
                    throw result.Exception;
                }
            }




[NCBC-491] Getting "Failed to initialize pool." on Windows Server R2 Created: 28/May/14  Updated: 04/Jul/14

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

Type: Bug Priority: Major
Reporter: samal Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: MS Windows Server R2

Issue Links:
Dependency

 Description   
Submitted bug as per request in Community discussion here: http://www.couchbase.com/communities/q-and-a/failed-initialize-pool

Recap:
Failing to establish connection between Nancy/ASP.NET webservice, using .net client 1.3.5 from nuget and Couchbase 2.2.0-837-rel. Tried with published build of service on the same machine as the Couchbase server, without firewall, anti-virus/malware, and debugger. Server Node Name on the server is 0.0.0.0.

No issue when trying against fresh Couchbase install on development machine running Windows 7.

Log from server:
2014-05-27 11:06:44.6021|WARN|Enyim.Caching.MemcachedClient|Creating new client. CID: f41d0d09-399e-4399-ba24-d4ed4902865e CouchbaseClient
2014-05-27 11:06:45.2091|WARN|Couchbase.CouchbasePool|Starting Couchbase.CouchbasePool
2014-05-27 11:06:45.3351|WARN|Couchbase.MessageStreamListener|Started working.
2014-05-27 11:06:45.3491|WARN|Couchbase.MessageStreamListener|Looking for the first working node.
2014-05-27 11:06:45.3731|WARN|Couchbase.MessageStreamListener|Starting the listener. Queue=True
2014-05-27 11:06:45.4031|WARN|Couchbase.MessageStreamListener|Resolved pool url http://127.0.0.1:8091/pools/ to http://127.0.0.1:8091/pools/default/bucketsStreaming/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8
2014-05-27 11:06:45.4031|WARN|Couchbase.MessageStreamListener|Start receiving messages.
2014-05-27 11:06:45.4581|ERROR|Couchbase.CouchbasePool|Failed to initialize the pool.
2014-05-27 11:06:45.4581|WARN|Couchbase.MessageStreamListener|Processing message: {"name":"name_of_our_bucket","bucketType":"membase","authType":"sasl","saslPassword":"xxxxxxxxxxx","proxyPort":0,"replicaIndex":false,"uri":"/pools/default/buckets/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8","streamingUri":"/pools/default/bucketsStreaming/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8","localRandomKeyUri":"/pools/default/buckets/name_of_our_bucket/localRandomKey","controllers":{"compactAll":"/pools/default/buckets/name_of_our_bucket/controller/compactBucket","compactDB":"/pools/default/buckets/default/controller/compactDatabases","purgeDeletes":"/pools/default/buckets/name_of_our_bucket/controller/unsafePurgeBucket","startRecovery":"/pools/default/buckets/name_of_our_bucket/controller/startRecovery"},"nodes":[{"couchApiBase":"http://0.0.0.0:8092/name_of_our_bucket","replication":0.0,"clusterMembership":"active","status":"healthy","otpNode":"ns_1@0.0.0.0","thisNode":true,"hostname":"0.0.0.0:8091","clusterCompatibility":131072,"version":"2.2.0-837-rel-community","os":"windows","ports":{"proxy":11211,"direct":11210}}],"stats":{"uri":"/pools/default/buckets/name_of_our_bucket/stats","directoryURI":"/pools/default/buckets/name_of_our_bucket/statsDirectory","nodeStatsListURI":"/pools/default/buckets/name_of_our_bucket/nodes"},"ddocs":{"uri":"/pools/default/buckets/name_of_our_bucket/ddocs"},"nodeLocator":"vbucket","fastWarmupSettings":false,"autoCompactionSettings":false,"uuid":"88ecde59b0e41d255e7a845583d3c2c8","vBucketServerMap":{"hashAlgorithm":"CRC","numReplicas":1,"serverList":["0.0.0.0:11210"],"vBucketMap":[[0,-1],

 Comments   
Comment by Jeff Morris [ 03/Jul/14 ]
Hi Samal -

Are you still running into the issue or have you resolved it?

- Jeff
Comment by samal [ 04/Jul/14 ]
Hi Jeff,

Yeah changing the server listen ip from 0.0.0.0 to 127.0.0.1 did the trick.




[NCBC-537] Publish docs for .NET July 2014 release Created: 01/Jul/14  Updated: 03/Jul/14  Resolved: 03/Jul/14

Status: Closed
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.7
Fix Version/s: 1.3.7

Type: Task Priority: Major
Reporter: Amy Kurtzman Assignee: Amy Kurtzman
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-513] Use Timespan.TotalSeconds instead of Timespan.Seconds Created: 16/Jun/14  Updated: 02/Jul/14  Resolved: 30/Jun/14

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

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


 Description   
The timespan calculation applied as part of the fix for issue NCBC-485 is incorrect.

               // NCBC-485 send small TTLs (less than 30 days) in seconds, not EPOCH.
                if(validFor < TimeSpan.FromSeconds(((60*60) * 24)*30))
                {
                    return (uint)validFor.GetValueOrDefault().Seconds;
                }

Note that this should be: return (uint)validFor.GetValueOrDefault().TotalSeconds;

In most cases where a "round" Timespan is used, 0 will be returned as a result of using the "Second" property.

 Comments   
Comment by Jeff Morris [ 16/Jun/14 ]
Dan -

Thanks for creating this ticket, indeed it looks like a bug. This is planned for the next 1.3.X release in early July, 1.3.7.

If you feel you have a fix for this and would like to contribute it, please sign the Contributor License Agreement (CLA) if you haven't already done so:

1-http://review.couchbase.org
2-Login in and select your username on the top right hand side and then "settings"
3-The last item on the left in the settings view is an "Agreements" menu tab, select that an then
select the "New Contributor Agreement"

Once this is done, create a pull request here: https://github.com/couchbase/couchbase-net-client/pulls

Please include unit tests as well. Once the pull request is created, I will merge it with our code review system, Gerrit.

Thanks!

-Jeff
Comment by Dan Plaskon [ 19/Jun/14 ]
Hey Jeff,

Sorry about the delay..that's quite a bit of upfront work for a one-line PR - so I'll opt out this time around.

I believe the only real fix would be:

return (uint)validFor.GetValueOrDefault().TotalSeconds;
Comment by Jeff Morris [ 19/Jun/14 ]
Dan -

Yeah, were trying to streamline the process. However, once you've signed the CLA, you simply push your pull requests in the future and we (for the most part) take care of the rest.

You can expect this fixed in the 1.3.7 release in early July.

Thanks,

Jeff




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

[NCBC-543] Provide durability constraints for mutator methods: replace, insert, upsert Created: 02/Jul/14  Updated: 02/Jul/14

Status: Open
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: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

http://www.couchbase.com/wiki/display/couchbase/Observe




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

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

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

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-490 support configuring the poll interval... Technical task Open Jeff Morris  
NCBC-541 Implement Observe command Technical task Resolved Jeff Morris  
NCBC-542 Provide Observe method on IBucket Technical task In Progress Jeff Morris  
NCBC-543 Provide durability constraints for mu... Technical task Open Jeff Morris  

 Comments   
Comment by Matt Ingenthron [ 02/Jul/14 ]
The official term is "durability requirements"




[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: 2.0.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


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




[NCBC-539] ManualByteConvert.ToUInt64 returns invalid number Created: 01/Jul/14  Updated: 01/Jul/14

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

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


 Description   
Sample bytes (a CAS value):

[0x00000010] 0x00
[0x00000011] 0x00
[0x00000012] 0xa9
[0x00000013] 0x53
[0x00000014] 0x5f
[0x00000015] 0x3d
[0x00000016] 0xa7
[0x00000017] 0x0f

Expected: 186175545255695
Actual: 1597878111




[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: 2.0.0
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-538] Refactor Upsert,Insert, Replace, Remove and add GetDocument methods to accept IDocument Created: 01/Jul/14  Updated: 01/Jul/14  Resolved: 01/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: 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   
Adds:
IResult<T> Upsert<T>(IDocument<T> document);
IResult<T> Replace<T>(IDocument<T> document);
IResult<T> Insert<T>(IDocument<T> document);
IResult Remove<T>(IDocument<T> document);
IResult<T> GetDocument(string id)

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




[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-531] Provide Async TAP methods for all operations - view, kv, and n1ql Created: 25/Jun/14  Updated: 26/Jun/14

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

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

Epic Name: Provide Async TAP methods for all operations - view, kv, and n1ql
Epic Status: To Do




[NCBC-534] Provide TAP Methods for N1QL Created: 26/Jun/14  Updated: 26/Jun/14

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

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

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




[NCBC-533] Provide TAP Methods for Views Created: 26/Jun/14  Updated: 26/Jun/14

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

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

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




[NCBC-532] Provide TAP Methods for K/V operations Created: 26/Jun/14  Updated: 26/Jun/14

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

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

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




[NCBC-530] Add support for Prepend Created: 25/Jun/14  Updated: 25/Jun/14  Resolved: 25/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





[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: 2.0.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


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




[NCBC-480] Implement CouchbaseCluster.Info Created: 14/May/14  Updated: 25/Jun/14

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

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


 Description   
Provide implementation for IClusterInfo interface.




[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-529] Remove BinaryConverter and refactor dependencies Created: 25/Jun/14  Updated: 25/Jun/14  Resolved: 25/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   
We are now using IByteConverter implementations and defaulting to AutoByteConverter which uses BitConverter internally.

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




[NCBC-528] Add Close() method to ClusterHelper Created: 25/Jun/14  Updated: 25/Jun/14  Resolved: 25/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 [ 25/Jun/14 ]
commit d8715b652e183492606a2970a8df96b5fbfb5c78




[NCBC-527] Refactor TypeSerializer Created: 25/Jun/14  Updated: 25/Jun/14  Resolved: 25/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   
There are currently two type serializers: TypeSerializer and TypeSerializer2, this commit deletes TypeSerializer, renames TypeSerializer2 to TypSerializer and updates all references.

 Comments   
Comment by Jeff Morris [ 25/Jun/14 ]
commit 17107d1c209bafa0396726eafbdf89cf66b39ca1




[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-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-526] Remove singleton from Cluster object and provide an optional singleton cluster manager object Created: 24/Jun/14  Updated: 24/Jun/14  Resolved: 24/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 [ 24/Jun/14 ]
commit 3bd71fe695eb70f7dfd1a876bd9f20ebdbab938d

Split CouchbaseCluster into CouchbaseCluster and ClusterHelper, which is a lazy loaded singleton CouchbaseCluster instance.




[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: 2.0.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


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


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




Refactor and Improve IO layer (NCBC-421)

[NCBC-525] Misc performance improvements and refactoring Created: 24/Jun/14  Updated: 24/Jun/14  Resolved: 24/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 [ 24/Jun/14 ]
commit eb75a439ce65d10568bcac6967e601979a521ec4




Refactor and Improve IO layer (NCBC-421)

[NCBC-524] Refactor OperationBase and other classes to not use ArraySegment Created: 23/Jun/14  Updated: 23/Jun/14  Resolved: 23/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   
Currently client wraps all byte arrays in ArraySegment's - this gets rid of the ArraySegment and instead uses Buffer.BlockCopy to copy bytes arrays in the final packet.

 Comments   
Comment by Jeff Morris [ 23/Jun/14 ]
commit 3ad5ac66c7d9fa8f766ea7d9eef6b261a9d2df3a




[NCBC-458] check terse bucket info URI automatically before checking full bucket URI Created: 07/May/14  Updated: 23/Jun/14

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

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


 Description   
Starting in Couchbase Server there is a separate URI "/b/streaming" that is private (to couchbase) interface and much more efficient for the cluster. We should, as a feature, automatically check that URI first before checking the other URI.

 Comments   
Comment by Matt Ingenthron [ 07/May/14 ]
Jeff: I filed this against 1.3.6 but will work with you on the roadmap/planning. This would be very valuable if a simple update for 1.3.x.




[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-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-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-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-520] GetView returns IVIEW with IVIEWROWS which are NULL Created: 18/Jun/14  Updated: 18/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: process
Affects Version/s: 1.3.4, 1.3.5
Fix Version/s: None

Type: Bug Priority: Major
Reporter: douwequerty Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 2.2 server on unbuntu, dot net website running in ISS.


 Description   
We use couchbase views to retrieve some keys which worked fine in 1.2.9. However we upgraded to 1.3.6 in which we found view errors (See NCBC-507). Hence we reverted back to 1.3.5 and 1.3.4 which contained the following view error:

Code:
var itemtoremove = CouchbaseWrapper.Client.GetView("search", "customerid_productid").Key(new object[] { Obj.Customer_ID.ToString().ToLower(), row["ProductID"].ToString().ToLower() });

Returns an IView of IViewRows over which we enumerate. However some rows have the value null (not the properties of IViewRow but the reference to IViewRow itself is null). Which results in object reference not set exception when trying to handle the IViewRows. Which we ofcourse don't expect when processing the results of a view.
Currently I reverted back to 1.2.9 in which our code executes without any problems.

 Comments   
Comment by Jeff Morris [ 18/Jun/14 ]
Is this deterministic? Would you mind attaching a simple sample app illustrating the issue plus data and your view definitions in a separate file?




[NCBC-507] View {0} was mapped to a dead node, failing Created: 12/Jun/14  Updated: 18/Jun/14

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

Type: Bug Priority: Major
Reporter: douwequerty Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 2.2 server on unbuntu, dot net website running in ISS.


 Description   
View {0} was mapped to a dead node, failing .

Known issue with previous versions of the couchbase client, see http://www.couchbase.com/issues/browse/NCBC-337 for instance but there are more,
has some how returned.
I reverted back to the 1.3.5 client and the error magically disappeared.

 Comments   
Comment by Jeff Morris [ 18/Jun/14 ]
douwequerty -

Be aware that we have added additional logging and retry logging in the 1.3.X versions of the client. The retry logic is for handling scenarios when the cluster is transitioning between states, for instance during a rebalance or when a node is added or removed. It's a Warn, because in subsequent retries it's likely that an active node will be selected and the operation will succeed.

Is this the error that your getting from your OperationResult.Message property or what you are seeing in your logs? The most important result is the final outcome of the operation and what you would see at your at application level and not in your logs.

That being said, how often is this happening? What is the state of the cluster when this is happening? What about at the app server level - is IIS doing an app-pool refresh at this time?

If you can supply answers to those questions and logs, it would be helpful in diagnosing what is going on here.

-Jeff




[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-518] 2.0 Sample Application Created: 17/Jun/14  Updated: 17/Jun/14

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

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

Epic Link: Beta 1 Documentation and Sample App

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

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




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

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

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

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

 Description   
Use Amy's TOC as a template + feedback




.NET SDK 2.0 Documentation (NCBC-516)

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

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

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


 Comments   
Comment by Jeff Morris [ 17/Jun/14 ]
http://www.couchbase.com/issues/browse/NCBC-519




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

Status: Open
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: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-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-519] Code Comments & Sandcastle Documentation Created: 17/Jun/14  Updated: 17/Jun/14

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

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

Epic Link: Beta 1 Documentation and Sample App




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




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




[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: 2.0.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 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  




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




[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




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




Add support for Incr/Decr (NCBC-477)

[NCBC-508] Add Increment operation support 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


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




[NCBC-506] Creating two or more client instances on adjacent lines creates deadlock Created: 11/Jun/14  Updated: 11/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.6
Fix Version/s: backlog-1.0

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


 Description   
Creating two or more client instances on adjacent lines may introduce a deadlock where one instance blocks, waiting for the bootstrapping to complete and the others wait, but the first never completes (not sure why). A work around is to put the main thread to sleep for a few ms before creating the next instance, which gives the first time to finish bootstrapping




[NCBC-342] Debug [VIEWS:EXC_UNEXPECTED] errors seen in 1.3.0 code after connection pool changes Created: 09/Dec/13  Updated: 10/Jun/14  Resolved: 10/Jun/14

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

Type: Improvement Priority: Minor
Reporter: Saakshi Manocha Assignee: Saakshi Manocha
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency

 Description   
After comparison of results in SDKQE-398, we need to examine the reason behind the [VIEWS:EXC_UNEXPECTED] errors in 1.3.0


 Comments   
Comment by Jeff Morris [ 10/Dec/13 ]
Duplicate: http://www.couchbase.com/issues/browse/NCBC-337




[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: 2.0.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 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-485] Small TTL values can get lost by client/server clock-drift Created: 22/May/14  Updated: 06/Jun/14  Resolved: 02/Jun/14

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

Type: Task Priority: Major
Reporter: Jim Walker Assignee: Jim Walker
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The .NET client library always sends TTL values as absolute "since EPOCH" time-stamps. This causes problems if you have a small TTL and there's clock-drift between client server.

Example
client clock is 14:00
server clock is 13:58 (not uncommon to have minutes of drift)
client adds a document with a 10 second TTL. This is actually sent as 14:00:10

The client will find the document still lives until the server clock reaches 14:00:10, some 2 minutes later than when the document was added.

CB server overloads the time-stamp field in the memcached wire protocol. The 4-byte field used for TTL info is interpreted as an absolute UTC, EPOCH timestamp for values over 2592000 seconds (30 days since EPOCH). Values under that are just treated as seconds to live.

For the Store method which accepts a TimeSpan TTL we should be sending TTLs under 30 days as seconds, not EPOCH. This protects the client against the clock drift issues.

The DateTime Store method must be left alone and always send EPOCH TTL.

 Comments   
Comment by Jim Walker [ 22/May/14 ]
http://review.couchbase.org/#/c/37443/
Comment by Matt Ingenthron [ 22/May/14 ]
Nicely done Jim!
Comment by Jeff Morris [ 22/May/14 ]
And with unit tests?! Awesome!!!
Comment by Jim Walker [ 04/Jun/14 ]
I was looking to hit "close issue", but didn't spot this patch in the github change log? Will that happen closer to the next .NET library release?
Comment by Jeff Morris [ 04/Jun/14 ]
Jim - yeah, I am targeting Thursday as the release date for 1.3.6.
Comment by Jeff Morris [ 04/Jun/14 ]
This has been merged, you can close the ticket.

Thanks,

Jeff




[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-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-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-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-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-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: 2.0.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   
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-434] add feature test ensuring that E2BIG is returned on append above 20MB Created: 07/Apr/14  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.7

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

Issue Links:
Dependency
depends on MB-10778 Append do not return the correct erro... Resolved

 Description   
When continuing to append beyond the maximum value of 20MByte, we should verify that applications receive the correct error response.

 Comments   
Comment by Jeff Morris [ 01/May/14 ]
Hi Saaskhi -

Should I move this to the next sprint for 1.3.6?

-Jeff
Comment by Jeff Morris [ 02/Jun/14 ]
Saakshi -

Moved this to 1.3.7 - if this isn't right, feel free to update the ticket.

Thanks,

Jeff




[NCBC-97] Stats call doesn't handle I/O error Created: 20/Aug/12  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.1.6
Fix Version/s: backlog-1.0

Type: Bug Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase Client 1.1.6, server 1.8.0 build 55

Issue Links:
Dependency

 Description   
Repeat as follows:

- Call to MemcachedClient.Stats(type)
- This builds a StatsOperation for each node and asynchronously performs MemcachedNode.Execute(cmd)
- An I/O error occurs, so StatsOperation leaves its member "results" as null and Execute returns false to indicate an error
- MemcachedClient ignores the returned Boolean value from EndInvoke and puts a null dictionary into its own set of results
- ServerStats.GetRaw(key) dies trying to select into the missing dictionary

Plausible fix: check the status from EndInvoke and don't stick anything in the dictionary if there was an error.

 Comments   
Comment by Tim Smith (Inactive) [ 20/Aug/12 ]
Example of how it's called: mc.Stats().GetRaw("uptime"); result is NullReferenceException....
Comment by Jeff Morris [ 19/Mar/14 ]
Hi Abhishek -

We have a release coming up and try to work this into it. Same for the other ticket they opened 2 years(?) or so ago.

-Jeff




[NCBC-431] Doc: Sockpool Formatting wrong. Created: 07/Apr/14  Updated: 02/Jun/14

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

Type: Bug Priority: Minor
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: documentation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-the-net-client-library


 Description   
I think *sockpool* with *minpoolsize* and *maxpoolsize* is meant to be a bullet point with sub bullet points.


Ethier way the minpoolsize line is not formatted correctly.




[NCBC-36] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 06/Apr/12  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 0.9
Fix Version/s: backlog-1.0

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


 Description   
If configured with a single host (a load balancer), the client will pause for 1s everytime it loses this connection. The same thing happens when configured with a list of hosts and the client reaches the end of the list...it pauses for 1s before going back to the top.

I don't think it's appropriate to ask for the client to constantly spin on trying to make a connection if in fact none can be made.

Another solution to this would be to have the client be aware of ALL the servers in a cluster (which it gets via the vbucket map info) and be able to try all of them, and/or know which ones are alive so that it doesn't have to wait

 Comments   
Comment by Perry Krug [ 15/Aug/13 ]
This is also needed when trying to upgrade the entire cluster as IP addresses are changing (mostly in AWS)
Comment by Perry Krug [ 13/Jan/14 ]
Has this already been handled with unibrow/CCCP?
Comment by Matt Ingenthron [ 13/Jan/14 ]
Node IPs only change on reboot in EC2. Well, or if you associate an EIP, but that's administrator controlled, not random.

.NET has not implemented unibrow yet and may actually get to CCCP first. The phase one for unibrow was Java and libcouchbase, and those two have been done for some time.
Comment by Perry Krug [ 13/Jan/14 ]
I think it's just important to realize the major use case of this would be when replacing all of the nodes in a client's bootstrap list. This might be when swapping all nodes for some reason or another or just happening to rebalance out the nodes that the client has in its list...I don't think that's a corner-case only related to AWS.




[NCBC-286] Accessing key data when using strongly-typed views Created: 07/Aug/13  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: David Haikney Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer, views
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Directly lifted from forum post here and copied and pasted below:
http://www.couchbase.com/forums/thread/net-client-accessing-key-data-when-using-strongly-typed-views


====Forum Post 1 (Simon, Requester) ====
I have a Couchbase 2.0 View that returns a projection of the underlying objects - e.g.
{
    Count: 100,
    SumPrices: 1231231.02
}
if I use a strongly typed view - e.g.
_client.GetView<MyDto>("my__dd", "my_view")
the projection is automatically deserialised to my DTO class, which is nice and easy. However, I'd also like to retrieve info from the key, which doesn't seem to be possible with this approach.
I can use the more general IView syntax, but now I have to deserialize the DTO myself which is not simple since the data is exposed as a dictionary, not a JSON string.
Perhaps I'm missing something, but it would be useful to be able to use both strong-typing and still have access to the key meta data.
The alternative would be to include the values from the key in the projection data, but this seems wrong in that the data will be repeated twice in the index?

====Forum Post 2 (John)====
As I understand your view returns.
 { Count: 100, SumPrices: 1231231.02 }
If this is correct you use reduce function that counts and summs multiple keys. And it returns 1 key-value pair where key is null and value is an object mentioned before.
So I don't understand which one key's metadata your want to see and where? If you want to see all keys metadata you can store it in reduce function into array or something:
{ Count: 100, SumPrices: 1231231.02, Keys: [key1, key2 ...] }.

====Forum Post 3 (John)====
If your DTO includes an "Id" property, it will be populated a bit magically by the generic view method. It's a little trickier than that, and I describe a solution here - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/brewerycrud.html. I'm going to work on improving the JSON extensions to make this easier to use - https://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html.

====Forum Post 4 (Simon, Requester)====
Hi yes, you are correct that this is a map-reduce scenario.
However I am using the group feature so each row returned should have a distinct key associated with it as per the IViewRow.ViewKey property (of type object[]) in the .NET Client API. I can make this work with the loosely typed version but the mapping code for the returned projection is a bit icky - e.g.
((IDictionary)(vr.Info["value"]))["Count"]
to get the Count value!

====Forum Post 5 (Simon, Requester)====
HI John - Thanks for the pointers. To clarify, this is a map-reduce view scenario. My client code is like this:
            return _client.GetView<WebsiteBrowseQuoteSummary>("browse", "ret_by_route_dow")
                .StartKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek })
                .EndKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek + 1 })
                .Group(true)
                .Reduce(true)
                .ToList();
I think the issue is that in the strongly typed approach (e.g. GetView<T>) the return type is IView<T> which is an IEnumerable<T> where T is the DTO. If there was an IViewRow<T> with a Value property of type T and a ViewKey property, I think that would do it as I could add the additional work to populate the missing params from the ViewKey.

====Forum Post 6 (John)====
Ah, didn't catch the reduce part... In the beer sample, I used the non-generic view for such queries:
https://github.com/couchbaselabs/beer-sample-net/blob/master/src/Couchba...
The limitation with the generic query is that it either a) expects to get the document JSON by its ID, where reduce won't obviously have the id, or b) it expects the value to be a JSON projection to deserialize into an instance of T.
I'd like to support generic reduce queries, so I'll give it some thought...
====End of Forum Posts====





[NCBC-376] Refactor Unit Test Project-Part 2 Created: 30/Jan/14  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.1
Fix Version/s: backlog-1.0

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


 Description   
Unit test project has multiple threading and other issues which make regression testing difficult. This is a task to refactor it so that we have 100% green after every test run and so that it runs in < 1 minute.

Note this is a follow up to: https://www.couchbase.com/issues/browse/NCBC-361

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Saakshi -

Same as the other ticket, let's either close this or move it to the next release if it's still in-progress or revolving, ok?

Thanks,

Jeff
Comment by Saakshi Manocha [ 04/Mar/14 ]
No pending check-ins as of now, moving it to 1.3.5




[NCBC-388] Improve Nunit tests Created: 11/Feb/14  Updated: 02/Jun/14

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

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

Issue Links:
Dependency

 Description   
Some Nunit tests require special set up and tear down phases and not all of them run in one go.
So we need to improve them and get better coverage and test reports through Jenkins.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Hi Saakshi -

Do you have pending check-ins for this ticket? If not close it or if it's revolving, let's move it to 1.3.5 ok?

Thanks,

Jeff
Comment by Saakshi Manocha [ 04/Mar/14 ]
No pending check-ins as of now, moving it to 1.3.5
Comment by Saakshi Manocha [ 20/Mar/14 ]
Change set:
http://review.couchbase.org/#/c/34736/

In test case: When_Deleting_Bucket_Bucket_Is_No_Longer_Listed, the method DeleteBucket() should be called before checking whether the bucket is deleted and is no longer listed. This missing statement was causing the test case to fail.




Standardize, Document and Change Logging Levels for Client (NCBC-392)

[NCBC-397] Document changes to logging levels including BP Created: 14/Feb/14  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.3
Fix Version/s: backlog-1.0

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


 Comments   
Comment by Jeff Morris [ 10/Mar/14 ]
Moving this to next release (1.3.5) since we had some last minute changes to: https://docs.google.com/document/d/1GhRxvPb7xakLL4g00FUi6fhZjiDaP33DTJZW7wfSxrI/edit




[NCBC-340] System.InvalidOperationException an asynchronous module or handler completed while an asynchronous operation was still pending Created: 04/Dec/13  Updated: 02/Jun/14

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

Type: Task Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: ASP.NET Session Provider

Attachments: Zip Archive NCBC340_reproduced.zip    

 Description   
I get the following error randomly on my production Couchbase server:

"System.InvalidOperationException
an asynchronous module or handler completed while an asynchronous operation was still pending"

I am using the latest Couchbase server and the latest version of the .Net SDK. When I run locally I do not see this error at all.

On production I have a two node Couchbase client. The config section is the following:

<couchbase>
  <servers bucket="Staging" bucketPassword="">
    <add uri="http://COUCH01.mobitorhost00.local:8091/pools" />
  </servers>
</couchbase>
<enyim.com>
  <memcached protocol="Binary">
    <servers>
      <add address="COUCH01.mobitorhost00.local" port="11211" />
    </servers>
    <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:01:00" deadTimeout="00:01:00"/>
  </memcached>
</enyim.com>

When I switch to the Memcache provider instead the error does not appear.

Thanks for your help. This is really a show-stopper for us.

Here is a stack trace:

Storex.Site.dll!Storex.Site.MvcApplication.Application_Error() Line 53 C#
  [Native to Managed Transition]
  System.Web.dll!System.Web.Util.ArglessEventHandlerProxy.Callback(object sender, System.EventArgs e) Unknown
  System.Web.dll!System.Web.HttpApplication.RaiseOnError() Unknown
  System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error) Unknown
  System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb) Unknown
  System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr, System.Web.HttpContext context) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  [Native to Managed Transition]
  [Managed to Native Transition]
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  [AppDomain Transition]

- See more at: http://www.couchbase.com/communities/comment/reply/1892?destination=node/1892#comment-form

 Comments   
Comment by Jeff Morris [ 04/Dec/13 ]
Possible duplicate: https://www.couchbase.com/issues/browse/NCBC-302
Comment by Tomasz Poradowski [ 13/Dec/13 ]
This can be worked around by using RestSharpHttpClient, see more at http://www.couchbase.com/communities/q-and-a/answer/answer-2095
Comment by Tomasz Poradowski [ 13/Dec/13 ]
@Jeff - you're right with NCBC-302 - it is caused by the same issue as here (asynchronous call in DefaultHttpClient's constructor that fails at some point, though for me first call to get something from Couchbase usually succeeded, only subsequent calls from a given ASP.NET MVC action failed like this)
Comment by Jeff Morris [ 13/Dec/13 ]
Tomasz -

Thanks for providing this info for the community. Are you using any DI frameworks (autofac, ninject, etc) to create and inject the Couchbase client? If so, which one?

In my testing I have only been able to replicate this when using a DI framework (autofac) - my workaround has been to create the client statically in the Global.asax and then reference it like so: MvcApplication1.CouchbaseClient.<methods>.

Thanks again,

Jeff
Comment by Tomasz Poradowski [ 16/Dec/13 ]
Small ASP.NET MVC 4 application using CouchbaseClient 1.3.0 that results in "InvalidOperationException: View by_post was mapped to a dead node, failing.", unless a different HTTP client than default is used.
Comment by Tomasz Poradowski [ 16/Dec/13 ]
@Jeff - I've just attached a sample MVC application (VS2013 Express for Web solution) that:
- uses CouchbaseClient 1.3.0 and CouchbaseModelViews.Framework
- follows general guidelines from Couchbase documentation (uses Repository pattern that creates a static client in RepositoryBase<T> class)
- uses "default" bucket and in order to test it - you need to create a document there as follows: { "type": "post", "title": "test post" }.
When main page is shown - list of posts is rendered and this is fine, however when you click on the link to see details - it fails with:

[InvalidOperationException: View by_post was mapped to a dead node, failing.]
   Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in e:\dev\workspace\LawFirmCouch\couchbase-net-client-1.3.0\src\Couchbase\CouchbaseViewHandler.cs:184
   Couchbase.<TransformResults>d__0`1.MoveNext() in e:\dev\workspace\LawFirmCouch\couchbase-net-client-1.3.0\src\Couchbase\CouchbaseViewHandler.cs:42
   ASP._Page_Views_Post_Show_cshtml.Execute() in e:\dev\workspace\LawFirmCouch\NCBC340\Views\Post\Show.cshtml:27
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
   System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +119
   System.Web.WebPages.StartPage.RunPage() +17
...

This isn't exactly the same problem, but the workaround is the same - to use RestSharpHttpClient, which you can test by uncommenting it in web.config (under /configuration/couchbase). Therefore I assume it may have the same origin.
Shall you need any more details please contact me.

Regards,
Tomasz
Comment by Tomasz Poradowski [ 16/Dec/13 ]
NCBC340_reproduced.zip now with full source code of Enyim.Caching (I deleted some source files accidentally in the first attachment)
Comment by Jeff Morris [ 17/Dec/13 ]
Thanks Tomasz -

This "[InvalidOperationException: View by_post was mapped to a dead node, failing.]" is actually a separate bug. The ticket to follow is here: http://www.couchbase.com/issues/browse/NCBC-337

-Jeff
Comment by Tomasz Poradowski [ 18/Dec/13 ]
I could not reproduce exactly the same problem in this test scenario as after finding the workaround I didn't spend any more time on it. I've just tested your fix to NCBC-337 (http://review.couchbase.org/#/c/31007/ applied by hand to current master branch of couchbase-net-client) and was hoping to finally be able to reproduce exception reported originally in this ticket - but unfortunately the same error persists ("view mapped to a dead node").
Comment by Tomasz Poradowski [ 18/Dec/13 ]
Ok, now I finally know how to reproduce this very issue - in my sample project attached to this ticket please modify NCBC340/Controllers/PostController.cs as follows:

    public class PostController : Controller
    {
        //
        // GET: /Post/
private PostRepository repository = new PostRepository();
private CommentRepository comments = new CommentRepository();

        public ActionResult Show(string id)
        {
var post = repository.Get(id);
post.Comments = comments.GetAllByPost(id);

            return View(post);
        }
    }

and like that it fails for the very first time when you go to details of a test "post" shown on main page. Therefore it seems that this asynchronous call in DefaultHttpClient's constructor does not finish on time. Subsequent calls to view details succeeded, so it's likely per design document or per view.
Comment by Tomasz Poradowski [ 27/Dec/13 ]
Though I'm not sure what impact this may have on performance - another workaround for this issue is to add following to web.config:

<couchbase>
...
    <httpClient initializeConnection="false" />
</couchbase>

This setting causes the problematic asynchronous call in DefaultHttpClient's constructor to be skipped.
Comment by Jeff Morris [ 27/Dec/13 ]
Tomasz -

This is great, we can test the performance between setting false/true.

>>I've just tested your fix to NCBC-337 (http://review.couchbase.org/#/c/31007/ applied by hand to current master branch of couchbase-net-client) and was hoping to finally be able to reproduce exception reported originally in this ticket - but unfortunately the same error persists ("view mapped to a dead node").

This should be resolved with that commit, so if your still seeing it then it's likely a bigger problem. Could you describe your environment (cluster size, etc)?

Thanks,

-Jeff
Comment by Tomasz Poradowski [ 27/Dec/13 ]
@Jeff - I assume your fix to NCBC-337 was fine, but that issue was also hit (though indirectly) by the same root cause as NCBC-340. My test environment is currently a single node running Couchbase Enterprise 2.2.0 on Win7 Pro, using 2GB RAM.




Detailed logging information (NCBC-270)

[NCBC-183] Docs should use Execute* methods with best practice error handling and logging in all examples Created: 14/Dec/12  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.0
Fix Version/s: backlog-1.0

Type: Technical task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 24h
Time Spent: Not Specified
Original Estimate: 24h
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/crud.html


 Description   
While proper error handling may be application-specific (some apps may be fine treating any error as "not found", while others need to handle those as very distinct cases, for example), I think the documentation the docs provide, and especially the tutorials and examples that people are likely to copy from, should perform explicit and thorough error handling and logging. Docs should make it easy for people to do it the right way.

The current .NET docs have an OK example in the ASP.NET tutorial, where at least the return value is checked and exceptions are rethrown. So that's a good start, although there's no evidence of testing result.Success (which could be false, even if result.Exception is null). There's no mention, too, of what happens higher up when the result code is returned, and no logging of errors that folks can cut and paste.

http://www.couchbase.com/docs/couchbase-sdk-net-1.2/brewerycrud.html

One method uses this:
    return result.StatusCode.HasValue ? result.StatusCode.Value : 0;

While the others just return result.StatusCode.Value with no test. Why is that? Where is that documented?


Then this example uses the non-Execute versions which don't allow for proper error handling. That may be OK in a very basic tutorial, but there should be a very clear and explicit pointer anywhere these are used that goes to a "Error handling with the .NET client" page that details why you shouldn't use those in most production code, and that you'll have a very hard time writing correct code unless you use the Execute* methods, and that also provides succinct and complete example for cut-and-pastability of correct error handling.

Even so, I'd prefer that the basic "hello world" tutorial use Execute* methods in the first place, so people who only skim the docs only see the correct way to do things.

http://www.couchbase.com/docs/couchbase-sdk-net-1.2/crud.html


 Comments   
Comment by Matt Ingenthron [ 17/May/13 ]
This is probably not something we want to do as written. We want the simple approach to be, well, simple. Future API will hopefully make this better.




[NCBC-378] Randomize Nodes when Responding to NotMyVBucket Requests Created: 30/Jan/14  Updated: 02/Jun/14

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

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





[NCBC-392] Standardize, Document and Change Logging Levels for Client Created: 14/Feb/14  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: 1.3.3
Fix Version/s: backlog-1.0

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