[NCBC-258] Improvement needed around documentation of using singleton client Created: 07/May/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.8 |
| Type: | Improvement | Priority: | Major |
| Reporter: | Perry Krug | Assignee: | John Zablocki |
| 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-252] Docs/Library: Unlock after getl Created: 17/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.8 |
| Type: | Bug | Priority: | Major |
| Reporter: | Perry Krug | Assignee: | John Zablocki |
| 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-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-260] Improve discussion around using store versus executestore Created: 08/May/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.8 |
| Type: | Bug | Priority: | Major |
| Reporter: | Perry Krug | Assignee: | John Zablocki |
| 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-222] When node is unavailable for a view query, don't throw an InvalidOperationException Created: 05/Feb/13 Updated: 24/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: | John Zablocki |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
[NCBC-259] Enhance installation docs Created: 08/May/13 Updated: 24/May/13 Resolved: 24/May/13 |
|
| Status: | Closed |
| Project: | Couchbase .NET client library |
| Component/s: | docs |
| Affects Version/s: | 1.2.4 |
| Fix Version/s: | 1.2.7 |
| Type: | Improvement | Priority: | Major |
| Reporter: | Perry Krug | Assignee: | John Zablocki |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
Can we update the installation instructions in the manual with this greater detail that you've provided here? Right now, this page is awfully sparse: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/downloading.html Now on NuGet: CouchbaseNetClient – the core client, version 1.2.6. RestSharp and Hammock have been removed as dependencies. Logging assemblies are no longer included. NuGet will figure out whether to install 3.5 or 4.0. CouchbaseHttpClients – legacy support for RestSharp and Hammock. Unsigned, because RestSharp is not signed. CouchbaseLog4NetAdapter and CouchbaseNLogAdapter – new NuGet packages that pull in log4net and NLog as NuGet package dependencies instead of local assemblies. The S3 zip file contains directories for net40 and net35. Logging assemblies and dependencies are included. |
| Comments |
| Comment by John Zablocki [ 24/May/13 ] |
| http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-available-packages.html |
[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-162] Handle "no active vbucket" view failure Created: 23/Nov/12 Updated: 24/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: | John Zablocki |
| 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-174] Fix invalid tests in NUnit project. Created: 07/Dec/12 Updated: 24/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: | John Zablocki |
| 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: |
|
||||||||||
| Sub-Tasks: |
|
||||||||||
| 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/ (b) http://review.couchbase.org/#/c/24978/ |
| 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-249] We need documentation that explains how users can check for error codes Created: 06/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.8 |
| Type: | Bug | Priority: | Major |
| Reporter: | Mike Wiederhold | Assignee: | John Zablocki |
| 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-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: 24/May/13 |
|
| Status: | Open |
| 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: |
|
| 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) |
[NCBC-226] Docs: Reference installation Created: 11/Feb/13 Updated: 23/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: | John Zablocki |
| 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-265] Refactor solution so that Enyim is part of main source branch Created: 20/May/13 Updated: 23/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: | John Zablocki |
| 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-221] Docs: working with multiple buckets in the .NET client Created: 05/Feb/13 Updated: 23/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: | John Zablocki |
| 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-84] Replica read command Created: 12/Jul/12 Updated: 23/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: | John Zablocki |
| 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-214] Docs don't mention InnerResult Created: 30/Jan/13 Updated: 23/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: | John Zablocki |
| 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-236] JSON serialization tests for view params are broken Created: 04/Mar/13 Updated: 23/May/13 Resolved: 23/May/13 |
|
| Status: | Closed |
| Project: | Couchbase .NET client library |
| Component/s: | None |
| Affects Version/s: | 1.2.1 |
| Fix Version/s: | 1.2.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | John Zablocki | Assignee: | John Zablocki |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
[NCBC-223] Check for SetTcpKeepAlive at runtime for Mono support Created: 05/Feb/13 Updated: 23/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: | John Zablocki |
| 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-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 |
[NCBC-257] During rebalance client tries to connect the primary node only Created: 02/May/13 Updated: 23/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: | John Zablocki |
| 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-264] document the release process Created: 17/May/13 Updated: 23/May/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 | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| 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! |
[NCBC-266] Garbled error message when CAS value does not match Created: 21/May/13 Updated: 21/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: | John Zablocki |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| 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-15] running unit tests under CI Created: 12/Jan/12 Updated: 21/May/13 Resolved: 21/May/13 |
|
| Status: | Resolved |
| Project: | Couchbase .NET client library |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | Matt Ingenthron | Assignee: | Saakshi Manocha |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Comments |
| Comment by Matt Ingenthron [ 17/May/13 ] |
| Perhaps you have this one done? |
| Comment by Saakshi Manocha [ 21/May/13 ] |
|
yes the tests are here: http://sdkbuilds.couchbase.com/job/couchbase-net-client/ |
[NCBC-111] Hangs after threads are aborted Created: 04/Sep/12 Updated: 21/May/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: |
|
| 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! |
[NCBC-70] Need to be able to pass connection pool/list to Create Created: 14/Jun/12 Updated: 20/May/13 Resolved: 20/May/13 |
|
| Status: | Closed |
| Project: | Couchbase .NET client library |
| Component/s: | library |
| Affects Version/s: | 1.0 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Karen Zeller | Assignee: | John Zablocki |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: | All development platforms | ||
| Description |
|
Need to be able to specify more than one possible URL for connection and pass that in when creating a new couchbase client, to avoid failure to connect if node is down.
Workaround sample code needed too in interim. Could follow PHP model: while (!client) ...attempt connection from URLs in array |
| Comments |
| Comment by John Zablocki [ 02/Aug/12 ] |
|
This is already possible. In config, you can specify multiple URIs or in an instance of the configuration object, you specify multiple URIs. <servers bucket="private" bucketPassword="private"> <add uri="http://10.0.0.33:8091/pools/default"/> <add uri="http://10.0.0.34:8091/pools/default"/> </servers> |
| Comment by Karen Zeller [ 02/Aug/12 ] |
|
I see. This is a a bit buried in the Getting Started/Tutorial:
http://www.couchbase.com/docs/couchbase-sdk-net-1.0/getting-started-hello.html I'll add it specifically in the Connection section of the .Net Language Ref.... |
| Comment by John Zablocki [ 02/Aug/12 ] |
| It's discussed in the configuration appendix - http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-configuration.html. |
| Comment by Wayne Siu [ 20/May/13 ] |
| Reopening the ticket for administrative reason. |