[NCBC-437] Publish docs for .NET April 2014 release Created: 18/Apr/14  Updated: 18/Apr/14

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

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





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

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

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

Attachments: PNG File Couchbase.png    

 Description   
sample documents:

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

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

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

c# code:

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

            
            return new KeywordList();
        }

Error Result:

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

Reason: attachments not supported in Couchbase

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







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

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

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

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

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

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

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

Thanks,

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

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




[NCBC-430] Docs: unclear text in .net API ref page Created: 21/Mar/14  Updated: 16/Apr/14  Resolved: 16/Apr/14

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


 Description   
The formatting of the number 253 is broken on the page under store methods;

http://docs.couchbase.com/couchbase-sdk-net-1.2/

Store Methods¶

The Store() methods add or replace a value in the database with the specified key.

The behavior of Store and ExecuteStore operations is defined by setting the first parameter to a value from the StoreMode enumeration.
    StoreMode.Add - Add a key to the database, failing if the key exists
    StoreMode.Replace - Replace a key in the database, failing if the key does not exist
    StoreMode.Set - Add a key to the database, replacing the key if it already exists

JavaScript can store numbers up to a maximum size of 2 53. If you are storing 64-bit integers within Couchbase and want to use the numbers through the Map/Reduce engine, numbers larger than 2 53 should be stored as a string to prevent number rounding errors.

 Comments   
Comment by Ruth Harris [ 04/Apr/14 ]
Hi Amy, you want to take this one?
Comment by Amy Kurtzman [ 07/Apr/14 ]
Sure, it's another lingering bug from the DocBook to markdown conversion.
Comment by Amy Kurtzman [ 07/Apr/14 ]
Fixed in version 1.3 and 1.2 documentation.




[NCBC-429] Documentation in tutorial mentions RESTsharp, which is no longer used/needed Created: 07/Apr/14  Updated: 16/Apr/14  Resolved: 16/Apr/14

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

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


 Description   
This section needs to be updated:
http://docs.couchbase.com/couchbase-sdk-net-1.3/#setting-up-a-project




[NCBC-435] Create suite of Mocks/Fakes for running unit tests in isolation Created: 12/Apr/14  Updated: 13/Apr/14

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

Type: Story 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   
As a tester/developer
I want a library of Mocks/Fakes
So that I can run the entire test suite *without requiring a CB instance

*There are some feasibility constraints to do this 100%. Likely, we will have two or more classifications of tests and they will have different environment requirements - i.e. integration tests will be run against a cluster and "pure" unit tests against the mocks/fakes. Note that we can use attributes (annotations) to define these classifiers.

 Comments   
Comment by Matt Ingenthron [ 13/Apr/14 ]
Definitely talk with Brett about CAVES on this one.




[NCBC-421] Refactor and Improve IO layer Created: 24/Mar/14  Updated: 12/Apr/14

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

Type: Story 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   
The current impl needs to be optimized - SocketAsynEventArgs are not being reused causing excessive GC.




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

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

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


 Description   
Provide support for SASL authentication.

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




[NCBC-434] add feature test ensuring that E2BIG is returned on append above 20MB Created: 07/Apr/14  Updated: 11/Apr/14

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

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.




[NCBC-388] Improve Nunit tests Created: 11/Feb/14  Updated: 07/Apr/14

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

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.




[NCBC-433] Doc: Troubleshooting guide is lacking. Created: 07/Apr/14  Updated: 07/Apr/14

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

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





[NCBC-432] Doc: Expand the maxPoolSize and minPoolSize description Created: 07/Apr/14  Updated: 07/Apr/14

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

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   
It would be good to expand the maxPoolSize and minPoolSize lines to expand that it is per a node in the cluster.




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

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

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-58] Way to determine which Servers are active Created: 05/Jun/12  Updated: 04/Apr/14

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

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

Issue Links:
Dependency

 Description   
Can there a way to determine if there are no available Couchbase servers?
There should be someway to check the status of the cluster from the Client.


 Comments   
Comment by Hari Subramaniam (Inactive) [ 28/Jun/12 ]
along same lines, another customer requests enhancement to the .NET client to include the following methods
getUnavailableServers
getAvailableServers

These methods are already available in the Couchbase JAVA SDK. Would like .NET SDK to provide the same functionality
Comment by Matt Ingenthron [ 12/Feb/13 ]
This RFE will remain open for that.




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

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

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-425] SetSocketOption throws exception under mono runtime Created: 28/Mar/14  Updated: 01/Apr/14  Resolved: 01/Apr/14

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

Type: Bug Priority: Major
Reporter: Bowie Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: MacOSX, mono
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: mono runtime


 Description   
the code "socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, true);" in SocketPool.cs throws exception under mono runtime

The correct code should like this:

LingerOption lingerOption = new LingerOption (true, 10);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);


 Comments   
Comment by Jeff Morris [ 28/Mar/14 ]
Thanks for creating this Bowie!
Comment by Jeff Morris [ 01/Apr/14 ]
http://review.couchbase.org/#/c/35163/




[NCBC-428] Refactor URI creation across all HTTP endpoints Created: 01/Apr/14  Updated: 01/Apr/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   
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.




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

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

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


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

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

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

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




[NCBC-416] Method overloading ambiguity with named parameters Created: 13/Mar/14  Updated: 31/Mar/14

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

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

Issue Links:
Relates to

 Description   
"method overloading is differentiated with return type only hence wrong method was invoked from
line 1311: public IView GetView(string designName, string viewName)
In order to fix this i have added named parameter from the correct method definition."

Ref: https://github.com/couchbase/couchbase-net-client/pull/13


 Comments   
Comment by Jeff Morris [ 13/Mar/14 ]
We need to ensure that this is the only case.
Comment by Wayne Siu [ 31/Mar/14 ]
Hi Jeff,
Can you help define the test case(s) for this issue? I'll have SDKQE to script and automate it afterward. Thanks.
Comment by Jeff Morris [ 31/Mar/14 ]
Wayne -

Assume a view as such:

function (doc, meta) { emit(meta.id, null); }

When you iterate over the results of the client, it should return a list of the keys. It currently returns null, even though the TotalRows will return a value > 0 if there are keys available.

var view = client.GetView("utils", "allKeys");
foreach(var row in view){
//this should iterate through the keys.
}

I'll add a unit test that covers it,

-Jeff




[NCBC-365] Incoming and Outgoing Data Serialization Created: 13/Jan/14  Updated: 31/Mar/14  Due: 27/Jan/14

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

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


 Description   
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



 




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

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
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   
The config thread uses the information from the client configuration to bootstrap, however after bootstrapping this information (cluster topology) may change if nodes are added and/or removed. This ticket is to handle the case when the node that the config thread is listening to, goes offline.




[NCBC-422] Check that a CCCP config's rev# is greater than the current Created: 24/Mar/14  Updated: 31/Mar/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





[NCBC-426] Memory leak and application pool shutdown after Impersonation error Created: 28/Mar/14  Updated: 28/Mar/14

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

Type: Bug Priority: Critical
Reporter: Alain Quirion Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 2008 Server R2

Attachments: Text File error-log Bug 14h 13min 31sec.txt    

 Description   
I'm using client version 1.3.4 and server version 2.1.1

After several investigation and some help from a community member, here is the conclusions I have.

My application pool running my web app inside the windows process (w3wp) has a memory leak of some kind only when I use couchbase. Without couchbase, the process is really stable (private memory around 400Mb, CPU rarely over 75, most of the times around 10). But when I do use couchbase, private memory doesn't stop growing up to 900Mb and the CPU is almost always over 75 (some from sigar and erl process, and some from w3wp).

I have 3 web server in a farm and I installed couchbase server on all of them so the 3 web servers can make calls to all 3 couchbase server which in my case are the same servers. Maybe this is the problem but I tried using only 1 server for couchbase and 2 web servers with the exact same result so I guess this was not the problem.

After a while, even with a really small load on the server (couple users), the application pool process throws an error.

An unhandled exception occurred and the process was terminated. Exception: System.TypeInitializationException Message: The type initializer for 'Enyim.Caching.MemcachedClient' threw an exception. StackTrace: at Enyim.Caching.MemcachedClient.Finalize() InnerException: System.Web.HttpException Message: An error occurred while attempting to impersonate. Execution of this request cannot continue.

I also receive a system warning in my event viewer saying this :

A process serving application pool 'my application pool name' suffered a fatal communication error with the Windows Process Activation Service. The process id was '6944'. The data field contains the error number.

The application pool process restarts at the same time.

This happens every 20-30 minutes with a small load. But with a big load, this happens every 2-3 minutes and cause my application pool to stop. I can disable the rapid fail protection to be sure my application pool never stops but this doesn't solve my problem.

My web app only does Get, Store, Remove calls. My CouchBaseClient is a static member of a singleton object and is used by the data access layer before and after calls to the database (if needed). When i go check the couchbase console, I see that the couchbase server does not have a lot of data. Around 2000 objects and only 3-4Mb under a big load. I also have around 500-900 Page faults (no minor no major).

I do not use impersonation anywhere. I even tested it to see which user is running my app before calling a couchbaseclient method and the user is "IIS APPPool\My Application Name" which is normal with IIS7.

Does Couchbase/memcached use impersonation somewhere and this user should have specific privileges ? The community member who helped me think that for some reason a problem could occur inside memcached during impersonation (why ? I dont know) and this would cause all TCP connection to close...which could lead to a severe exception because my application pool user doesn't have the rights to do this.

