Permalink
Commits on Jan 30, 2016
  1. NCBC-1063: Unread data on socket after ThreadAbortException

    jeffrymorris committed Jan 14, 2016
    Change-Id: I3c91b2fd7b3b062ae3f663535b8a12de83d0ba0c
    Reviewed-on: http://review.couchbase.org/58640
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Apr 17, 2015
  1. NCBC-860: Use IOControl to set heartbeat settings on each TCP connection

    jeffrymorris committed Apr 16, 2015
    Motivation
    ----------
    By default, TCP keep-alives are enabled, but the client depended upon the
    OS level settings for tcp_time and tcp_interval. This commit allows these
    setting to be enabled on a per connection level by using IOCTL and setting
    the SOL_KEEPALIVE_VALS. The default is that keep-alives are enabled and
    the time and interval are set at 2hrs and 1s respectively.
    
    Modifications
    -------------
    A extension method was added to the SocketExtensions class that marshals
    the settings to a managed equivalent of SOL_KEEPALIVE_VALS and call
    WSAIoctl via IOControl. Additionally, the
    DefaultConnectionFactory.GetGeneric was modified so that this method is
    called with the settings defined in the PoolsConfiguration class.
    
    Result
    ------
    The TCP keep-alive settings can now be set an application level
    granualarity.
    
    Change-Id: I5efd201259c3bd12bf5e3f8ff0b2faafe643d9b3
    Reviewed-on: http://review.couchbase.org/49816
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>
Commits on Feb 16, 2015
  1. NCBC-805: use graceful pool teardown for dispose only

    jeffrymorris committed Feb 11, 2015
    Motivation
    ----------
    When the SocketPool is finalized, we do not want to block the finalization
    thread, so we simply dipose of everything and suppress any unhandled
    exceptions.
    
    Modifications
    -------------
    The SocketPool class was modified so that if the Dispose method is called
    during finalization, it will simply go through and attempt to dispose of
    each connection. If an exception is thrown, it will be suppressed.
    
    Result
    ------
    If disposed is called by a non-finalization thread, the client will
    attempt to close each socket using a backoff algorithm. However, if the
    finalization thread calls Dispose, each socket will be closed without
    regard to the status of the socket.
    
    Change-Id: Ic684ee609f6e715560be228432eb30e75459135a
    Reviewed-on: http://review.couchbase.org/46660
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>
Commits on Nov 4, 2014
  1. NCBC-614: Review and reduce verbosity of logging in INFO mode

    jeffrymorris committed Oct 31, 2014
    Change-Id: I3e3290e6e2db7c214f2570d743d1b1452d5c6749
    Reviewed-on: http://review.couchbase.org/42682
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  2. NCBC-643: TimeSpan expiration under 1 sec results in an infinite timeout

    jeffrymorris committed Oct 31, 2014
    Change-Id: Ie59854217cdb5e1f9a71c19a77528f50b3f486bb
    Reviewed-on: http://review.couchbase.org/42680
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  3. NCBC-691: Default lock time to 15 seconds

    jeffrymorris committed Oct 31, 2014
    The maximum lock in 2.5.1 and 3.0.0 is 30 secs, the default is 15 seconds.
    Any attempt to set a lock higher than the maximum results in the default
    being used. This patch sets the default locktime to 15 seconds, which was
    previously TimeSpan.Zero. The code already throws a AOOR exception if the
    locktime is longer than 30 seconds.
    
    Change-Id: I6d1eddf6b670b4afc6340931d78a4fc7b9750b7b
    Reviewed-on: http://review.couchbase.org/42675
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>
Commits on Oct 31, 2014
  1. NCBC-621: Handle uncaught exception if IriParsing is not supported by…

    jeffrymorris committed Oct 1, 2014
    … platform
    
    Change-Id: I5da0bdf2cdc26831d9df2679aad182259ffdd6ec
    Reviewed-on: http://review.couchbase.org/41801
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>
  2. NCBC-616: Fixed PagedView with only one page

    MikeGoldsmith authored and jeffrymorris committed Aug 22, 2014
    When using a PageView with a page size larger than the number of items
    in the result set, the MoveNext() operation indicates there are no items
    in the current page and returns false.
    
    The fix changes the expression to check if there the nextId is not null
    and if the current page contains any items.
    
    Change-Id: I1b11f3820606f77e937d839ec7e7de48d4dfa6af
    
    Initial load of paged view checks item collection to determine if items are available
    
    Change-Id: I9a19b728945aa3ac639034efe779eb0b3789fe70
    Reviewed-on: http://review.couchbase.org/41122
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Oct 30, 2014
  1. NCBC-655: Minimize time in lock to reduce contention

    unhuman authored and jeffrymorris committed Oct 9, 2014
    Change-Id: Ibb05a7144fd570eedaedd0c4b5bd9286446c2f18
    Reviewed-on: http://review.couchbase.org/42242
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Aug 30, 2014
  1. NCBC-583: Ensure Dispose is call on every MD5CryptoServiceProvider cl…

    jeffrymorris committed Aug 30, 2014
    …ass usage
    
    Change-Id: Iae83cd67765c74c9d50d3e982b9f750d61804816
    Reviewed-on: http://review.couchbase.org/41121
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>
Commits on Aug 13, 2014
  1. NCBC-577: Support uuid with bucket name in View query against 3.0

    jeffrymorris committed Aug 10, 2014
    Change-Id: I6e438f80f9d60ae5a0e37b63b7bbaca1c6c4e48a
    Reviewed-on: http://review.couchbase.org/40511
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Aug 4, 2014
  1. NCBC-564: Respect JsonSerializer settings for deserialization

    bchavez authored and jeffrymorris committed Jul 26, 2014
    Change-Id: I187cc134445b293d92c3e8459750a04cc8962f23
    Reviewed-on: http://review.couchbase.org/40278
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Aug 1, 2014
  1. [NCBC-555] Multi get can fail and return a null StatusCode

    jimwwalker authored and jeffrymorris committed Jul 18, 2014
    Change-Id: Ie2fd1d9d62c04c04e54af4b8fc89b52c363f437b
    Reviewed-on: http://review.couchbase.org/39658
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Jul 21, 2014
  1. Deleting Nuget config

    jeffrymorris committed Jul 21, 2014
    Change-Id: I059c5694123971c6f22613282c56e1d5548df428
    Reviewed-on: http://review.couchbase.org/39613
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Commits on Jul 1, 2014
  1. NCBC-500: IsArrayOrCollection does not support IEnumerable

    weitaolee authored and jeffrymorris committed May 25, 2014
    IsArrayOrCollection error when type is IEnumerable<T>
    TestCase: IsArrayOrCollection(typeof(IEnumerable<string>));
    result is false
    
    Change-Id: I5dfb42f2221760ffcad83eb6c1a75b368ef43a6e
    Reviewed-on: http://review.couchbase.org/38997
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>
  2. NCBC-513: Invalid timespan calculation in MemcachedClient.cs

    jeffrymorris committed Jun 30, 2014
    Change-Id: Iccd14e601e73c311770029ed0be1eabf23c2aeb3
    Reviewed-on: http://review.couchbase.org/38994
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>
Commits on Jun 4, 2014
  1. NCBC-494: Finalizer throws NRE if Pools has already been finalized/GC'd

    jeffrymorris committed Jun 4, 2014
    Change-Id: I8f1fd2e6acd55f0faf3be2cc44b6eedbdfbeb38b
    Reviewed-on: http://review.couchbase.org/37879
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  2. NCBC-499: Refactor InternalPoolImpl so that NRE is not thrown

    darryljjennings authored and jeffrymorris committed Mar 27, 2014
    Change-Id: Ie4a757a320b988446ab0e5a63db314c67dc3818f
    Reviewed-on: http://review.couchbase.org/37840
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  3. NCBC-503: CouchbaseCluster construction is missing un/pw

    rafikhan authored and jeffrymorris committed Feb 4, 2013
    When attempting to use a bucket that requires authentication, the request
    fails with 401 unauthorized. This patch fixes the issue by passing the
    username and password when making the request for a bucket.
    
    Change-Id: I3e192afae7c3cc4c03d2afd575aa0ca66af86382
    Reviewed-on: http://review.couchbase.org/37869
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  4. NCBC-457: Change verbosity of HB logging to DEBUG

    jeffrymorris committed May 5, 2014
    Change-Id: Iddada42d7adffeebffc86321893fe9b09a9640f0
    Reviewed-on: http://review.couchbase.org/36715
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  5. NCBC-485: TimeSpan TTLs less than 30 days are sent as raw second TTLs.

    jimwwalker authored and jeffrymorris committed May 22, 2014
    Change-Id: Idbcca8bf03706b9adb5c3111a808d6c110ba4ab0
    Reviewed-on: http://review.couchbase.org/37443
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on May 5, 2014
  1. NCBC-438: Add finalizer to CouchbaseClient to ensure resources are re…

    jimwwalker authored and jeffrymorris committed Apr 28, 2014
    …leased
    
    Add a destructor to CouchbaseClient which disposes the SocketPool which gives
    reliable socket tear down for applications cleanly terminating.
    
    Change-Id: I0de5a28309a6e7d648a8deec19e194abbf558b43
    Reviewed-on: http://review.couchbase.org/36407
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Apr 11, 2014
  1. NCBC-425: SetSocketOption throws exception under mono runtime

    jeffrymorris committed Apr 1, 2014
    This fixes the bug that threw the exception and makes the LingerOptions an
    optional configuration by adding lingerEnabled and lingerTime options to the
    socketPool configuration in the app.config. The socket will use the
    default linger options (as defined by the IP stack) if lingerEnabled is
    false or not set in the configuration. If lingerEnabled is true and the
    lingerTime value is specified is zero, then no linger time will be used.
    If lingerEnabled is true and the lingerTime is greater than zero, the
    linger time will be set to the value specified in the lingerTime option.
    You can change these values like so in the App.Config:
    <socketPool lingerEnabled=true lingerTime=00:00:10/>
    
    Ref: LingerOption Class MSDN
    
    Change-Id: If0cc540c077b59ab9684fd7b0b8559dac8e9b73e
    Reviewed-on: http://review.couchbase.org/35163
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>
Commits on Apr 9, 2014
  1. NCBC-388: Improve NUnit Tests : DeleteBucket() should be called befor…

    saakshimanocha authored and jeffrymorris committed Mar 20, 2014
    …e checking that the bucket is deleted and is no longer listed.
    
    Change-Id: I7278b3e9bb653632a2458253370f81b9df3c690f
    Reviewed-on: http://review.couchbase.org/34736
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Apr 2, 2014
  1. NCBC-415: Fixes regression bug in which wrong GetView overload was ca…

    jeffrymorris committed Mar 11, 2014
    …lled
    
    This is the same fix as NCBC-425 but adds Unit Tests.
    
    Change-Id: I62fc4091d1827d33fed3ddaa9f01a0bdf9ec7bc1
    Reviewed-on: http://review.couchbase.org/34391
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Apr 1, 2014
  1. NCBC-416: Method overloading ambiguity with named parameters

    ViratSarswat authored and jeffrymorris committed Mar 6, 2014
    This is a fix for a regression bug where the method overloading was
    differentiated with return type only; hence wrong method was invoked from
    public IView GetView(string designName, string viewName). This caused
    the rows to be null when iterating over a view with no output other than
    it's keys.
    
    Change-Id: Ief3a66588e2b8a30bdbb7038366fc8904f76bf82
    Reviewed-on: http://review.couchbase.org/35108
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Mar 19, 2014
  1. NCBC-399: Standardize to SPACES for indenting in source files

    jeffrymorris committed Mar 11, 2014
    Replaced all tabs \t with four spaces per the VS standard
    
    Change-Id: I8049ff3e2d3c7da33c6209c9183c0836afa95e67
    Reviewed-on: http://review.couchbase.org/34397
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Mar 4, 2014
  1. NCBC-261: Use an enumeration instead of integers for return codes

    jeffrymorris committed Mar 3, 2014
    Change-Id: Ib266358590be4dc25ca33b065aa9fc649fe9d18a
    Reviewed-on: http://review.couchbase.org/34125
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  2. NCBC-408: Retry Node Check during View Operations

    jeffrymorris committed Mar 3, 2014
    During a View operation, the client will look for a node to use to execute
    the operation against. In certain cases (rebalance, etc) the list of nodes
    may be empty. This will add an additional check if a candidate node is not
    found before the client gives up and returns a "View {0} was mapped to a
    dead node, failing." error.
    
    Change-Id: Iecfb45855e9e8c113eb7f8424fd039074a7c6f0f
    Reviewed-on: http://review.couchbase.org/34123
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
  3. NCBC-407: Retry View Operations When Specific Error Cases are Encount…

    jeffrymorris committed Feb 28, 2014
    …ered
    
    This patch enables the client to retry view operation when specific error
    cases are encountered. For example, all errors in the 300 range are
    retried and in certain cases 404 and 500's are retried as well.
    
    Change-Id: Ifde7a2d74a7f7ccd150ab782a9b6dbdd65d5e209
    Reviewed-on: http://review.couchbase.org/34007
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Commits on Feb 26, 2014
  1. NCBC-398: Support Json.NET >= 6.0.1

    jeffrymorris committed Feb 26, 2014
    This commit removes restriction on Json.NET version and bumps the build
    version from Nuget Version 4.5.11 to 5.0.8 (assembly versions are slightly
    different). 5.0.8 is the last released version before 6.0.1.
    
    Change-Id: I446d22f790862ffc45afd6e1e27c32d52e166a7a
    Reviewed-on: http://review.couchbase.org/33938
    Reviewed-by: Brett Lawson <brett19@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Commits on Feb 18, 2014
  1. NCBC-388: Test case improved, first add a key and then verify that St…

    saakshimanocha committed Feb 11, 2014
    …ore() should fail if we try to add it again.
    
    Change-Id: If534ca3d8e6b22817ccdcf28c291000a1fcd9759
    Reviewed-on: http://review.couchbase.org/33437
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
    Tested-by: Saakshi Manocha <saakshi.manocha@globallogic.com>
  2. NCBC-394: Add 'Warn' Level Logging to 'core' configuration classes

    jeffrymorris committed Feb 18, 2014
    Change-Id: I117aeb5cf57624e2e012f6a2e8ba0198de6b54d0
    Reviewed-on: http://review.couchbase.org/33694
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>
  3. NCBC-396: Log the creation of client instances

    jeffrymorris committed Feb 18, 2014
    Serializes the client configuration and writes it to the log appender when
    log level is set to Info.
    
    Change-Id: I522f0330182d8f93b7bf04af3084079ab631ce6f
    Reviewed-on: http://review.couchbase.org/33693
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
  4. NCBC-395: Assign each client instance an identifer

    jeffrymorris committed Feb 18, 2014
    Change-Id: Ib20248cb80a0a88e6de8c87c54f5176e85449f63
    Reviewed-on: http://review.couchbase.org/33691
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>