[NCBC-78] Enhance discussion of return codes/values Created: 26/Jun/12  Updated: 29/May/13

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

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




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

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

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




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

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

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   
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 [ 23/May/13 ]
Adding to config section.




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

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

Type: Improvement Priority: Major
Reporter: Tim Smith Assignee: Matt Ingenthron
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-252] Docs/Library: Unlock after getl Created: 17/Apr/13  Updated: 29/May/13

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

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   
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 [ 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-235] Provide more detail on "Unable to locate node" errors Created: 04/Mar/13  Updated: 29/May/13

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

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


 Comments   
Comment by Tim Smith [ 12/Mar/13 ]
For clarity, the desired change is in the library itself, to provide info in the error message about what host lost the connection, whether there was a corrupt cluster map or just couldn't connect to any of the hosts, etc. Currently the error provides no insight into where the problem may lie. The developer can assume there may be some networking problem, but no pointer about which node is to blame, etc.




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

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

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   
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 [ 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 [ 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 [ 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-220] Error handling documentation Created: 05/Feb/13  Updated: 29/May/13

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

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   
Please create some documentation specifying possible error/failures to operations, what they "look" like in the logs/exceptions/stack traces and what our recommendation is on how to handle them.

i.e. tmp_oom, timeouts (connection/operation/java-internal/etc), "get miss" (it's technically a failure, let's make it overly obvious what it means), CAS failure, add() failure, replace() failure,

Some of this should be covered in the API reference, but this bug is specifically for a single page where this information is aggregated that a customer/user could read about how to handle errors.




[NCBC-73] Need better explanation of usage and return values of increment operation (and likely others) Created: 26/Jun/12  Updated: 29/May/13

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

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




[NCBC-214] Docs don't mention InnerResult Created: 30/Jan/13  Updated: 29/May/13

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

Type: Improvement Priority: Major
Reporter: Tim Smith Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-operation-results.html


 Description   
The docs page on Working with Operation Results does not describe the InnerResult member at all. No mention of when it will be set, what it should contain, or how to display it.

My understanding is that this member may be important for understanding why something has failed. I'm not sure how to describe it or use it best, though, so I think this needs some clarification from SDK team.

 Comments   
Comment by John Zablocki [ 30/Jan/13 ]
Recent updates have made this property obsolete. I need to work on a plan for removal/obsolescence.




[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: 29/May/13

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

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   
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-204] JSON extension methods not listed in API references Created: 15/Jan/13  Updated: 29/May/13

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

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   
Couldn't find docs around the JSON extension methods listed here:
https://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html

 Comments   
Comment by John Zablocki [ 15/Jan/13 ]
Are you asking for these methods to be included in the API methods along with ExecuteStore, ExecuteGet, etc? Extension methods technically aren't API methods and aren't part of the ICouchbaseClient interface.
Comment by Perry Krug [ 15/Jan/13 ]
Yes, that was what I was asking for. I'm not sure I understand why there are so many different methods for store/get, but since we are recommending customers to store their data as JSON I would assume that these are "first class citizens" and should be documented along with the other methods we support...no?
Comment by John Zablocki [ 15/Jan/13 ]
The JSON extension methods are "opinionated" in that they force you to use JSON.NET for serialization and the default serializer settings that I've included. I don't know that we should recommend these extensions as the "best" option, but rather "an" option. If a user is content to rely on these basic methods, then they would be sufficient. However, there are many users who will prefer other JSON serializers or other class-to-document mapping rules. So rather than attempt to address all JSON concerns with the API, these are convenience methods, which is why they're extension methods. Extension methods in .NET allow a user to treat method like a class method, even though it's not defined in an object's interface.
Comment by Perry Krug [ 15/Jan/13 ]
Thanks for the clarification John.

Can we provide guidance or examples on how to use JSON more generically?
Comment by John Zablocki [ 15/Jan/13 ]
I think that's reasonable. When I update the jsonextensions.html page, I'll try to add "Here's what to do if you don't want to use JSON extensions..."
Comment by Perry Krug [ 15/Jan/13 ]
Thanks John, and will that then link to a piece of our "formal" documentation and API reference?
Comment by John Zablocki [ 17/May/13 ]
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-json.html
Comment by Perry Krug [ 18/May/13 ]
Just as a quick re-open...could we link this from the home page of /develop/net/current as well?




[NCBC-226] Docs: Reference installation Created: 11/Feb/13  Updated: 29/May/13

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

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   
Customers have lots of choices at their fingertips, and many of those choices will result in a non-functioning installation, or at least a lot of time spent figuring out what the right pieces are.

Can we please provide as much details as possible about a reference installation that we can be sure will work for a customer who is just getting started? This is outside of our support for any one operatin system, but more about telling the customer "if you install with these versions and packages, this code will work"

-OS
-"language" version (.NET 4, etc)
-other packages/modules required and/or tested with

 Comments   
Comment by John Zablocki [ 23/May/13 ]
I've submitted a new appendix to the docs team that spells out what each NuGet package is, what framework versions work, and which dependencies are in use.




[NCBC-77] Need details on "StoreMode" values Created: 26/Jun/12  Updated: 29/May/13

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

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 [ 10/Jan/13 ]
Pull request pending in docs.
Comment by John Zablocki [ 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?




[NCBC-261] Use an enumeration instead of integers for return codes Created: 14/May/13  Updated: 29/May/13

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

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   
Customer suggested an improvement of using an enumeration for the operation results instead of integer values.




[NCBC-269] Link broken to nlog configuration file Created: 30/May/13  Updated: 30/May/13

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

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




[NCBC-270] Detailed logging information Created: 30/May/13  Updated: 30/May/13

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

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   
Could we extend this page (http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-logging.html) to include sample log messages and help the customer understand which log level to configure for looking at/investigating what parts of the code?




[NCBC-272] Add documentation on error handling with views/queries Created: 04/Jun/13  Updated: 04/Jun/13

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

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   
Would be helpful to have some insight on how to deal with timeouts (and any other error) when querying a view.




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

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

Type: Bug Priority: Major
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   
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 [ 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-249] We need documentation that explains how users can check for error codes Created: 06/Apr/13  Updated: 29/May/13

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

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


 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 [ 24/May/13 ]
This should accompany a task to move StatusCode from an int, to an enumeration.




[NCBC-251] Certain method summaries are not linked properly in docs Created: 17/Apr/13  Updated: 24/May/13

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

Type: Bug Priority: Minor
Reporter: Perry Krug Assignee: Karen Zeller
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
I haven't checked all of them, but many links off of this page do not go anywhere: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/api-reference-summary.html

For example, all the getwithlock links do not have documentation behind them.




[NCBC-12] logging level documentation needed Created: 05/Dec/11  Updated: 29/May/13

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

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




[NCBC-244] Explicit docs for what .NET Framework versions are supported Created: 02/Apr/13  Updated: 29/May/13

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

Type: Task Priority: Minor
Reporter: Tim Smith Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/ch01s03s01.html


 Description   
Need to be explicit about what versions of Visual Studio are supported, and what .NET Framework is supported. 3.5? 4.0?

The docs mention that you need the full .NET Framework, not just a Client profile. But don't mention if 4.0 is needed. It seems that 3.5 is not supported, but I'm not positive.



 Comments   
Comment by Tim Smith [ 02/Apr/13 ]
I just got this update:

The 1.2 versions use 4.0 features for some things. 3.5 will still work with the 1.1 series (1.2 series is recommended, has important stability fixes).
Comment by Tim Smith [ 02/Apr/13 ]
Probably need to confirm this info, and decide if we want to just state plainly that 4.0 features are used in the .NET SDK. Probably need input from SDK dev team on this.

Tim
Comment by John Zablocki [ 02/Apr/13 ]
The release note for 1.2 GA does announce the 4.0 requirement - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-rn_1-2-0g.html. But agree, it could be added to the getting started. 3.5 support will be targeted for the May release.




document the release process (NCBC-264)

[NCBC-274] Review the release-process document Created: 10/Jun/13  Updated: 10/Jun/13

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

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


 Description   
Please review the release process document as per issue NCBC-264




[NCBC-248] Touch should return a boolean Created: 06/Apr/13  Updated: 24/May/13

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

Type: Bug Priority: Minor
Reporter: Mike Wiederhold Assignee: Karen Zeller
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If touch doesn't return anything then we need to at least update the documentation (with right now says touch returns a boolean) and explain how the user can know if the operation was successful.

 Comments   
Comment by John Zablocki [ 24/May/13 ]
Karen, what is the right return type to assign a method with no return value (i.e., void)?




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

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

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


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

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

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


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

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

It only tries to connect to the primary node, never tries to connect to the other nodes, and once the primary node is up and the rebalance is over, the error rate slows down.




[NCBC-253] flush_all method still available through API, does nothing against 2.0 cluster Created: 22/Apr/13  Updated: 14/May/13

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

Type: Bug Priority: Critical
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   
Is flush_all deprecated for 2.x clusters? No error is returned when run against a 2.0 bucket

Need SDK documentation on the deprecation and how to use flush properly (it's currently only in the release notes)

 Comments   
Comment by John Zablocki [ 13/May/13 ]
FlushAll is a method on the Enyim MemchacedClient, so it's inherited.

I've posted a change to Gerrit that checks to see if any of the working nodes is of type CouchbaseNode (2.0+). If so, an NotImplementedException is raised. Otherwise, if it's a Memcached bucket or 1.8.x, the MemcachedClient.FlushAll is performed.
Comment by John Zablocki [ 14/May/13 ]
Would this approach address your concern?
Comment by Perry Krug [ 14/May/13 ]
Sounds very reasonable to me, thank you.
Comment by Matt Ingenthron [ 14/May/13 ]
Should it perform a RESTful flush if the server is a 2.0 server && couchbase bucket? This is what we did in the Java client if I recall correctly. The logic being this way code moves over and just works.
Comment by John Zablocki [ 14/May/13 ]
Is that the right API? To me it feels like it isn't, since flush is no longer a "client" API action. It's easy enough to implement, but seems best to steer people to the right API, imo...




[NCBC-120] Statistics through Stats() Enyim.Caching.MemcachedClient. Created: 17/Sep/12  Updated: 29/May/13

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

Type: New Feature Priority: Major
Reporter: Alex Ma Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   


User is collecting statistics and would like to collect some of the histogram type data that is available for specific stats through cbstats timings.

Particularly: "disk_insert" and "item_alloc_sizes" with the Stats command to get data as described in 2.5 Timing Stats for link: https://github.com/membase/ep-engine/blob/master/docs/stats.org.

They would like to be able to do this through Enyim.Caching.dll as it is already used by their "Core" code so they support statistics gathering with what that interface offers and like its simplicity.

Currently the dll support memcached specific stats but not ep-engine.

Enhancment request is to expand the functionality of the stats call in Enyim.Caching





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

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

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


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

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

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

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

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

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

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

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





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

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




[NCBC-266] Garbled error message when CAS value does not match Created: 21/May/13  Updated: 29/May/13

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

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

Attachments: PNG File image002.png     Zip Archive TestClient.zip    

 Description   
See the attached screenshot. This is reproducible whenever the client does a CAS operation with a CAS id that does not match. Code snippet attached as well.




[NCBC-173] Use Couchbase.Management API to create buckets and views for unit tests requiring custom setups Created: 07/Dec/12  Updated: 29/May/13

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

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





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

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

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Matt Ingenthron
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.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: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()
[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()
[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 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()[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()[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()Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.Couch
baseView 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: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: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:
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()

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

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


 Comments   
Comment by Mark Nunberg [ 12/Nov/12 ]
Of course the code blatantly throws this exception. I would think perhaps a bit something less severe would do? Maybe a WebException with a code of 400 (standard code for client-side errors); and maybe with some kind of simple retry?




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

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

Type: Improvement Priority: Major
Reporter: Tim Smith 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-126] Implement keep-alive logic for data connections Created: 27/Sep/12  Updated: 29/May/13

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

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


 Description   
A customer has been experiencing connection resets due to a firewall in place between the application servers and Couchbase closing idle connections.

While we have a heartbeat on 8091, we do not for 11210.

This is necessary to prevent the firewall from seeing these connections as idle.

 Comments   
Comment by Alejandro [ 28/Nov/12 ]
Will this fix be also implemented for Java libraries?




[NCBC-97] Stats call doesn't handle I/O error Created: 20/Aug/12  Updated: 29/May/13

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

Type: Bug Priority: Major
Reporter: Tim Smith Assignee: Matt Ingenthron
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


 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 [ 20/Aug/12 ]
Example of how it's called: mc.Stats().GetRaw("uptime"); result is NullReferenceException....




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

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

Type: New Feature Priority: Major
Reporter: Tim Smith Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
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 [ 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-36] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 06/Apr/12  Updated: 29/May/13

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

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


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

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

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




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

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

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





[NCBC-268] Implement timeouts on actual operations Created: 30/May/13  Updated: 30/May/13

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

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   
At the moment it seems that the timeout values are only used on the initial connection to a Couchbase node, not on the servicing of operations.

Comment from a customer:
We had the problems in the WaitAny/WaitMultiple part of the BulkGet method. We saw that there is no timeout passed to the Wait methods. There is a time defined on the connections itself but it would be better if the WaitAny/WaitMultiple methods would have a timeout too.




[NCBC-111] Hangs after threads are aborted Created: 04/Sep/12  Updated: 07/Jun/13

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

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

Attachments: Zip Archive HangRepro-NCBC-111.zip     Zip Archive HangRepro.zip    

 Description   
In our production system thread occasionally get aborted to prevent long-running tasks from using resources when the user is no longer interested in the results. We are seeing these kinds of errors in the log:

ERROR Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - Could not init pool.
and
ERROR Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl - Failed to reset an acquired socket.

Also, we are seeing hangs in MessageStreamListener.cs, line 400:
while ((line = reader.ReadLine()) != null)

This will occasionally hang indefinitely waiting for data to come in to the stream when there is no more data coming in.
I have created a reproduction application that creates a bunch of threads in an "abortable" thread pool (which just allows you to abort the threads, instead of being a black box). Starting the application will print a "." for every thread started, a "!" for every thread stopped and an "x" for every thread aborted. The thread itself just does a simple set/get. It typically hangs after about 15-20 seconds, on this ReadLine statement.

You can find the repro attached to this ticket.

This happens with Couchbase server 1.8.1 and the latest client code from Github.

 Comments   
Comment by Matt Ingenthron [ 17/May/13 ]
Can you see if this is reproducible with current server/client?
Comment by Saakshi Manocha [ 21/May/13 ]
Cluster version - 2.0.1-170
Client - latest from Github

Please find the attached program HangRepro-NCBC-111.zip that I used to reproduce the scenario.
The output is "output-with-using-statement.txt" (attached herewith)
The program hangs after 15-20 seconds.

Now if we change the portion of this code so as to remove the using statement and avoid recreation of client everytime a thread is created, it looks like this:

while (true)
                {
                    Console.Write(".");
                    var client = new CouchbaseClient(section);
                    // Start a thread that just does a simple add/get and then stops
                    var wi = AbortableThreadPool.QueueUserWorkItem(_ =>
                                                   {
                                                       client.Store(StoreMode.Add, "somekey", "somevalue");
                                                       var someValue = client.Get<string>("somekey");
                                                       if (someValue != "somevalue") throw new InvalidOperationException();
                                                       Console.Write("!");
                                                   });

                    // Maybe kill the thread
                    if (rnd.NextDouble() < 0.75) AbortableThreadPool.Cancel(wi, true);

                    // Wait a bit
                    Thread.Sleep((int)Math.Floor(rnd.NextDouble() * 10.0));

                    // Maybe kill the thread
                    if (rnd.NextDouble() < 0.75) AbortableThreadPool.Cancel(wi, true);
                }

With the above change in code, when I run the program again, it never hangs, I kept it running for 2-3 minutes, it was working fine.
The output is "output-without-using-statement.txt" (attached herewith)
Comment by Saakshi Manocha [ 21/May/13 ]
@Roy: Could you please try again without the "using" statement, and let me know if it helps!
Comment by Saakshi Manocha [ 07/Jun/13 ]
@Roy: Could you please confirm whether the issue is resolved with the above-mentioned solution. Thanks!




[NCBC-68] Getting a thread abort (ocassionally) on store Created: 13/Jun/12  Updated: 29/May/13

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

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


 Description   
http://www.couchbase.com/forums/thread/getting-thread-abort-ocassionally-store

Please follow up with this user on the forums after resolving this issue.

We are using the c# client to hit a couchbase 1.8 membase bucket. Every once in while (enough were it's bad) we are getting thread aborts during the store call. Here is the full stack of the error.

2012-06-11 02:59:39,819 [10] ERROR Knotice.Caching [(null)] <(null)> - Failed to add object to L2 cache with key: 297of type:SimpleDatabase msg:Thread was being aborted.
System.Threading.ThreadAbortException: Thread was being aborted.
   at System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags)
   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
   at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.PooledSocket.Read(Byte[] buffer, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket)
   at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket)
   at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op)
   at Couchbase.CouchbaseClient.ExecuteWithRedirect(IMemcachedNode startNode, ISingleItemOperation op)
   at Couchbase.CouchbaseClient.PerformStore(StoreMode mode, String key, Object value, UInt32 expires, UInt64& cas, Int32& statusCode)
   at Enyim.Caching.MemcachedClient.Store(StoreMode mode, String key, Object value, DateTime expiresAt)
   at Knotice.Caching.CacheManager.Store(Object key, Object item, Type type, Int32 tenantId, CacheSettings settings) in d:\Temp\Concentri\Dev - Full Build\Sources\Lib\Caching\Knotice.Caching\CacheManager.cs:line 109




[NCBC-233] Enhance packaging to not conflict with other tools that include Enyim.Caching via Nuget Created: 26/Feb/13  Updated: 29/May/13

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

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

Issue Links:
Duplicate

 Description   
The CouchbaseClient nuget package includes Enyim.Caching which causes compatibility issues with 3rd party applications also relying on the Enyim.Caching assembly.

The third party tool we were looking at using was ServiceStack's Caching interface, specifically the Memcached client implementation. This tool was where were were getting the conflict as they include the Enyim.Caching assembly as a nuget dependency.

See also http://www.couchbase.com/issues/browse/CBSE-412

 Comments   
Comment by Sergey Avseyev [ 25/Apr/13 ]
Not sure if it is related, but IMHO it is

http://www.couchbase.com/forums/thread/please-use-nuget-correctly

> Your NuGet packages have several problems.
> 1. You take binary dependencies on other things which are available via NuGet, but you're shipping those binaries yourself. You should be taking a package dependency instead, so that things can be referenced and versioned correctly.
> 2. Your "Couchbase with Logging" package should be an additive package that takes a package dependency on your "Couchbase" package, rather than shipping an entirely separate copy of the assembly. This causes linking conflicts.

Probably it worth to increase priority of this issue
Comment by Sergey Avseyev [ 25/Apr/13 ]
http://www.couchbase.com/forums/thread/please-stop-using-private-build-restsharp-couchbase-net-client

> You are currently shipping an unsigned but otherwise identically named DLL called RestSharp, which conflicts with anybody who actually uses the real shipping version of RestSharp.
> Either use the signed production version of RestSharp, or else rename the assembly so it does not collide with the real version of RestSharp.
Comment by John Zablocki [ 25/Apr/13 ]
This is actually being addressed in NCBC-247.




Fix invalid tests in NUnit project. (NCBC-174)

[NCBC-250] Fix the test : CouchbaseAuthenticatedViewTests\When_Bucket_Is_Authenticated_View_Returns_Results Created: 09/Apr/13  Updated: 29/May/13

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

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


 Description   
Fix the following test in .Net library, it is constantly failing:

Test Class: CouchbaseAuthenticatedViewTests
Test Name: When_Bucket_Is_Authenticated_View_Returns_Results

Reason for failure:
There is no document/view getting created in SASL bucket with name "authenticated".
Instead the code creates the documents/views in "default" bucket since the code uses the default initialization of couchbase client which uses the "default" bucket.





[NCBC-135] Client not properly handling cluster_run server Created: 03/Oct/12  Updated: 29/May/13

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

Type: Bug Priority: Minor
Reporter: Mark Nunberg Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Using cluster_run from branch-2.0 xml


 Description   
I can't do simple things like get/set stuff..


PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> .\cbc-net.exe -c set -k foo -V bar -H 10.0.0.99
:8091; .\cbc-net.exe -c get -k foo -H 10.0.0.99:8091
URI: http://10.0.0.99:8091/pools
http://10.0.0.99:8091/pools
Created new client..
Arguments to ExecuteStore:
   0x00000003, 'foo', 'bar', 00:00:00, Zero, Zero
Operation Succeeded. Cas: 610018894666114
Duration was 3.07 Sec.
URI: http://10.0.0.99:8091/pools
http://10.0.0.99:8091/pools
Created new client..
Command OK
Value is bar
Cas is 610018894666114
Duration was 3.09 Sec.
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> echo "hi" | C:\Users\Administrator\Documents\Gi
tHub\deps\bin\cbc.exe create -h 10.0.0.99 foo2
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> # Now with the cluster_run cluster
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> .\cbc-net.exe -c set -k foo -V bar -H 10.0.0.99
:9000; .\cbc-net.exe -c get -k foo -H 10.0.0.99:9000
URI: http://10.0.0.99:9000/pools
http://10.0.0.99:9000/pools
Created new client..
Arguments to ExecuteStore:
   0x00000003, 'foo', 'bar', 00:00:00, Zero, Zero
Initial command failed (Store operation failed, see InnerResult or StatusCode for details). Trying simple version..
.. Inner Message: Failed to execute operation
Command Failed
Code is 0
Message is Store operation failed, see InnerResult or StatusCode for details
Duration was 3.02 Sec.
URI: http://10.0.0.99:9000/pools
http://10.0.0.99:9000/pools
Created new client..
Command Failed
Code is
Message is Unable to locate node
Duration was 3.05 Sec.
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>


## This works fine with libcouchbase:


PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> echo "hi" | C:\Users\Administrator\Documents\Gi
tHub\deps\bin\cbc.exe create -h 10.0.0.99:9000 foo2
Stored "foo2" CAS:911342e1e62a0200
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> C:\Users\Administrator\Documents\GitHub\deps\bi
n\cbc.exe cat -h 10.0.0.99:9000 foo2
"foo2" Size:3 Flags:0 CAS:911342e1e62a0200
hi
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>


 Comments   
Comment by Mark Nunberg [ 03/Oct/12 ]
Currently this forces me to run tests against a remote cluster with .net. It would be nice to have the ability to run these tests locally via 'cluster_run'
Comment by Mark Nunberg [ 03/Oct/12 ]
fyi, it seems from running tcpdump that it's connecting to the rest server and also connecting to some memcached port.. but the op still fails..




[NCBC-179] Add expiries and CAS to StoreJson extension methods Created: 12/Dec/12  Updated: 29/May/13

Status: Reopened
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.0
Fix Version/s: 1.2.1

Type: New Feature Priority: Minor
Reporter: John Zablocki Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by John Zablocki [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 06/Feb/13 ]
Hey John, this this come with associated doc changes? Can you link to them?

Thanks
Comment by John Zablocki [ 20/Feb/13 ]
I haven't had a chance to work on doc improvements. After 1.2.2 is released, I'll try to prioritize doc updates.




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

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

Type: New Feature 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   
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-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: 07/Jun/13

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

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    

 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.




[NCBC-265] Refactor solution so that Enyim is part of main source branch Created: 20/May/13  Updated: 29/May/13

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

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


 Description   
Blocker, because it's required before next release.




[NCBC-170] evaluate socket pool reliability change Created: 30/Nov/12  Updated: 29/May/13

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

Type: Bug Priority: Critical
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   
A recent issue seems to be similar to a reported issue in EnyimMemcached. We should evaluate whether or not to include this in our release.

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




[NCBC-264] document the release process Created: 17/May/13  Updated: 10/Jun/13

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

Type: Improvement Priority: Critical
Reporter: Matt Ingenthron Assignee: Saakshi Manocha
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

Attachments: Microsoft Word Release_Process_.Net_SDK.doc    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-274 Review the release-process document Technical task Open Matt Ingenthron  

 Description   
Somewhere in the source repository, please document the release process.

 Comments   
Comment by Saakshi Manocha [ 23/May/13 ]
@Matt/John: Attached herewith is a layman version of the release process of .Net SDK.
Please review and suggest the changes as required.
Thanks!
Comment by Saakshi Manocha [ 10/Jun/13 ]
created sub-task to review the document




[NCBC-262] .Net client fails in two sdkd scenarios Created: 14/May/13  Updated: 23/May/13

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

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


 Description   
.Net client is producing errors (socket reset, operation time out, etc) for two scenarios:

HYBRID_rb-1-swap (swap rebalance (one added, one removed))
HYBRID_svc-restart-75pct (restart couchbase-server on 3/4 nodes)

 Comments   
Comment by Saakshi Manocha [ 14/May/13 ]
HYBRID_rb-1-swap

http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_rb-1-swap-Sdotnet-1.2-release-T2013-05-14-10.16.06-LV_CB_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_rb-1-swap-Sdotnet-1.2-release-T2013-05-14-10.16.06-LV_MC_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_rb-1-swap-Sdotnet-1.2-release-T2013-05-14-10.16.06-LV_HTTP_BASIC.txt

HYBRID_svc-restart-75pct

http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_svc-restart-75pct-Sdotnet-1.2-release-T2013-04-02-00.44.50-LV_CB_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_svc-restart-75pct-Sdotnet-1.2-release-T2013-04-02-00.44.50-LV_MC_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_svc-restart-75pct-Sdotnet-1.2-release-T2013-04-02-00.44.50-LV_HTTP_BASIC.txt
Comment by John Zablocki [ 15/May/13 ]
These runs aren't using the latest client. I don't think that will change the results, but RestSharp is being used according to the logs.
Comment by Saakshi Manocha [ 23/May/13 ]
They are failing even in the latest client




[NCBC-4] default logging on Enyim should include INFO level logging on connections being dropped Created: 03/Aug/11  Updated: 29/May/13

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

Type: Improvement Priority: Major
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   
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-58] Way to determine which Servers are active Created: 05/Jun/12  Updated: 29/May/13

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

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


 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 [ 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-102] Provide Standardized Logging Created: 24/Aug/12  Updated: 29/May/13

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

Type: Improvement Priority: Major
Reporter: Karen Zeller Assignee: Matt Ingenthron
Resolution: Unresolved 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-267] should retry count be allowed to be 0, or should it be forced higher Created: 29/May/13  Updated: 29/May/13

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

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





[NCBC-219] Write the .NET/Windows Getting Started Section for the Essentials Guides Created: 04/Feb/13  Updated: 29/May/13

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

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


 Description   
Write the .NET/Windows Getting Started section of the Essentials Guide

Needs to cover:

Basic Setup of the .NET environment
Adding the .NET Client library to a project
Writing your first (small) app using Couchbase and .NET

Submissions should be to MC, either through the couchbase/docs repo, or direct to MC in whatever format suits. Must include both the text and images.




[NCBC-18] deploying to download locations directly from CI Created: 12/Jan/12  Updated: 29/May/13

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

Type: Task Priority: Major
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   
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.




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

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

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: Matt Ingenthron
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




[NCBC-222] When node is unavailable for a view query, don't throw an InvalidOperationException Created: 05/Feb/13  Updated: 29/May/13

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

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





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

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

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





[NCBC-13] generating shippable artifacts Created: 12/Jan/12  Updated: 29/May/13

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

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





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

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

Type: Improvement Priority: Major
Reporter: Karen Zeller Assignee: Matt Ingenthron
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-99] Provide Error Handling Consistent with Other SDKs Created: 24/Aug/12  Updated: 29/May/13

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

Type: Task Priority: Major
Reporter: Karen Zeller Assignee: Matt Ingenthron
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-174] Fix invalid tests in NUnit project. Created: 07/Dec/12  Updated: 29/May/13

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

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: Matt Ingenthron
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:
Dependency
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-250 Fix the test : CouchbaseAuthenticated... Technical task Open Matt Ingenthron  

 Comments   