Which privileges should I give to my user or why there's an impersonation problem inside MemcachedClient.Finalize.

The community member also told me that the Finalize method should not be called if .Dipose() is called before. So I added the call to .Dipose() inside the Application_End method but that didn't change anything. Why and when would .Finalize be called in the first place ? With a better anwser to that, I could add .Dispose somewhere else.

Finally, I added Log4Net and was able to log the error.

Also, I did increase the number of ephemeral ports allowed on the server to 60 000. In fact, I answered Yes when ask during installation process and restart the server. I don't know where to check if it was done properly or not.

In the attached log file, the error happens at 14h 13mins 31secs




[NCBC-424] add SSL support in support of Couchbase Server 3.0 Created: 27/Mar/14  Updated: 27/Mar/14

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

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

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

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




[NCBC-423] Add couchbase cluster compatibility to documentation Created: 25/Mar/14  Updated: 25/Mar/14

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

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

Issue Links:
Gantt: finish-start
has to be done after JCBC-438 Add table for 1.8, 2.x and 3.x compat... Open

 Description   
We should probably specify for this given major.minor of the SDK, one of three things for Couchbase Cluster releases:
- unsupported
- supported
- supports all features

These might be an 'x', '—' and "✓" in a table, or whatever Amy comes up with.

This is, in part, planning for 3.0 including beta.

This should be based on the work done in JCBC-438, so it's blocked by that issue.




[NCBC-419] A Linq implementation for N1QL Created: 24/Mar/14  Updated: 24/Mar/14

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

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

Epic Name: Linq Provider
Epic Status: To Do




[NCBC-350] Develop "View Operations" component of client fir .NET 2.0 SDK Created: 12/Dec/13  Updated: 24/Mar/14  Resolved: 24/Mar/14

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

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: dotnet-sdk-2.0-dev
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Ticket for managing and logging sub tasks while developing the .NET 2.0 client

 Comments   
Comment by Jeff Morris [ 24/Mar/14 ]
https://github.com/couchbaselabs/couchbase-csharp-client-ng/commit/b233751d4d8de99b3aee9eccc915de4ec715d346




[NCBC-410] Subclass KeyMapper for VBucket and Ketama based Key mapping Created: 10/Mar/14  Updated: 19/Mar/14  Resolved: 19/Mar/14

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

Type: Story Priority: Major
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-411 Develop VBucket based Keymapper Technical task Resolved Jeff Morris  
NCBC-412 Develop Ketama based Keymapper Technical task Closed Jeff Morris  
NCBC-413 Refactor ConfigContext so that keymap... Technical task Resolved Jeff Morris  

 Description   
As a developer
I want both VBucket and Ketama key mappers
So that I can use Memcached and Couchbase buckets from the same client




[NCBC-367] Design and Implement Base Operation Functionality Created: 13/Jan/14  Updated: 19/Mar/14  Resolved: 19/Mar/14

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

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   
As a developer,
I want base Couchbase operations for Get, Set, etc
So that I can store and retrieve data into and out of Couchbase

Acceptance Criteria
-Fundamental binary operations
-Basic memcached binary protocol message framing
-Unit tests




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

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

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

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





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

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

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

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-370 Develop File System Based Provider Im... Technical task Resolved Jeff Morris  
NCBC-371 Develop a Streaming HTTP Server Confi... Technical task Resolved Jeff Morris  
NCBC-372 Develop a CCCP Server Configuration P... Technical task Resolved Jeff Morris  

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

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




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

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

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

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

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

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

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




[NCBC-414] Develop MemcachedBucket class for non-persistent, in-memory operations Created: 10/Mar/14  Updated: 16/Mar/14  Resolved: 16/Mar/14

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

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   
Couchbase supports both persistent (Membase buckets) and volatile storage (Memcached buckets). This ticket is to develop a class to support volatile operations.

 Comments   
Comment by Jeff Morris [ 16/Mar/14 ]
Get and Insert working for string values. Will continue to build on functionality and support for all data types later.




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

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

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





[NCBC-404] system.threading.ThreadPool doesn't work with Couchbase client Created: 25/Feb/14  Updated: 13/Mar/14  Resolved: 13/Mar/14

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

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


 Description   
When using the system.threading.ThreadPool standard library (and the ThreadPool.QueueUserWorkItem to execute operations). Operations just suddenly stop after about 67-70 iterations of a for loop to create data. There is no error code, error message, or an non-zero exit code. It just stops. This occurs when creating a connection within the Thread worker, and also sharing a connection outside the worker (both have same behavior).

So, they are curious about how to go about multi-threading operations...

 Comments   
Comment by Jeff Morris [ 25/Feb/14 ]
Jasdeep -

Would it be possible to include an example of this behavior?

-Jeff
Comment by Jasdeep Jaitla [ 25/Feb/14 ]
I requested it, but it was end of day already. I am sure they will do it tomorrow.
Comment by Jasdeep Jaitla [ 13/Mar/14 ]
Closing this because the customer wasn't able to reproduce.
Comment by Jasdeep Jaitla [ 13/Mar/14 ]
Yeah not sure, the same code suddenly worked, but if he reports again, I'll re-open.
Comment by Jasdeep Jaitla [ 13/Mar/14 ]
Thanks!




[NCBC-399] Standardize to SPACES for indenting in source files Created: 17/Feb/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

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

Type: 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 currently have a mixture of tabs and spaces within the files. This fix is to standardize on SPACES as opposed to tabs.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Pushing this to next release "just in case" it doesn't go as planned - this will give me more time to resolve any "just-in-case" issues, instead of doing it at the end of a dev cycle.
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34397/




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

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

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

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

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

The exception is being threw while i call

client.GetView(designName, viewName)

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

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

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

Full exception

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

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


Definition of View

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

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


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




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

[NCBC-413] Refactor ConfigContext so that keymapping details are contained only within the IKeyMapper impl Created: 10/Mar/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

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

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, the IConfigInfo impl creates the key mapping data structures (VBuckets) - this should be handled by the IKeyMapper impl itself.




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

[NCBC-411] Develop VBucket based Keymapper Created: 10/Mar/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

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

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





[NCBC-368] Randomize Bootstrap Node Created: 14/Jan/14  Updated: 11/Mar/14  Resolved: 14/Jan/14

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

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

Issue Links:
Duplicate

 Description   
Randomizes the selection of the bootstrap node so that all clients do not use the same node, which can cause "stampeding herd" and lopsided resource utilization in large clusters or when cluster supports a large number of clients.

This ensures that boot-strapping is distributed over all of the urls in the configured boot-strap list.

 Comments   
Comment by Jeff Morris [ 14/Jan/14 ]
http://review.couchbase.org/#/c/32379/




[NCBC-406] Publish docs for .NET March 2014 release Created: 27/Feb/14  Updated: 10/Mar/14  Due: 04/Mar/14  Resolved: 10/Mar/14

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

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


 Description   
Edit and publish guide and autodocs.




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

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

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-340] System.InvalidOperationException an asynchronous module or handler completed while an asynchronous operation was still pending Created: 04/Dec/13  Updated: 10/Mar/14

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

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: 10/Mar/14

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

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-392] Standardize, Document and Change Logging Levels for Client Created: 14/Feb/14  Updated: 10/Mar/14

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

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

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-394 Add 'Warn' Level Logging to 'core' co... Technical task Resolved Jeff Morris  
NCBC-395 Assign Each Client Instance and Ident... Technical task Resolved Jeff Morris  
NCBC-396 Log the creation and destruction of c... Technical task Resolved Jeff Morris  
NCBC-397 Document changes to logging levels in... Technical task In Progress Jeff Morris  

 Description   
Most of the logging on the client is set to the Debug level, which traces all operations and their paths, config handling, heartbeat monitoring, cluster reconfiguration, etc. This task is to a) standardize and document the log levels and b) apply the changes to the client. These should be broken into sub-tasks.




Detailed logging information (NCBC-270)

[NCBC-12] logging level documentation needed Created: 05/Dec/11  Updated: 10/Mar/14

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

Type: Technical task Priority: Minor
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, there's insufficient information on how to change the logging level to see what's happening when diagnosing an issue.

 Comments   
Comment by Matt Ingenthron [ 05/Dec/11 ]
From Bin:

Attila added more logging for operation Delete/Get/Set at https://github.com/enyim/EnyimMemcached/commit/768fb5956f2f69b6c57a484a3aee367dc0d42ba0#Enyim.Caching/Memcached/Protocol/Binary/GetOperation.cs.
 
The customer needs to get the latest Enyim library and build with symbol ‘EVEN_MORE_LOGGING’. See attached picture for illustration.
At the same time, they need to set the log level to DEBUG in their configuration file.
Comment by John Zablocki (Inactive) [ 02/Mar/12 ]
I added a section "Configuring Logging" to the "Getting Started" document - http://www.couchbase.com/develop/net/current. This doesn't cover the build with EVEN_MORE_LOGGING though...
Comment by John Zablocki (Inactive) [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 07/Feb/13 ]
John, does this doc need to be updated to cover EVEN_MORE_LOGGING?

This is related to NCBC-225 as well.
Comment by Jeff Morris [ 10/Mar/14 ]
I am going to be consolidating these into a single ticket, since there several regarding the lack of documentation for logging.




Detailed logging information (NCBC-270)

[NCBC-225] Docs: Recommendations for which logging level to be set during testing/staging/production and examples of messages at each level Created: 07/Feb/13  Updated: 10/Mar/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.1
Fix Version/s: 1.3.5

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


 Description   
