.NET 1.3.8 iriparsing question


#1

Is iriparsing required if the .NET client 1.3.8 is used (along with couchbase 3.0) or is

Release Notes for Couchbase Client Library .NET 1.3.8 GA (13 August 2014)
http://docs.couchbase.com/couchbase-sdk-net-1.3/#release-notes-for-couchbase-client-library-net-138-ga-13-august-2014

This doc says it’s either / or.

NCBC-577: Enable IriParsing for supporting Views w/Couchbase Server 3.0

This fixes a breaking change in how Couchbase Server 3.0 handles view queries by associating a UUID with a bucket and how System.Uri handles unicode encoding across different versions of the .NET Common Language Runtime (CLR). Users running under .NET Framework 4.5 and later are unaffected. Users who want to run Couchbase Server 3.0 with CLR version 4.0 or earlier must either use version 1.3.8 of the Couchbase .NET SDK or provide the following elements in their App.Config or Web.Config to enable IriParsing:

While the release notes state AND

http://docs.couchbase.com/admin/admin/rel-notes/rel-notes3.0.html

Workaround
In addition to the patch released with Couchbase .NET SDK version 1.3.8, add the following element to your App.Config or Web.Config to enable support for all SDK and Server versions.


Customers who are not ready or cannot upgrade their Couchbase .NET SDK’s to 1.3.8 or greater are strongly advised to add this element to their deployments if they intend to use the Couchbase .NET SDK with Couchbase Server 3.0 or greater.

Please confirm if both 1.3.8 client and iripasing are required or just updating the client to 1.3.8.

In addition, Microsoft has a vulnerability with iriparsing which is addressed with a patch here --> https://technet.microsoft.com/en-us/library/security/ms14-057.aspx. Folks may not be able to enable iriparsing until that patch is installed.

Thanks,

Matt


#2

Hi Matt -

It’s all rather confusing, but I will summarize:

  1. IriParsing (enabled) is required to handle the Urls returned by versions >= 3.0 of the server
  2. By default, IriParsing is enabled for versions of the .NET framework 4.5+; for prior versions it is disabled
  3. Version 1.3.8 of the .NET client programmatically enables IriParsing which makes it work correctly with versions >= 3.0 of the server
  4. If you want to use a version of the client < 1.3.8 and use a server >=3.0, you need to enable IriParsing using the app config method.

Good point regarding the vulnerability!

I hope that helps,

-Jeff


#3

Great. Thanks for the clarification.


#4

Jeff -

So this issue is only for View operations correct? If Views is something that’s not in use in a cluster, would there be any compatibility issues using a .NET client < 1.3.8, under .NET 4, without the iriParsing?

Thanks,
Tom


#5

siwy202 -

No the problem is actually with cluster map configuration; without IriParsing enabled, you won’t be able to open a bucket from a 3.0 or better cluster. The server now sends a uuid along with the name of the bucket in the config - in there is a space between the two, without IriParsing enabled the space is incorrectly encoded/decoded.

-Jeff


#6

Thanks for the clarification Jeff!