Comment by Saakshi Manocha [ 29/Jan/13 ]
I ran the .net unit tests against the latest code of couchbase-net-client and cluster version 2.0.0-1976
My cluster config comprise of the following nodes:
10.3.121.134
10.3.121.135
10.3.121.136
10.3.3.206

Some of the tests are failing, mostly are related to views. Please find the observations and their possible causes:

1. CouchbaseAuthenticatedViewTests\When_Bucket_Is_Authenticated_View_Returns_Results :

First the test was failing because there was no document getting created in "authenticated" bucket. Supposedly the code was creating the default client object in method CouchbaseClientFactory.CreateCouchbaseClient(), where the bucket name is default. So I changed it the initialization statement to :
_client = new CouchbaseClient("authenticated","secret");
Again running the test, now the documents are getting created for "authenticated" bucket but no views. Infact the test report is:
Couchbase.Tests.CouchbaseAuthenticatedViewTests.When_Bucket_Is_Authenticated_View_Returns_Results:
System.Net.WebException : The remote server returned an error: (404) Not Found.

2. DefaultConfigurationSettingsTests\When_Http_Timeout_Is_Not_Set_And_Using_App_Config_Default_Is_20_Seconds
and
DefaultConfigurationSettingsTests\When_Http_Timeout_Is_Not_Set_And_Using_Code_Config_Default_Is_20_Seconds:

Test fails with the error:
  Expected: 00:00:20
  But was: 00:01:00
Error reason:
In method Couchbase\Configuration\ServersElement.cs -> HttpRequestTimeout(), the following attribute is set:
[ConfigurationProperty("httpRequestTimeout", IsRequired = false, DefaultValue = "00:01:00"), PositiveTimeSpanValidator]
DefaultValue set is 00:01:00, in test we compare the result with 00:00:20, hence the failure.
The DefaultValue in attribute needs to be changed.

3. CouchbaseClusterBucketAdminTests\When_Getting_Cluster_Item_Count_Count_Matches_Interesting_Stats and When_Getting_Bucket_Item_Count_Count_Matches_Basic_Stats:
Error: System.Net.WebException : The remote server returned an error: (404) Not Found.
ErrorSource: This test would run find if we provide the username and password for the cluster. The Http response object returns an error because it is not able to connect to the clusterm possibly error in ConfigurationManager.GetSection(configSectionName) which does not return "couchbase" config section

4. CouchbaseClusterBucketAdminTests\When_Creating_New_Bucket_With_Ram_Quota_Less_Than_100_Argument_Exception_Is_Thrown:
The exception message text was incorrect
Expected message containing: Quota.RAM
 but was: RamQuotaMB must be at least 100