Customer read http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-logging.html, but still not clear on what level we recommend to get meaningful output from, and examples of what log messages that would see under certain situations.




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

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

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-36] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 06/Apr/12  Updated: 10/Mar/14

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

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-376] Refactor Unit Test Project-Part 2 Created: 30/Jan/14  Updated: 10/Mar/14

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

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-269] Link broken to nlog configuration file Created: 30/May/13  Updated: 10/Mar/14

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

Type: Bug 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   
The link at the bottom of this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-logging.html

Points to: http://nlog-project.org/wiki/Configuration_file, which returns a 404

 Comments   
Comment by Jeff Morris [ 10/Mar/14 ]

This line needs to be updated: "See for more NLog configuration details" using this link: https://github.com/nlog/nlog/wiki

http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-logging




[NCBC-363] Implement Client Configuration Management Created: 13/Jan/14  Updated: 10/Mar/14  Due: 27/Jan/14

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

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


 Description   
As a developer,
I want a provider based configuration client management system
So that the client can be configured in a way which matches the my given use-case

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

 




[NCBC-14] building under CI Created: 12/Jan/12  Updated: 10/Mar/14

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

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

 Comments   
Comment by John Zablocki (Inactive) [ 13/Jan/12 ]
Currently building under CI.
Comment by Saakshi Manocha [ 27/Jan/14 ]
refer SDKQE-415 for progress




[NCBC-4] default logging on Enyim should include INFO level logging on connections being dropped Created: 03/Aug/11  Updated: 10/Mar/14

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

Type: Improvement Priority: Major
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   
Per an email discussion, at least when using the COM wrapper, if not when using .NET calls directly, there may not be logging by default about connection drops/reconnects.




[NCBC-393] Deprecate or Rewrite MulitGet Operations Created: 14/Feb/14  Updated: 10/Mar/14

Status: Open
Project: Couchbase .NET client library
Component/s: docs
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
Time Spent: Not Specified
Original Estimate: Not Specified





Implement Server Configuration Management (NCBC-362)

[NCBC-372] Develop a CCCP Server Configuration Provider Created: 15/Jan/14  Updated: 10/Mar/14  Resolved: 10/Mar/14

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

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   
See CCCP: http://www.couchbase.com/wiki/display/couchbase/Cluster+Configuration+Carrier+Publication

 Comments   
Comment by Jeff Morris [ 12/Feb/14 ]
Dependent on this task: http://www.couchbase.com/issues/browse/NCBC-366

It don't see how I can create the dependency within Jira with our Jira configuration.
Comment by Jeff Morris [ 03/Mar/14 ]
This is nearly complete. There are some corner cases that need to be addressed, but they can be done in later sprints. I'll do one final commit today and close it.
Comment by Jeff Morris [ 10/Mar/14 ]
Some minor tweaks are in order, but this is largely done. Each case that comes up will be a separate ticket, so that we don't have tickets with multiple resolutions over time.




[NCBC-77] Need details on "StoreMode" values Created: 26/Jun/12  Updated: 10/Mar/14

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

Type: Bug 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   
In this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-retrieve-set.html

There is no detail on what the available store modes are (set/add/replace)

 Comments   
Comment by John Zablocki (Inactive) [ 10/Jan/13 ]
Pull request pending in docs.
Comment by John Zablocki (Inactive) [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 06/Feb/13 ]
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-store-set.html

Hey John, I think this page could still use a little cleaning up.

Many of the API calls are listed as: "object.Store(storemode, key, value, expiresat)". and the descriptions are all the same as well. Some of the API calls do not match the method they are describing (see the very last one for example)

Can we include some description of what the user should expect to see when each of them fails?




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

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

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

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-261] Use an enumeration instead of integers for return codes Created: 14/May/13  Updated: 03/Mar/14  Resolved: 03/Mar/14

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

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


 Description   
Customer suggested an improvement of using an enumeration for the operation results instead of integer values.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
http://review.couchbase.org/#/c/34125/
Comment by Jeff Morris [ 03/Mar/14 ]
The only we to do this without breaking the existing interface is to add extension methods for doing this.




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

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

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


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

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

 

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




[NCBC-409] Move 2.X repo to couchbaselabs Created: 03/Mar/14  Updated: 03/Mar/14  Resolved: 03/Mar/14

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

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   
Move 2.X repo from my personal github account to couchbaselabs.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
https://github.com/couchbaselabs/couchbase-csharp-client-ng




[NCBC-408] Retry Node Check during View Operations Created: 27/Feb/14  Updated: 03/Mar/14  Resolved: 03/Mar/14

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

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   
During a View operation, the client will look for a node to use to execute the operation against. In certain cases (rebalance, etc) the list of nodes may be empty. This will add an additional check if a candidate node is not found before the client gives up and returns a "View {0} was mapped to a dead node, failing." error.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
http://review.couchbase.org/#/c/34123/




[NCBC-407] Retry View Operations When Specific Error Cases are Encountered Created: 27/Feb/14  Updated: 27/Feb/14  Resolved: 27/Feb/14

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

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://www.couchbase.com/issues/browse/MB-10261

 Comments   
Comment by Jeff Morris [ 27/Feb/14 ]
Patchset: http://review.couchbase.org/#/c/34007/t:




[NCBC-405] add discussion of timeout accuracy and implementation Created: 27/Feb/14  Updated: 27/Feb/14

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

Type: Improvement Priority: Major
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   
Since our timeouts are only as accurate as the underlying APIs/subsystems we use, we should document this for our users so they can plan accordingly. For instance, if processes aren't scheduled for a long period of time owing to CPU or memory contention... or in some cases IO doesn't happen for a long time and our timeout is IO event driven, we may not timeout to the application until later.


 Comments   
Comment by Jeff Morris [ 27/Feb/14 ]
We also may want to discuss specific timeouts...since there are several "timeouts" at the SDK level: socket recv timeout, operation timeout, queue timeout (waiting for a socket to become available), send timeout, etc. Not all are equal.




[NCBC-403] Update 2.X to use Apache Common Infrastructure Libraries for .NET Created: 24/Feb/14  Updated: 26/Feb/14  Resolved: 26/Feb/14

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

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   
For this ticket: https://www.couchbase.com/issues/browse/NCBC-102 I did a custom API for logging, in retrospect it was a poor decision. This ticket is swap out the custom implementation with
http://netcommon.sourceforge.net/

This is a trivial task since the API are symmetric respect to interfaces.

 Comments   
Comment by Jeff Morris [ 26/Feb/14 ]
Completed.




[NCBC-398] Support Json.NET >= 6.0.1 Created: 17/Feb/14  Updated: 26/Feb/14  Resolved: 26/Feb/14

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

Type: New Feature Priority: Major
Reporter: Chad Kreimendahl Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: All .NET


 Description   
The most recent changes to the nuget package require an old version of Json.NET (<= 5.0.8). For that reason, it makes it impossible for us to upgrade any versions of this tool going forward, since we have other tools that require the more current version (6.0.1).

It should be fairly easy to support >= 6, as the changes we've seen are almost entirely new features... other than some minor deprecation.

 Comments   
Comment by Jeff Morris [ 17/Feb/14 ]
Hi Chad,

We had to restrict the version the JSON.NET to <=5.08 due to a last minute bug report that Json.NET 6.0.1 "broke" the 1.3.3 build. Json.NET released 6.0.1 when we were in the final packaging stages of the release (post QA), so it didn't make it's way into 1.3.3. This was a temporary restriction until the next release of the client as stated in the release notes: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-release-notes

Here is the ticket for inclusion in 1.3.4 release: http://www.couchbase.com/issues/browse/NCBC-383

You have a couple of options:
a) Hold off until 1.3.4
b) Build off the github source once the issue is resolved - you can track progress using this Jira issue.
c) Resolve this issue yourself and submit a pull request from github :)

Thanks,

Jeff
Comment by Jeff Morris [ 26/Feb/14 ]
http://review.couchbase.org/#/c/33938/




[NCBC-402] Data not persisted using observe when a node is removed Created: 21/Feb/14  Updated: 22/Feb/14

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

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


 Description   
The second problem is that even with the above bug fixed(I fixed and recompiled the client), I'm still losing newly written data in an event of node restart, no matter what the PersistTo ReplicateTo values are set to.

see: https://www.couchbase.com/issues/browse/NCBC-401

 Comments   
Comment by Matt Ingenthron [ 21/Feb/14 ]
Note that the only way Durability Requirements can behave is give you a notification that the item has changed. It depends on what is meant with "node restart" here though.

It's a bit dated and needs to be updated, but see: http://www.couchbase.com/wiki/display/couchbase/Observe
Comment by Haik Nazlian [ 22/Feb/14 ]
"Node restart" means that I'm shutting down the VM, while data is being written. Always losing data even if PersistTo is set to 2.

To my understanding the cause for this is the lack of retry functionality on the Set operation.

The Set operation should implement a logic where it waits for a successful Observe operation and in case of a failure, the Set operation should write the data again and mark the old data as deleted.
Comment by Jeff Morris [ 22/Feb/14 ]
Sounds like a bug in the implementation. Thanks for the in-depth description of the issue.




[NCBC-401] Client crashes during observe, in an event of a node failure. Created: 21/Feb/14  Updated: 22/Feb/14

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

Type: Bug Priority: Critical
Reporter: Haik Nazlian Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Win


 Description   
For the past week, I'm benchmarking 2.5.0 with .NET Client and the things are not looking good.
First, there is bug causing the client to crash. This happens during Observe operation, in an event of node failure simulation. This is caused by poor coding of the Couchbase.ObserveHandler.CheckNodesForKey() method, that does not implement Try/Catch and retry functionality.
Here is the full info:
http://www.couchbase.com/communities/q-and-a/client-crashes-during-observe-event-node-failure#comment-1556
---------------------
The second problem is that even with the above bug fixed(I fixed and recompiled the client), I'm still losing newly written data in an event of node restart, no matter what the PersistTo ReplicateTo values are set to.
-------------------
The third problem is that the .NET client is SUPER SLOW compared to the C client. I have tested both in the same environment and the C client is about 100 times faster.


 Comments   
Comment by Jeff Morris [ 21/Feb/14 ]
Hi Haik -

I am exactly which bug this ticket is for, but it looks like you have #1 resolved - this is an open source project so please submit a pull request if you have found and fixed a bug :)

For the second issue, this should probably be a separate ticket: https://www.couchbase.com/issues/browse/NCBC-402

The third issue is a little more difficult...it's hard to compare these things, but I don't doubt the libcouchbase is faster than the client. There are several reasons for this, noticeably that the uses .NET client synchronous I/O and the 1.X client has been around for several years and has "morphed" into it's current form. The good news is that we are working on a new version dubbed 2.X. You can read more about it here: http://blog.couchbase.com/introducing-couchbase-net-sdk-20-development-blog-series

Thanks,

Jeff



Comment by Haik Nazlian [ 22/Feb/14 ]
You have a typo in the ticket link, it should go to https://www.couchbase.com/issues/browse/NCBC-402
Thanks for opening it!

About the 2.X Client: After examining all the clients, I wonder if wouldn't it be more sensible to use the libcouchbase so that it will be the core of the .NET client?
In this way all the clients will share the same unified core and will only have to provide an API.




Comment by Jeff Morris [ 22/Feb/14 ]
No problem and thanks for mentioning the typo :)

 As for using libcouchbase as the core, it's something that certainly been discussed. Actually the Java and the .NET clients are the two SDK's that don't use libcouchbase as a core. There are a couple reasons for this: a) history - both were developed before libcouchbase, b) capable platforms - java and .net are platforms that provide rich libraries for IO, threading etc c) since we are community driven, we want to provide SDK's that support community involvement, contributions - providing an SDK written 100% in the communities native platform helps to achieve these goals. d) some of those performance gains you see with C client will be mitigated marshaling between the managed/unmanaged worlds.




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

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

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

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

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

The test solution I created is attached.

Thanks!

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

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

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




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