Solution is to change the expected message in test attribute

5. CouchbaseClientObserveTests\When_Storing_A_New_Key_With_Master_Persistence_That_Key_Is_In_View_When_Stale_Is_False:

6. CouchbaseClientObserveTests\When_Storing_A_New_Key_Observe_Will_Fail_When_Cluster_Has_Too_Few_Nodes_For_Replication:
This would run fine if we run on cluster with only one server node.
Comment by Saakshi Manocha [ 29/Jan/13 ]
Also, many a times 'Operation time out' errors occur while running the test. I'm running test over VPN, is there any performance issue?
This happens generally with GenericView and SpatialView tests.
Although these tests run fine if debugged separately
Comment by Saakshi Manocha [ 05/Feb/13 ]
Following test failures have been fixed: (http://review.couchbase.org/#/c/24394/)
Refer SDKQE-182 to track status.

1. DefaultConfigurationSettingsTests\When_Http_Timeout_Is_Not_Set_And_Using_App_Config_Default_Is_20_Seconds
  and
2. DefaultConfigurationSettingsTests\When_Http_Timeout_Is_Not_Set_And_Using_Code_Config_Default_Is_20_Seconds:
Test fails with the error:
  Expected: 00:00:20
  But was: 00:01:00
Fix provided: Recommended http time out is 1 minute so change the test and verify that the test is now passing after this change.
 Change request uploaded in Gerrit and pending for code review.

3. CouchbaseClusterBucketAdminTests\When_Creating_New_Bucket_With_Ram_Quota_Less_Than_100_Argument_Exception_Is_Thrown:
  The exception message text was incorrect
Expected message containing: Quota.RAM
 but was: RamQuotaMB must be at least 100
Fix provided : change the expected message in test attribute and verify that the test is now passing after this change.
 Change request uploaded in Gerrit and pending for code review.
  
4. DocHelperTests:
Failure: Expected: String containing ""_id":"8675309""
But was: "{"id":"8675309", "message" : "Test" }"\
Fix provided is: remove the unnecessary underscore from id and test will pass. Change request uploaded in Gerrit and pending for code review.
Comment by Saakshi Manocha [ 04/Mar/13 ]
Few more issues corrected:
(a) http://review.couchbase.org/#/c/24977/
NCBC-234: Return CAS value with ExecuteGetJson

(b) http://review.couchbase.org/#/c/24978/
NCBC-236: Fix view param JSON serialization tests
Comment by Saakshi Manocha [ 04/Mar/13 ]
More tests added :
http://review.couchbase.org/#/c/24980/

1. CouchbaseAuthenticatedViewTests ->
(a) Added new test :
When_Bucket_Is_Authenticated_And_Bad_Credentials_Are_Provided_Exception_Is_Thrown

2. CouchbaseClientGetTests ->
(a) Added new tests:
When_Getting_Multiple_Non_Existent_Keys_Result_Is_Not_Successful
and When_Getting_A_Zero_Length_Key_No_Exception_Is_Thrown_And_Success_Is_False
(b) Renamed
When_Getting_Multiple_Keys_Result_Is_Successful -> When_Getting_Multiple_Existent_Keys_Result_Is_Successful

3. CouchbaseClientObserveTests ->
(a) Added new tests:
When_Storing_A_New_Key_Observe_Will_Succeed_With_Zero_Persistence_And_Zero_Replication
and
When_Storing_A_New_Key_Observe_Will_Pass_With_Replication_More_Than_Available_Nodes
and
When_Storing_A_New_Key_Observe_Will_Fail_With_Persistence_More_Than_Available_Nodes

4. CouchbaseClientCasTests ->
(a) Added new tests:
When_Replacing_Item_With_Valid_Cas_Result_Is_Successful




[NCBC-84] Replica read command Created: 12/Jul/12  Updated: 29/May/13

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

Type: Improvement Priority: Major
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   
Implement a simple replica read command


 Comments   
Comment by Matt Ingenthron [ 29/Aug/12 ]
See http://www.couchbase.com/wiki/display/couchbase/Replica+Read for details on implementation.




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

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

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





[NCBC-29] programmatically set all the Couchbase configurations Created: 07/Mar/12  Updated: 29/May/13

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

Type: New Feature Priority: Major
Reporter: James Mauss Assignee: Matt Ingenthron
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.




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

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

Type: Improvement Priority: Major
Reporter: Karen Zeller 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-16] running integration tests under CI Created: 12/Jan/12  Updated: 29/May/13

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

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