[NCBC-394] Add 'Warn' Level Logging to 'core' configuration classes Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

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

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 [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33694/




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

[NCBC-396] Log the creation and destruction of client instances Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

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

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   
This is easy to add to the creation of a client, but a bit more difficult to log the destruction of a client instance without adding Dispose and Finalizer methods.

 Comments   
Comment by Matt Ingenthron [ 14/Feb/14 ]
I'd recommend strongly logging at INFO level the startup of the client including any parameters. Since we take params from both config files and programmatically, it'd be useful to record what's actually being used at startup time and in the logs. Saves time when diagnosing.
Comment by Jeff Morris [ 14/Feb/14 ]
Agreed, I shall do so. Thanks for the input.
Comment by Jeff Morris [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33693/




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

[NCBC-395] Assign Each Client Instance and Identifier Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

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

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   
Assign an identifier to each client instance so that specific client instances can be traced in log files.

 Comments   
Comment by Jeff Morris [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33691/




[NCBC-383] Update to Latest (stable) version of JSON.NET Created: 04/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

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

Type: Task Priority: Major
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   
The client currently is fixed at version 4.5.11 which was released in November 2012. This ticket is to upgrade the 1.X client to the latest stable version of JSON.NET (newtonsoft) either 6.X.X or 5.0.8.


 Comments   
Comment by Jeff Morris [ 17/Feb/14 ]
Using community supplied ticket for this issue:
https://www.couchbase.com/issues/browse/NCBC-398




[NCBC-381] Ensure that Nuget Installs Newtonsoft <= 5.0.8 Created: 04/Feb/14  Updated: 14/Feb/14  Resolved: 04/Feb/14

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

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   
Restrict the Newtonsoft.JSON version to 4.5.11

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




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

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

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


 Description   
As a network operator,
I want clients which I support, to minimize network and hardware/software resources
So that clients do not consume or use large number of socket connections, etc which impact overall network reliability

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




 

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




Implement Server Configuration Management (NCBC-362)

[NCBC-371] Develop a Streaming HTTP Server Configuration Provider Created: 15/Jan/14  Updated: 11/Feb/14  Resolved: 11/Feb/14

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

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   
See UNIBrow: http://www.couchbase.com/wiki/display/couchbase/Uniform+Bootstrap+Operation

 Comments   
Comment by Jeff Morris [ 11/Feb/14 ]
This is "mostly complete" and uses the "terse" uri if it's available, otherwise it falls back to the old streaming config. Future work to be done includes implementation of the dispose method and more importantly maintaining an updated cluster list after bootstrapping. It does handle adding and removing nodes with the exception of the initial bootstrap url, which could be remedied by maintaining and updated cluster list and trying another server in the list.




[NCBC-390] 1.3.3 release notes Created: 11/Feb/14  Updated: 11/Feb/14  Resolved: 11/Feb/14

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

Type: Task Priority: Major
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: releasenote
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-release-notes


 Description   
Missing the release notes for 1.3.3.

 Comments   
Comment by Jeff Morris [ 11/Feb/14 ]
The release notes are for 1.3.3, the title is wrong. Will fix.
Comment by Jeff Morris [ 11/Feb/14 ]
https://github.com/couchbaselabs/docs-ng/pull/92

It will be live after Amy merges the PR.




[NCBC-389] 1.3.3 getting started is still 1.3.1 Created: 11/Feb/14  Updated: 11/Feb/14  Resolved: 11/Feb/14

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

Type: Task Priority: Major
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: gettingstarted
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/communities/net/getting-started


 Description   
The following need to be updated to 1.3.3

bar/panel on the left
download link
text before the download link
release notes link

 Comments   
Comment by Jeff Morris [ 11/Feb/14 ]
There are two getting started pages:
1-http://www.couchbase.com/communities/net/getting-started
2-http://docs.couchbase.com/couchbase-sdk-net-1.3/#getting-started

I am not sure why, but the second is linked to the http://www.couchbase.com/communities/net/ landing page. I updated both :)




[NCBC-102] Provide Standardized Logging Created: 24/Aug/12  Updated: 07/Feb/14  Resolved: 07/Feb/14

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

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


 Description   
Provides the consistent level of logging provided by other SDKs. Provide more information on configuring logging for developers.




[NCBC-13] generating shippable artifacts Created: 12/Jan/12  Updated: 07/Feb/14

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

Type: Task Priority: Major
Reporter: Matt Ingenthron 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 [ 29/Oct/13 ]
Matt -

Can you provide more detailed expectations regarding what exactly should be delivered for this ticket?

Thanks,

Jeff
Comment by Matt Ingenthron [ 04/Dec/13 ]
(replied via email long ago, just copying the comment here)

This was meant to mean that we have CI generating shippable artifacts. I still think this should be done, but I'll leave it to your judgement.
 
I know it's less important with something like .Net versus say C code, but toolchain matters. Meaning, there can be subtle differences based on versions of the software that builds the artifacts we ship. We don't want to accidentally have your product change because a patch was applied, for instance.
 
We should have a documented, change-controlled toolchain and use it to generate shippable artifacts under CI.
 




[NCBC-258] Improvement needed around documentation of using singleton client Created: 07/May/13  Updated: 07/Feb/14

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

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


 Description   
This has been coming up more and more lately. Apparently customers are not seeing or understanding the need for using a singleton client, even in their very basic testing.

Additionally, all of the tutorial and API examples in the documentation show the creation of a client for every operation and so tend to reinforce the bad habits.

Can we make an effort around identifying and improving the visibility of this very painful issue?

 Comments   
Comment by John Zablocki (Inactive) [ 07/May/13 ]
See "Instantiating the Client" - http://www.couchbase.com/develop/net/current

See http://www.couchbase.com/docs/couchbase-sdk-net-1.2/stage3.html in the Tutorial.

I think that's pretty clear, no?
Comment by Perry Krug [ 07/May/13 ]
Yes, I've seen both of those...but users are still missing it with wild frequency which is causing support cases to be logged and disruption to the sales process (not to mention the unknown impact to users who don't tell us they're having problems) so I'm asking for creative ways to make it a bigger deal. Even making the text on http://www.couchbase.com/develop/net/current into an explicit "note" would help call attention to it.

What about a ".NET best practices" page? Or "troubleshooting common performance issues with .NET"?
Comment by Perry Krug [ 08/May/13 ]
John, the customer pointed me to this page which does seem to show a client being created more often that we would normally recommend: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html. I presume there are other places though I haven't looked through.
Comment by John Zablocki (Inactive) [ 08/May/13 ]
This example is meant to be a standalone, run once console app. So it doesn't actually create the client more than we would recommend. This example is a highly contrived "Hello, World" type of app. So I don't think it would make sense to include another singleton layer, when the client is only created once during the life of the app's execution. I could see how if that's the only code one read, it would not fully detail the proper usage. The right answer might be to implement a layer of abstraction over the client creation, via a factory or something similar...
Comment by Perry Krug [ 08/May/13 ]
That's fair enough John. Maybe it's enough to make a bold note on that page to say "you should create a singleton"
Comment by John Zablocki (Inactive) [ 24/May/13 ]
Deferring this for 1.2.8, to figure out what the best way to address client creation docs for trivial samples.




[NCBC-379] Create best practices about using .net SDK Created: 31/Jan/14  Updated: 07/Feb/14

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

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


 Description   
Hi, Jeff

Based on our discussion, create a jira for you to create best practices.

Thanks
Larry




[NCBC-260] Improve discussion around using store versus executestore Created: 08/May/13  Updated: 07/Feb/14

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

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


 Description   
From a user:

Another thing I have seen is using set and exeuteset method usage. When in samples we are using set, it is not very clear that it might fail due to memory limitation and instead of using set we should use executeset and lookout for result and if it is fail due to memory issue than we should try again in few millisecond so couchbase do memory clean-up in mean time for new data.
 

 Comments   
Comment by Jeff Morris [ 30/Jan/14 ]
I think these appendix notes satisfy this request? http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-working-with-operation-results
Comment by Perry Krug [ 31/Jan/14 ]
That appendix is good, but I would say that our own examples in the documentation should show the "best practices" and they currently do not use the execute* operations. Can we get a review of the examples and help guide users who are doing copy-paste in the right direction?
Comment by Jeff Morris [ 31/Jan/14 ]
Ok, I am going to push this to 1.3.3 then and include subtasks for a review of current examples and "best practices" then.




[NCBC-387] Use Sandcastle (or equivalent) to Generate Auto Docs for 1.X Client Created: 07/Feb/14  Updated: 07/Feb/14

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

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-223] Check for SetTcpKeepAlive at runtime for Mono support Created: 05/Feb/13  Updated: 07/Feb/14

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

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


 Description   
Mono doesn't support this method on the ServicePointManager.




[NCBC-162] Handle "no active vbucket" view failure Created: 23/Nov/12  Updated: 07/Feb/14

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

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Enyim master (rev: 6590b2643c62059e6f2418ccc5bea8c58326dfbc <- master at time of writing)
Couchbase master (rev: e3de5459bfc0b5efd1eb906a99e903990a3fc2ce <- master at time of writing)
Server 1941


 Description   
Presumably the client should try the view on another node..

In general we should have a unified exception class for view errors the client can understand.. InvalidOperationException is not very helpful or descriptive (nor is it very catchable.. though it was probably initially placed as a stub)..

[INFO 76.59 cbsdk.scenario failover.py:149] Ramp for 5 seconds..
[INFO 81.60 cbsdk.scenario failover.py:157] No service specified..
[ACTION 81.60 cbsdk.scenario failover.py:160] Failing over nodes [ip:10.3.121.207 ssh_username:root]
[ACTION 81.60 cbsdk.cluster.cluster cluster.py:695] Failing over node ip:10.3.121.207 ssh_username:root
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 143
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 112
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 144
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 38
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run() in \\vboxsrv\src\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run() in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 143
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 112
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 144
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 38
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run() in \\vboxsrv\src\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run() in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..





[NCBC-386] .NET February 2014 documentation release Created: 05/Feb/14  Updated: 06/Feb/14  Resolved: 06/Feb/14

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

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


 Description   
Edit and publish updated documentation.




[NCBC-41] As a .NET developer, I have an API that allows me to access all of the features of TAP so that I can make use of all of the powers of Couchbase. Created: 10/Nov/10  Updated: 05/Feb/14  Resolved: 07/Oct/13

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

Type: New Feature Priority: Minor
Reporter: Dustin Sallings (Inactive) Assignee: Matt Ingenthron
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Steve Yen [ 08/May/12 ]
bug blast from the past
Comment by Matt Ingenthron [ 08/May/12 ]
Since TAP is not officially supported, this is low priority but nice to have. The interface should be marked as evolving.
Comment by Jeff Morris [ 07/Oct/13 ]
Superseded by new features planned for UPR




[NCBC-139] .net documentation : long values greater than 2^53 need to be stored as string Created: 08/Oct/12  Updated: 05/Feb/14  Resolved: 16/Oct/12

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

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: MC Brown (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Please see the following forum questions:

http://www.couchbase.com/forums/thread/severe-bug-2-0-beta-64bit-long-data-wrong-windows-server-2008-r2
http://www.couchbase.com/forums/thread/couchbase-2-0-bet-corrupts-long-c-fields

 Comments   
Comment by MC Brown (Inactive) [ 16/Oct/12 ]
Documentation has been updated in the .NET and Couchbase Server manuals. I'll replicate to the other SDKs later today.




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

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

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


 Description   
From a user:

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

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




Implement Server Configuration Management (NCBC-362)

[NCBC-370] Develop File System Based Provider Implementation Created: 15/Jan/14  Updated: 05/Feb/14  Resolved: 03/Feb/14

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

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   
A file based provider implementation that allows a client to bootstrap off of a series of config files on disk. This is mainly for testing, but the implementation is nearly identical to the Streaming Http version, less some of UNIBrow's features.

 Comments   
Comment by Jeff Morris [ 03/Feb/14 ]
Partially implemented, will continue to develop it as needed for unit testing.




[NCBC-385] Multi get and touch Created: 05/Feb/14  Updated: 05/Feb/14

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

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


 Description   
One can get several keys in one round trip. Also one can do get-and-touch in a single round trip. But currently is not possible to do several get-and-touch in one round trip. Something like:

IDictionary<string, object> CouchbaseClient.Get(IEnumerable<string> keys, IEnumerable<TimeSpan> newExpirations);

Please add such an operation in a future version

Thanks.

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




[NCBC-384] Improve overall quality of 1.X documentation Created: 04/Feb/14  Updated: 04/Feb/14

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

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: Improve .NET SDK 1.X Documentation
Epic Status: To Do




[NCBC-277] Issue on documentation for the "collated view" sample code Created: 03/Jul/13  Updated: 04/Feb/14

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

Type: Task Priority: Major
Reporter: Tug Grall (Inactive) Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Issue with the sample code we show in the documentation:
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/collatedviews.html
and the beer sample application code
https://github.com/couchbaselabs/beer-sample-net

This has been raised by the community:
https://twitter.com/jakescott/status/352637928272437248




[NCBC-382] Ensure Couchbase.Log4Net uses Newtonsoft.NET Version 4.5.11 Created: 04/Feb/14  Updated: 04/Feb/14  Resolved: 04/Feb/14

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

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   
Follow up to this: http://www.couchbase.com/issues/browse/NCBC-381

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




[NCBC-374] create release notes for 1.3.2 Created: 28/Jan/14  Updated: 03/Feb/14  Resolved: 03/Feb/14

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

Type: Task Priority: Major
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   
Send pull request to docs team.

 Comments   
Comment by Jeff Morris [ 03/Feb/14 ]
https://github.com/couchbaselabs/docs-ng/pull/84




[NCBC-336] Improve thoroughput during rebalance scenarios Created: 04/Dec/13  Updated: 03/Feb/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.0
Fix Version/s: backlog-1.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   
Throughput drops by 75%+ (on average) during rebalance. Some time quanta show zero operations in the remove-2-reblance scenario. This appears to be a regression over earlier testing.




[NCBC-373] .NET GetJSON operation throws System.ArgumentNullException Created: 23/Jan/14  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

Type: Bug Priority: Major
Reporter: ben hysell Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .net 4.5 vs2013


 Description   
Much like -
From NCBC-306: .NET GetJSON operation throws null reference exception Add support for null values persisted for a key via the CouchbaseClientExtensions.GetJson(…) method. This method will no longer thrown a NullReferenceException when the value store for a key is null and instead simply return null. - See more at: http://www.couchbase.com/communities/comment/1455#comment-1455

[Test]
+ public void Test_That_GetJson_Supports_Null_Values()
+ {
+ var key = "A_NULL_THING";
+ var result = Client.StoreJson(StoreMode.Set, key, null);
+ Assert.AreEqual(true, result);
+
+ var nullResult = Client.GetJson(key);
+ Assert.AreEqual(null, nullResult);
+ }


I'm not sure this test works for all cases. Say I just started my application can called

var returnedString = Client.GetJson(key);

But there isn't anything in the system because I just started up, I'll get a 'System.ArgumentNullException' because:
public static T GetJson(this ICouchbaseClient client, string key) where T : class
{
var json = client.Get(key);
return json == Null ? null : DeserializeObject(key, json);
}
The value 'json' will actually equal null. Since in this test it won't equal the string "Null", it will attempt to call DeserializeObject(key, json), with a null value for 'json'.

see following test
[Test]
public void Test_That_GetJson_Supports_Empty_Values()
{
//ensure key and value are not stored in the system
var nullResult = Client.GetJson("my key");
Assert.AreEqual(null, nullResult);
//fails
}

Expected behavior
Just like the standard Client.Get<string>(keyWithNothingInDatabase) returns null, I would expect Client.GetJson(keyWithNothingInDatabase) to also return null.


 Comments   
Comment by Jeff Morris [ 31/Jan/14 ]
http://review.couchbase.org/#/c/33097/




[NCBC-380] Filtering on Compound Key with "+" Char Fails Created: 31/Jan/14  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

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   
91b, Jan 14 09:34:
Hi,
Filter on compound key with `+` char won`t work from C# client.
Couchbase version: 2.2.0 enterprise edition (build-821)
C# client: CouchbaseNetClient.1.2.9\lib\net40\Couchbase.dll
Reproduce:
1) Create a new bucket
2) Create any document
3) Create a new view (in my case :* _design/test bug*
function (doc, meta) {
emit([123, "a+b"], null);
}
4) Execute from c# GetView with filter on key: [123, ”a+b”]
var testClient = new CouchbaseClient((CouchbaseClientSection)
ConfigurationManager.GetSection("couchbase/bucket-test-bucket"));
var item = testClient.GetView("test", "bug").Key(new object[] { 123,
"a+b"}).Stale(
StaleMode.False).FirstOrDefault();
if (item == null)
{
Console.Out.WriteLine("Nothing found, bug…");
}
else
{
Console.Out.WriteLine("Key found");
}
Zero rows found.
===============
If I run in couch GUI filter on key [123,”a+b”], I get the following:
http://plt-couchdb01.toyga.local:8092/auditing/_design/test/_view/bug?key=%5B123%2C%22a%2Bb%22%5D&stale=update_after&connection_timeout=60000&limit=10&skip=0
Response:
{"total_rows":1,"rows":[{"id":"abc","key":[123,"a+b"],"value":null}]}
In Fidler I see that ‘+’ character still ‘+’, but in request from couch GUI
‘+’ is *‘%2B’*


 Comments   
Comment by Jeff Morris [ 31/Jan/14 ]
http://review.couchbase.org/#/c/33096/




[NCBC-359] Allow Serializer Customization Created: 08/Jan/14  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

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   
Pull request can be found here: https://github.com/couchbase/couchbase-net-client/pull/10

Hi there,

I have some custom serialization requirements; however, currently the CouchbaseClientExtensions does not allow me to customize the Newtonsoft.Json serializer.

This patch allows serializer customization by placeing a static field onCouchbaseClientExtensions.JsonSerializerSettings that enables users of the couchbase extension class to customize the serializer.

Also added a static constructor to CouchbaseClientExtensions which maintains defaults.

Thanks,
Brian


 Comments   
Comment by Jeff Morris [ 31/Jan/14 ]
http://review.couchbase.org/#/c/32280/




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

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

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

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

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

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

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

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

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

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

Will be published with release notes for 1.3.2 on Tuesday.




[NCBC-375] ConnectionProblems with server configured hostname and ipv6 Created: 29/Jan/14  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

Type: Bug Priority: Major
Reporter: Stefan Dirks Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: windows 7 x64


 Description   
If you configure a couchbase-server with hostname instead of ip (ipv4, you can't enter an ipv6 address via web interface), the .net client library refuses the connection.

The problem is "SocketPool.cs" creates a new socket (method "Create") with "AddressFamily.InterNetwork" (ipv4), but "_node.EndPoint" can be of type "AddressFamily.InterNetworkV6".

The method "GetFirstAddress" within "CouchbasePool.cs" calls "Dns.GetHostAddresses", which returns ipv4 and ipv6 addresses and doesn't filter to ipv4 adresses.

Couchbase-Server has problems with ipv6 (see also http://www.couchbase.com/issues/browse/MB-6378).

The problem was also described in http://www.couchbase.com/communities/q-and-a/net-client-wont-communicate-cluster-successfully-configured-hostnames?current=node/640


 Comments   
Comment by Stefan Dirks [ 29/Jan/14 ]
see pull request https://github.com/couchbase/couchbase-net-client/pull/11
Comment by Jeff Morris [ 29/Jan/14 ]
Stefan -

Thanks for the submission. In order to accept the pull request and merge into a release branch, I need you to sign the Couchbase Contributor License Agreement (CLA) and have the PR go through our usual code review process in Gerrit.

Can you create an account and sign our CLA?

Just follow these steps:

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"

Doing this will also ensure that you get properly credited for your submission.

Once again, thanks for the submission,

-Jeff
Comment by Stefan Dirks [ 30/Jan/14 ]
Hello Jeff,

thanks for your fast reply.

i already created an account and signed the CLA.
My username is the same (sdir456).

Stefan

(edit typo)
Comment by Jeff Morris [ 30/Jan/14 ]
Stefan -

This is scheduled for the 1.3.2 release on Tuesday Feb 4th, however there was one minor issue (a few inadvertent carriage returns \r )found in the code review review process. If you would like to address the issue and do a commit --amend to gerrit that would be great. This would need to be done asap, so we can start or situational testing phase. If you can't do this (time or whatever) I'll go ahead do it for you. Let me know.

Thanks Again,

jeff
Comment by Stefan Dirks [ 31/Jan/14 ]
Hello Jeff,

i don't know how to do a git commit --ammend to gerrit, i tried some things but it didn't work. I'm new to git and gerrit.
It would be nice if you could do that for me or help me to do that of my own.

Thank you very much,
Stefan
Comment by Jeff Morris [ 31/Jan/14 ]
Stephen -

I fixed the \r issue and pushed the changes (I had to create a new CR because the change-id was missing): http://review.couchbase.org/#/c/33084/

I just need you to:
1-Click on the [Review] button for patch-set3 (or whatever the final patchset is)
2-Select the "Verified" radiobutton.

I'll send you some info on contributing as well :)

Thanks,

Jeff
Comment by Stefan Dirks [ 31/Jan/14 ]
Hello Jeff,

I just "verified" it. ( the Option i had was "+1").

Thanks for your help,
Stefan
Comment by Jeff Morris [ 31/Jan/14 ]
http://review.couchbase.org/#/c/33084/




[NCBC-369] ObjectDisposedException is not handled in PerformMultiGet Created: 14/Jan/14  Updated: 31/Jan/14  Resolved: 15/Jan/14

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

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

Issue Links:
Duplicate

 Description   
https://github.com/couchbase/EnyimMemcached/blob/master/Enyim.Caching/MemcachedClient.cs#L890

The line in this code can throw ObjectDisposedException that is not handled in the Memcache Client Code. Since this code is executed on a thread NOT owned by an IIS Context Thread, this un-handled exception terminates the worker process as can be seen in our Application Log.

<Data>An unhandled exception occurred and the process was terminated. Application ID: /LM/W3SVC/1/ROOT Process ID: 20140 Exception: System.ObjectDisposedException Message: Safe handle has been closed StackTrace: at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success) at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle) at System.Threading.EventWaitHandle.Set() at Enyim.Caching.MemcachedClient.<>c__DisplayClass29`1.<PerformMultiGet>b__1d(IAsyncResult iar) at System.Runtime.Remoting.Messaging.AsyncResult.SyncProcessMessage(IMessage msg) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink) 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.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch()</Data>

 Comments   
Comment by Jeff Morris [ 15/Jan/14 ]
http://review.couchbase.org/#/c/32392/




[NCBC-249] We need documentation that explains how users can check for error codes Created: 06/Apr/13  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

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

Attachments: Microsoft Word error-code-checking.docx    
Issue Links:
Duplicate
duplicates NCBC-78 Enhance discussion of return codes/va... Resolved

 Description   
I'm pretty sure that the .NET SDK allows us to do this, but I might be wrong. If we can properly check for errors we should document it.

 Comments   
Comment by John Zablocki (Inactive) [ 24/May/13 ]
This should accompany a task to move StatusCode from an int, to an enumeration.
Comment by Jeff Morris [ 30/Jan/14 ]
Possible dupe: http://www.couchbase.com/issues/browse/NCBC-78
Comment by Jeff Morris [ 30/Jan/14 ]
Proposed amendment to documentation. Please review and provide feedback.




[NCBC-152] Couchbase Client hangs during instantion of the Client if the request to http://xxx.xxx.xxx.xxx:8091/pools/default/bucketsStreaming/default is blocked or never returns Created: 09/Nov/12  Updated: 30/Jan/14

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

Type: Bug Priority: Minor
Reporter: Aaron Mell Assignee: Saakshi Manocha
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 7
Windows Server 2008 VM
AVG 2012.0.2221
Coucbase C# Client Library 1.2

Attachments: Zip Archive NCBC-152.zip     Zip Archive SimpleCouchClientTest.zip    

 Description   
During instantiation of the client, a MessageStreamListener is created. Inside of the listener is a call is made to the config url

Line 376 of MessageStreamListener

this.request = this.requestFactory.GetWebRequest(configUrl, configUrl.GetHashCode().ToString());
this.response = this.request.GetResponse();

If this call never completes, for example because AVG silently blocks the request and prevents the data from being returned, then the client will wait indefinitely instead of timing out.

 Comments   
Comment by Aaron Mell [ 09/Nov/12 ]
http://www.couchbase.com/forums/thread/net-client-hangs-client-create#comment-1007661
Comment by Matt Ingenthron [ 17/May/13 ]
Not a priority, but let's try to come up with a way to test if this does in fact hang forever. If so, we should fix it.
Comment by Saakshi Manocha [ 24/May/13 ]
Yes it is easily reproducible. I have installed AVG on Windows7 machine and server is also installed on same machine. If AVG is enabled, client will never get instatiated, if I disable the AVG, it works perfectly.

In class Couchbase.BucketConfigListener.cs:

// subscribe to the config url
this.listener = this.GetPooledListener();

// this will be signaled by the config changed event handler
reset.WaitOne();

It keeps on waiting endlessly at this code statement - reset.WaitOne(). It wont even time out, the thread just keeps waiting forever.
While its waiting if we disable the AVG, then it will work absolutely fine.


The code snippet is attached herewith (i added a statement for Get() method, its not really required, but if included, code assumes we have a key '101' stored already).

another thing to notice is if in App.config, I change the server address from "http://localhost:8091/pools" to "http://10.3.121.134:8091/pools", it would work fine. (10.3.121.134 actually has server installed)
Comment by Saakshi Manocha [ 07/Jun/13 ]
@Matt: Please suggest how shall we proceed with this issue.
Comment by Bin Cui [ 27/Jan/14 ]
Try this command to verify if mecached runs correctly:

<installroot>/bin/cbworkloadgen -n localhost:8091 -i 1000
Comment by Vinay Pandey [ 27/Jan/14 ]
I can replicate this problem without AVG. If I keep creating the Client in the loop 10,000 times, then it gets stuck in the constructor, I am attaching my test application, here is the call-stack from WinDBG:

System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)
Couchbase.BucketConfigListener.Start()
Couchbase.CouchbasePool.Enyim.Caching.Memcached.IServerPool.Start()
Couchbase.CouchbaseClient..ctor(Couchbase.ICouchbaseServerPool, Couchbase.Configuration.ICouchbaseClientConfiguration)
SimpleCouchClientTest.Program+<>c__DisplayClass2.<Main>b__1(Int32) [\Documents\Visual Studio 2012\Projects\SimpleCouchClientTest\SimpleCouchClientTest\Program.cs @ 37]




[NCBC-73] Need better explanation of usage and return values of increment operation (and likely others) Created: 26/Jun/12  Updated: 30/Jan/14  Resolved: 30/Jan/14

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

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


 Description   
The current docs for incrememnt: http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-update-increment.html

Can there be some attention paid to the above documentation (and will likely be needed across the board in similar areas):
-Some return values say: CasResult<ulong> (Cas result of bool). What is "Cas result of bool"?
-Other return values say: IMutateOperationResult (Mutate operation result). Is the same operation really expected to return drastically different object types?
-Some examples have "var casv = client.GetWithCas("inventory");" before performing the increment. Is it necessary to get the CAS id before performing this type of increment? Is it necessary to supply the CAS id for this type of increment?
-Some examples have very simply usage, others have more detail:
var getResult = client.ExecuteGet("inventory");

if (getResult.Success) {
var mutateResult client.ExecuteIncrement("inventory", 100, 1, getResult.Cas);

if (mutateResult.Success) {
logger.Debug("New value: " + mutateResult.Value);
}
}

-Can all of the examples be made consistent, and/or just have a single example at the top showing how to perform the incremement and work with the result. Then the various optional methods can be shown below?
-There seems to be a fair amount of duplication within the methods provided. For example, the last two are exactly the same (even have the same typo on "numvers") and there are other seemingly duplicates throughout.

 Comments   
Comment by Jeff Morris [ 30/Jan/14 ]
Addressing a few points from above:

>>Some return values say: CasResult<ulong> (Cas result of bool). What is "Cas result of bool"?

Changed to "`ulong` the result of the value decremented by the offset (if the default value has not been stored, it will be the default value)". This will be included in the 1.3.2 release.

>>Other return values say: IMutateOperationResult (Mutate operation result). Is the same operation really expected to return drastically different object types?

Yes, their are two 'forms' of operations exposed by the 1.X version of the SDK: one's that return the explicit result of the operation (true/false/integer/etc) and one's that return a 'richer' object which includes the StatusCode, whether or not an exception occurred, the explicit result of the operation, etc. The former have a naming convention with that matches the operation (e.g. Increment, Decrement, etc) and the former are named Execute[Operation] (e.g. ExecuteIncrement, ExecuteGet, etc). The former were added after the fact so that they wouldn't change the interface of the API, which would be breaking changes for clients, while adding much needed 'meta-info' about the operation's status.

>>Some examples have "var casv = client.GetWithCas("inventory");" before performing the increment. Is it necessary to get the CAS id before performing this type of increment? Is it necessary to supply the CAS id for this type of increment?

Yes, that was how the API was designed. We will investigate more intuitive means of using CAS in 2.X version of the SDK.
Comment by Jeff Morris [ 30/Jan/14 ]
Resolved the major issues with documentation. Perhaps create another ticket for any additional changes that need to be made?




[NCBC-196] Config updates seem to be occuring when vbucket configuration hasn't changed Created: 08/Jan/13  Updated: 30/Jan/14

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

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


 Description   
The client appears to be updating its config when receiving config updates that shouldn't trigger a change in internal config (i.e., reodered nodes, fast forward maps).

 Comments   
Comment by Jeff Morris [ 07/Oct/13 ]
vBucketServerMap (all elements), the number of nodes (cluster membership, status) and couchApiBase determine equivalence.




[NCBC-215] BinaryOperation failues should include message Created: 31/Jan/13  Updated: 30/Jan/14

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

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


 Description   
When the client is unable to process the response from the server, there should be some notification, probably via BinaryOperationResult.Message

 Comments   
Comment by Jeff Morris [ 03/Oct/13 ]
This may be fixed by http://review.couchbase.org/29175 (NCBC-301). Need to confirm.




[NCBC-326] Under load, OORE thrown when accessing view Created: 06/Nov/13  Updated: 30/Jan/14

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

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


 Description   
From the following thread: https://groups.google.com/forum/#!topic/couchbase-8091/coADcepVnV4

>>>>>


Re: Backup is running to 200.7% after crash (was: Re: [Team 8091] Couchbase server crashed during minimal load test)
Ok everyone, blast from the past. We are about to launch 2.2 of the same app that was experiencing index out of range errors accessing a view. We have continued to see this error show up during minimal as well as heavy load testing. We have multiple views and for some reason this one view causes us problems. It's use is almost identical to another that hasn't error and is access immediately before this failing view.

The content they return is different though. The error, for simplicity sake is pasted below:

System.ArgumentOutOfRangeExceptionIndex was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at Couchbase.CouchbaseClient.Couchbase.IHttpClientLocator.Locate(String designDocument)
   at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
   at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at ###.Framework.Tracking.PageVisitLogger.GetResourceAccesses(String userId)
   at ###.Framework.GlobalApplication.Application_AuthenticateRequest(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



For the 2.1 release that started this thread, we identified issues with the .NET 1.2.6 and had to go back to 1.2.0. For this 2.2 release I tried 1.2.7 and 1.2.8 and still experienced the issue so was not able to upgrade still. The issue we have run into is documented in this thread so I'm not going to rehash it here. I even provided diagnostics to Couchbase for troubleshooting purposes.

Two things:

    Is there an ETA on when this issue will be resolved?
    What might cause this exception for just one view?

Thanks!

-K




[NCBC-329] Ensure IOperationResult returns StatusCode on failure. Created: 11/Nov/13  Updated: 30/Jan/14  Resolved: 30/Jan/14

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

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   
Many of the operations on failure do not return a StatusCode in their IOperationResult resturn values. This fixes most of these cases.

 Comments   
Comment by Jeff Morris [ 30/Jan/14 ]
This was released in 1.3.0: https://github.com/couchbase/couchbase-net-client/commit/b44eb8545885e997f8d2035113e1514b2dc246e8




[NCBC-377] Only recreate connections when config change requires it Created: 30/Jan/14  Updated: 30/Jan/14

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

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   
http://www.couchbase.org/issues/browse/NCBC-358

http://review.couchbase.org/#/c/31834/1//COMMIT_MSG

"Out of curiosity, why don't you only recreate connections which have been changed? In that case, you would have the same result, but be much more performant in many cases."




[NCBC-361] Refactor Unit Test Project Created: 09/Jan/14  Updated: 30/Jan/14  Resolved: 30/Jan/14

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

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

 Comments   
Comment by Jeff Morris [ 30/Jan/14 ]
I made some improvements, but not in line with my goals stated on the ticket. I spoke with Saakshi and she is going to take over on this ticket. Commit is here: http://review.couchbase.org/#/c/33038/

I will close this ticket and create a new one for Saakshi.




[NCBC-18] deploying to download locations directly from CI Created: 12/Jan/12  Updated: 27/Jan/14  Resolved: 27/Jan/14

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

Type: Task Priority: Major
Reporter: Matt Ingenthron 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   
The idea here is that interim builds, as they come through code review, generate artifacts and upload to a given location. If they're actual release builds, they upload to a different location. This could also go to nuget, if appropriate.

 Comments   
Comment by Saakshi Manocha [ 27/Jan/14 ]
Duplicate NCBC-14




[NCBC-17] building shippable artifacts under CI Created: 12/Jan/12  Updated: 27/Jan/14  Resolved: 27/Jan/14

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

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

Issue Links:
Dependency

 Comments   
Comment by Saakshi Manocha [ 27/Jan/14 ]
Duplicate NCBC-14




[NCBC-16] running integration tests under CI Created: 12/Jan/12  Updated: 27/Jan/14  Resolved: 27/Jan/14

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

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

Issue Links:
Dependency

 Comments   
Comment by Saakshi Manocha [ 27/Jan/14 ]
Duplicate NCBC-14




[NCBC-123] Set, add, and replace should be separate methods Created: 22/Sep/12  Updated: 13/Jan/14

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

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





[NCBC-188] Provide file based caching of config for stateless .NET apps Created: 21/Dec/12  Updated: 13/Jan/14

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

Type: New Feature Priority: Minor
Reporter: John Zablocki (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
With stateless apps, such as WCF, it's not possible to create a static client variable that is used across the lifetime of the app. An alternate approach would be to write config to a file and update it periodically instead of bootstrapping with each object creation.

 Comments   
Comment by Jeff Morris [ 12/Dec/13 ]
This may be satisfied by File based config provider in 2.0 client: https://docs.google.com/document/d/1bSMt0Sj1uQtm0OYolQaJDJg4sASfoCEwU6_gjm1he8s/edit#




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

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

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


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

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

Was there something specific you were concerned with here?




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

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

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




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

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

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


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

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






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

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

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


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




[NCBC-113] CouchbaseCluster RESTful wrappers should not expose WebExceptions Created: 05/Sep/12  Updated: 13/Jan/14

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

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





[NCBC-252] Docs/Library: Unlock after getl Created: 17/Apr/13  Updated: 13/Jan/14

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

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


 Description   
Does the .NET client support an unlock? If not, will we have it? If it does, can we document it?

 Comments   
Comment by John Zablocki (Inactive) [ 08/May/13 ]
Seems to be a problem with the docs - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/api-reference-retrieve.html. I'll investigate.




[NCBC-101] Provide Consistent Timeouts Created: 24/Aug/12  Updated: 13/Jan/14

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

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


 Description   
Provides the consistent level of time outs with other SDKs. Provide ability to set timeouts at: 1) connection, 2) authentication, and 3) ops level.




[NCBC-221] Docs: working with multiple buckets in the .NET client Created: 05/Feb/13  Updated: 13/Jan/14

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

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


 Description   
Apologies if it's already in there, it wasn't particularly obvious to find.

Can we have a section of documentation on working with multiple buckets from within the .NET client when configured in the app.config?

 Comments   
Comment by John Zablocki (Inactive) [ 23/May/13 ]
Adding to config section.




[NCBC-202] add a keyStats feature Created: 12/Jan/13  Updated: 13/Jan/14

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

Type: New Feature Priority: Minor
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   
At times it's useful to get information about a key through underlying "stats key <key> <vbucket>", but using just the stats command is complex because the vbucket hashing isn't exposed. One better though is a keyStats() operation that would return a map of the return for "stats key".




[NCBC-175] Authenticated view tests should use app.config Created: 07/Dec/12  Updated: 13/Jan/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta-3, 1.2.0
Fix Version/s: backlog-1.0

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





[NCBC-273] Better document the DevelpomentModeNameTransformer Created: 04/Jun/13  Updated: 13/Jan/14

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

Type: Bug Priority: Major
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   
In discussion with a user, there was some confusion about development mode views. The SDK docs should mention the DevelpomentModeNameTransformer and refer to the server manual section on development and production views.

 Comments   