[NCBC-14] building under CI Created: 12/Jan/12  Updated: 29/May/13

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

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


 Comments   
Comment by John Zablocki [ 13/Jan/12 ]
Currently building under CI.




[NCBC-162] Handle "no active vbucket" view failure Created: 23/Nov/12  Updated: 29/May/13

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

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Matt Ingenthron
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-100] Provide Extract of Comments for API Docs Created: 24/Aug/12  Updated: 29/May/13

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

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


 Description   
Need to be able to generate extract of comments, preferrably including method signatures for .NET




[NCBC-17] building shippable artifacts under CI Created: 12/Jan/12  Updated: 29/May/13

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

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





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

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

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: Matt Ingenthron
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).




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

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

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


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




[NCBC-242] ExecuteGet-multi should return detailed status results for each key Created: 27/Mar/13  Updated: 29/May/13

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

Type: Task Priority: Major
Reporter: John Zablocki 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: 29/May/13

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

Type: New Feature Priority: Major
Reporter: John Zablocki Assignee: Matt Ingenthron
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.




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

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

Type: Improvement Priority: Minor
Reporter: Saakshi Manocha Assignee: Matt Ingenthron
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-223] Check for SetTcpKeepAlive at runtime for Mono support Created: 05/Feb/13  Updated: 29/May/13

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