Comment by John Zablocki (Inactive) [ 17/Jun/13 ]
See http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-configuration.html. The transformers are listed here (with config sample).




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

Status: Open
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: Unresolved 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-29] programmatically set all the Couchbase configurations Created: 07/Mar/12  Updated: 13/Jan/14

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

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


 Description   
We can programmatically set some the Couchbase configurations, however we cannot set the SocketPool settings Programmatically.

These settings can be set in the config file, but it would be nice to be able to set these through the program.




Move .NET API documentation from docs repo to auto-doc (NCBC-309)

[NCBC-322] Setup Sandcastle and generate documentation Created: 29/Oct/13  Updated: 13/Jan/14

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


 Description   
http://shfb.codeplex.com/




[NCBC-232] Fix CBSE-426 - .Net Client fails silently if there is a wrong configuration Created: 25/Feb/13  Updated: 13/Jan/14

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

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

Issue Links:
Dependency

 Description   
Fix issue CBSE-426




[NCBC-335] Admin credentials required to create a design document Created: 23/Nov/13  Updated: 13/Jan/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
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   
http://www.couchbase.com/communities/q-and-a/credentials-deploy-view-using-couchbasecluster
 
I spent some time with the SDK trying to figure this out and it looks like a bug in the client SDK:
 
var config = new CouchbaseClientConfiguration();
config.Urls.Add(new Uri(ConfigurationManager.AppSettings["CouchbaseServerUrl"] + "/pools"));
config.Password = "Administrator";
config.Username = "password";
config.Bucket = "authenticated";
config.BucketPassword = "secret";
 