Type: Improvement Priority: Minor
Reporter: John Zablocki Assignee: Matt Ingenthron
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-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 membase. Created: 10/Nov/10  Updated: 29/May/13

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

Type: New Feature Priority: Minor
Reporter: Dustin Sallings Assignee: Matt Ingenthron
Resolution: Unresolved 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.




[NCBC-207] Could not find the pool '...' at http://host:8091/pools : password-less buckets make the other buckets unavailable Created: 17/Jan/13  Updated: 29/May/13

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

Type: Bug Priority: Minor
Reporter: guillaume.pitel Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Mono 2.10.8.1 (Debian 2.10.8.1-1ubuntu2.2) Ubuntu 12.04 / Couchbase server 2.0


 Description   
Hi, we stumbled on a minor bug.

After importing the beer bucket for testing purpose, we had this kind of errors : (Couchbase .Net 1.2 / mono client)

2013-01-17 11:13:28 [DEBUG] 1 Couchbase.MessageStreamListener - Starting the listener. Queue=True
2013-01-17 11:13:28 [DEBUG] 11 Couchbase.MessageStreamListener - Started working.
2013-01-17 11:13:28 [DEBUG] 11 Couchbase.MessageStreamListener - Looking for the first working node.
2013-01-17 11:13:29 [WARN] 11 Couchbase.ConfigHelper - Could not find the pool 'static' at http://10.1.44.1:8091/pools
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not resolve url http://10.1.44.1:8091/pools; trying the next in the list
2013-01-17 11:13:29 [WARN] 11 Couchbase.ConfigHelper - Could not find the pool 'static' at http://10.1.44.2:8091/pools
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not resolve url http://10.1.44.2:8091/pools; trying the next in the list
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not found a working node.
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - All nodes are dead, sleeping for a while.
2013-01-17 11:13:29 [INFO] 11 Couchbase.CouchbasePool - Received new configuration.
2013-01-17 11:13:29 [INFO] 11 Couchbase.CouchbasePool - Config is empty, all nodes are down.
2013-01-17 11:13:29 [DEBUG] 11 Couchbase.MessageStreamListener - Processing message:

It appears that if a bucket with authentication is passwordless (like the beer sample bucket at creation), the client cannot find the other pools.


 Comments   
Comment by John Zablocki [ 18/Jan/13 ]
Hi Guillaume,

How did this affect the client's behavior? Did operations fail? Could you describe a bit more what you were seeing?

Thanks.

-- John
Comment by guillaume.pitel [ 19/Jan/13 ]
It's the connection creation that fails, so every subsequent operation fails.




Generated at Tue Jun 18 18:00:03 CDT 2013 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.