var cluster = new CouchbaseCluster(config);
 
using (var stream = new FileStream("Data\\CityViews.json", FileMode.Open))
{
       var result = cluster.CreateDesignDocument("authenticated", "somename", stream);
       Assert.IsTrue(result);
}
 
Even this doesn’t work and returns a 401 Unauthorized…if you remove the cluster level authentication, then 401 unauthorized is still returned. Note that this will create the design document under the default bucket:
 
var config = new CouchbaseClientConfiguration();
config.Urls.Add(new Uri(ConfigurationManager.AppSettings["CouchbaseServerUrl"] + "/pools"));
config.Bucket = "authenticated";
config.BucketPassword = "secret";
 
var cluster = new CouchbaseCluster(config);
 
using (var stream = new FileStream("Data\\CityViews.json", FileMode.Open))
{
       var result = cluster.CreateDesignDocument("default", "somename", stream);
       Assert.IsTrue(result);
}





[NCBC-309] Move .NET API documentation from docs repo to auto-doc Created: 07/Oct/13  Updated: 13/Jan/14

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

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

Issue Links:
Duplicate
duplicates NCBC-248 Touch should return a boolean Resolved
duplicates NCBC-179 Add expiries and CAS to StoreJson ext... Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-321 Add XML Comments to Source Technical task Resolved Jeff Morris  
NCBC-322 Setup Sandcastle and generate documen... Technical task Open Jeff Morris  

 Description   
Look into visual studio support for ///




[NCBC-44] Optimize multiple set (multi-set or mset bulk update) with setq Created: 21/May/12  Updated: 13/Jan/14

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

Type: New Feature Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The Java client, and others, implement a more efficient bulk loading feature when multiple updates are sent to the cluster at one time. They use setq to send multiple requests without needing to round-trip the result after each one.

The .NET client does not implement this; it only implements a multi-get operation. The multi-set is important for efficiently loading data.

This probaby doesn't have to be Couchbase-specific, but would apply to vanilla memcached servers, too.

 Comments   
Comment by Tim Smith (Inactive) [ 21/May/12 ]
To be clear, I'm talking about the kind of optimization described here:

http://dustin.github.com/2009/09/23/spymemcached-optimizations.html

Thanks,

Tim




[NCBC-153] InvalidOperationException in views during server restart Created: 12/Nov/12  Updated: 13/Jan/14

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

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


 Description   
'service couchbase-server restart' on the (only) node.

While it's easy to understand the reason for these errors, they should be wrapped a bit nicer. This is with doing GetItem() on each view request (and running them all inside a tight loop).

[Couchbase.MessageStreamListener|Warn] Current node 'http://10.0.0.99:8091/pools/default/bucketsStreaming/default?bucket
_uuid=e0a080ddc9d74fa3adbcbb9385f2ceae' has failed.
[Couchbase.MessageStreamListener|Warn] Could not found a working node.
[Couchbase.MessageStreamListener|Warn] All nodes are dead, sleeping for a while.
[Enyim.Caching.Memcached.MemcachedNode|Error] System.IO.IOException: Failed to read from the socket '10.0.0.99:11210'. E
rror: ConnectionReset
   at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couch
base-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\BasicNetworkStream.cs:line 92
   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.PooledSocket.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couchbase-net-client\lib
\EnyimMemcached\Enyim.Caching\Memcached\PooledSocket.cs:line 222
   at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket) in F:\couchbase-net-client\lib\En
yimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinaryResponse.cs:line 57
   at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket) in F:\couchbas
e-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinarySingleItemOperation.cs:line 24
   at Enyim.Caching.Memcached.Protocol.Operation.Enyim.Caching.Memcached.IOperation.ReadResponse(PooledSocket socket) in
 F:\couchbase-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Operation.cs:line 27
   at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op) in F:\couchbase-net-client\lib\EnyimMemcache
d\Enyim.Caching\Memcached\MemcachedNode.cs:line 550
[Enyim.Caching.Memcached.MemcachedNode|Error] System.IO.IOException: Failed to read from the socket '10.0.0.99:11210'. E
rror: ConnectionReset
   at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couch
base-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\BasicNetworkStream.cs:line 92
   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.PooledSocket.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couchbase-net-client\lib
\EnyimMemcached\Enyim.Caching\Memcached\PooledSocket.cs:line 222
   at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket) in F:\couchbase-net-client\lib\En
yimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinaryResponse.cs:line 57
   at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket) in F:\couchbas
e-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinarySingleItemOperation.cs:line 24
   at Enyim.Caching.Memcached.Protocol.Operation.Enyim.Caching.Memcached.IOperation.ReadResponse(PooledSocket socket) in
 F:\couchbase-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Operation.cs:line 27
   at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op) in F:\couchbase-net-client\lib\EnyimMemcache
d\Enyim.Caching\Memcached\MemcachedNode.cs:line 550
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.


Unhandled Exception:Unhandled Exception: [Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dea
d node, failing.

[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.


[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Unhandled Exception:Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead
 node, failing.


System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() System.InvalidOperationException: Operation is not valid due to the cu
rrent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() [Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
 to a dead node, failing.

Unhandled Exception:

[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
Unhandled Exception:
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

 Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()System.InvalidOperationException: Operation is not valid due to the cur
rent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
to a dead node, failing.


Unhandled Exception:
Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

 System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.c