Permalink
Commits on Feb 21, 2013
  1. SPY-112: Throw CancellationException when future is cancelled.

    This changeset throws the semantically more correct
    CancellationException when a operation future is cancelled. Old
    code that catches RuntimeExceptions will still work, but it allows
    for more flexible catching on the application level.
    
    Change-Id: I476f06e8989f06423be6e186c6565179e270df13
    Reviewed-on: http://review.couchbase.org/24654
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Feb 18, 2013
Commits on Feb 5, 2013
  1. Small checkstyle fix.

    Change-Id: I3b6e8613489c3d0b3dc969336121dcbb3e178531
    Reviewed-on: http://review.couchbase.org/24405
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Feb 5, 2013
Commits on Feb 1, 2013
  1. Skipping reconnect when not in cluster anymore.

    This changeset skips the reconnect phase when the to be
    reconnected node is not part of the cluster anymore. This
    information is based on the locator.
    
    Change-Id: I949ec1e78fd6b5fa73851d5461cbf3a70de11027
    Reviewed-on: http://review.couchbase.org/24232
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Jan 28, 2013
  2. SPY-111: Check if the node belongs to cluster before connect.

    This changeset makes sure a node belongs to the cluster (by
    verifying against the node locator), before trying to (re)-
    connect. This helps in situations where a node is scheduled
    for shutdown and therfore not part of the cluster, but is
    still alive and may be connectable. In this case, it will
    result in NPE or AssertionExceptions down the stack.
    
    Change-Id: Ib825b487fcd77c5cb9cf7d50e5b8b3c9c227cab5
    Reviewed-on: http://review.couchbase.org/24230
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Jan 28, 2013
Commits on Jan 29, 2013
  1. SPY-110: Update KetamaNodeLocator allNodes on reconfigure.

    This changeset updates the KetamaNodeLocator to also change the
    allNodes on reconfigure, not only the ketamaNodes. This fixes
    an issue where broadcast operations (which rely on the allNodes
    collection) were sent to the wrong targets.
    
    Change-Id: I1184ab8f3c564d181d832cad37e63ede2dabc631
    Reviewed-on: http://review.couchbase.org/24180
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Jan 24, 2013
Commits on Jan 16, 2013
  1. Minor checkstyle fixes.

    Change-Id: I0ead0bc582f99ce2b7c39db1ca1124f72d744c4d
    Reviewed-on: http://review.couchbase.org/23980
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    daschl committed with daschl Jan 16, 2013
  2. SPY-108: Verify connections are sound before completing them entirely.

    Without this change, the client considers the connection to be
    good any time a connection has been established.  This is not the
    case in some critical situations, such as a hung process or a very
    busy remote server.
    
    Solution is to ping the server with a version op, since that can happen
    before auth, and use that as a way to verify the thing is actually
    alive.
    
    Note there is also a refactoring in here renaming the variable for
    the node.
    
    Change-Id: Ie3c0bc967b0705df6e58bf8ef81b158db8576bf3
    Reviewed-on: http://review.couchbase.org/23840
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    ingenthr committed with daschl Jan 10, 2013
Commits on Jan 14, 2013
  1. SPY-107: Ensure state of timedout is known across IO and user threads.

    After seeing this in a log, I re-thought through the series of events here.
    
    This flag on the op is known by user threads and the IO thread.  Thus it
    is modified in these two different ways:
    
    * operation is created and enqueued
    * OperationFuture is returned
    * .get() is called on OF
     **timed out**
    
    * operation is removed from input queue
    * elapsed time is checked
      **timed out**
    
    Change-Id: I879f9b6459aa2fce1ddd97c5803da8c5392453a5
    Reviewed-on: http://review.couchbase.org/23798
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ingenthr committed with daschl Jan 9, 2013
Commits on Dec 3, 2012
  1. Fix checkstyle and javadocs errors

    Change-Id: I26c70eeb11b881ea0890a2ae8b1919a2169cbdc6
    Reviewed-on: http://review.couchbase.org/22054
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Oct 29, 2012
  2. SPY-63 Keys can be anything over binary protocol

    Change-Id: I8fcd92bac797f7bb610fd6bc42a8b78d27700785
    Reviewed-on: http://review.couchbase.org/21323
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
    apage43 committed with daschl Oct 3, 2012
Commits on Oct 13, 2012
  1. Don't increment volatile variables

    Incrementing a volitile int is not thread safe since it follows
    the read/modify/update pattern.
    
    Change-Id: Idd389ea6dd576376a6b4a01cd2d38e9a7ef7733c
    Reviewed-on: http://review.couchbase.org/21151
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 26, 2012
Commits on Oct 8, 2012
  1. JCBC-128: Add ZERO to the PersistTo ENUM.

    This small changeset is the prerequisite for a larger change
    in the JCBC client, so that it is possible to only wait for
    proper replication and not for persistence too. See the
    proper commit in couchbase-java-client tagged with JCBC-128
    for more details and tests.
    
    Change-Id: I3b1385a7a9553170a46d7ef72d6b537c0997b351
    Reviewed-on: http://review.couchbase.org/21415
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    daschl committed with mikewied Oct 8, 2012
  2. JCBC-105: Add stats key operation

    This only allows you to do stats key on the active vbucket, but
    we add the ability to get stats from the replica vbuckets
    later.
    
    Change-Id: I903741a5f31bc3653e313185f2193708876d029e
    Reviewed-on: http://review.couchbase.org/21200
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    mikewied committed with mikewied Sep 28, 2012
Commits on Sep 27, 2012
  1. Make unsynchronized LoggerFactory field syncronized

    Because the compiler or processor may reorder instructions, threads
    are not guaranteed to see a completely initialized object if the
    init function is called by two different threads.
    
    Change-Id: I33342891fe098f84791bf8358e82f31a4bc99d92
    Reviewed-on: http://review.couchbase.org/21152
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    mikewied committed with mikewied Sep 26, 2012
  2. Use Arrays.toString() when printing the contents of an array

    Just printing an array will print a useless value. Calling the
    Arrays.toString() function will at least try to print something
    useful.
    
    Change-Id: Ifd6a3da495835694b300cf7f94b96c79ee03f4bd
    Reviewed-on: http://review.couchbase.org/21153
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    mikewied committed with mikewied Sep 26, 2012
Commits on Sep 18, 2012
  1. JCBC-110: Delete operation in MemcachedClient now returns it's cas

    Change-Id: Id70241db2e4111f335b76ed9e6c6179d266aee94
    Reviewed-on: http://review.couchbase.org/20852
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 14, 2012
  2. JCBC-110: Observe operations return their handling node in gotData

    Change-Id: I56f5f1844f0388a750ab5b5b4703e616b1e2aa10
    Reviewed-on: http://review.couchbase.org/20851
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 14, 2012
  3. JCBC-110: Add accessor funcitons to observe enum classes

    Change-Id: If6c8ecd0fd5be178001db7db229b94a9184a8a2f
    Reviewed-on: http://review.couchbase.org/20849
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 14, 2012
Commits on Sep 17, 2012
  1. JCBC-110: Fix getCas function in operation future

    We need to wait for the operation to complete if we call getCas
    and the operation is not finished otherwise calling this function
    will incorrectly throw an exception.
    
    Change-Id: Iefd90f04f8ebdeaf569b69be6dea7deac03a2c80
    Reviewed-on: http://review.couchbase.org/20848
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 14, 2012
Commits on Sep 10, 2012
  1. Broadcast operations only send to specified nodes

    This was causing observe replica broadcast to always have a positive
    countdown latch and timeout.
    
    Change-Id: I4b49cb094ede8875757eb4b09d7b5a5ee50e848a
    Reviewed-on: http://review.couchbase.org/20655
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mikewied committed with ingenthr Sep 7, 2012
Commits on Aug 31, 2012
  1. Change cas for Observe Statuses, return OperationFuture on async.

    Change-Id: I11990b82473604406d0db9d1cdca000692023ed7
    Reviewed-on: http://review.couchbase.org/20327
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ragsns committed with ingenthr Aug 30, 2012
Commits on Aug 21, 2012
  1. Fixed issues with the Observe Method(s)

    Change-Id: Id2a1483bc1c75268f579b3df88ae4e8d488b6f46
    Reviewed-on: http://review.couchbase.org/19919
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ragsns committed with ingenthr Aug 21, 2012
Commits on Aug 19, 2012
  1. Add the node back to connected during reconnect. Issue 225.

    The connection was being added back a bit later than its
    reconnect, causing operations to continue to timeout.  It's
    not clear if this is platform specific or not, but this change
    is reported to work.
    
    See http://code.google.com/p/spymemcached/issues/detail?id=225
    
    Change-Id: I47960883b515a1d2b571e5b286179337dd960b2e
    Reviewed-on: http://review.couchbase.org/19847
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ingenthr committed with ingenthr Aug 19, 2012
  2. Fixed failing Unlock test

    Note this isn't a complete fix for handling unlock.  Several
    possible responses are ignored.  That is tracked under SPY-97
    for now.
    
    Change-Id: I20b0e9734c7fa170edcd38c76e59f353f4a4df41
    Reviewed-on: http://review.couchbase.org/19538
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ragsns committed with ingenthr Aug 13, 2012
Commits on Aug 17, 2012
  1. Changes for Observe.

    Change-Id: I94a0709e0856b5dd72d108feec9574b0836b4fbf
    Reviewed-on: http://review.couchbase.org/19537
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ragsns committed with ingenthr Aug 13, 2012
Commits on Aug 13, 2012
  1. Adding a getCas() for Store functions

    Change-Id: Ieced868b0b9870838801fd45eee010f61e215fd6
    Reviewed-on: http://review.couchbase.org/19534
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    ragsns committed with ingenthr Aug 12, 2012
Commits on Jul 30, 2012
  1. Fixed misc checkstyle errors which crept in.

    Change-Id: I72161b5867b12aa31206a8924f46651cc0566d11
    Reviewed-on: http://review.couchbase.org/19035
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    ingenthr committed with ragss Jul 30, 2012
  2. Change selection key logging to debug level.

    I was debugging with package net.spy.memcached at the INFO
    level and it was rather annoying seeing these selection key
    messages for each operation.  I believe they should be
    debug level
    
    Change-Id: Ifbb7b619f1e9d85433ff6c7a07ea4cc292737285
    Reviewed-on: http://review.couchbase.org/18996
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    ingenthr committed with mikewied Jul 28, 2012
Commits on Jul 25, 2012
  1. Revert ErrorCode and OperationStatus changes.

    This is a squashed revert of two separate commits. After
    disabling optimization, I still found failing tests. I had
    thought it was related at first, but after doing a bisect
    it clearly identified the "Create an ErrorCode class" as
    the culprit. In combination with the OperationState
    correctly being volatile, it would regularly fail in the
    midst of bulk operations.
    
    This commit reverts:
    "OperationStatus now has an error code"
     commit cdc26cd and
    "Create an ErrorCode class for error codes"
     commit 82ad6cb.
    
    Change-Id: Id6e04ed1787e140c5072a78cece682c45fe06313
    Reviewed-on: http://review.couchbase.org/18683
    Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    Tested-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
    ingenthr committed with ragss Jul 23, 2012
Commits on Jul 24, 2012
  1. Disable optimization by default, remove assert. SPY-88.

    This is only a workaround at the moment for SPY-88, but
    it was found that the addition of the assert with a
    javadoc change and changing OperationState to volatile
    would cause failures in test cases like the
    testParallelSetGet() indicating there is a thread
    safety issue.
    
    While trying to find the specific cause, it seems the best
    approach for now is to disable optimization.
    
    The assert, while correct, is also being disabled since
    it seems to trigger issues with getBulk which seems to
    call the complete() more frequently than it should.
    
    This combination of changes seems to be a tested, stable
    workaround until a proper fix may be implemented.
    
    Change-Id: I755b18aa487247a445657726ae2dc8dad6a27991
    Reviewed-on: http://review.couchbase.org/18670
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ingenthr committed with ingenthr Jul 21, 2012
  2. add support for TAP request/response with checkpoint info

    Change-Id: If646c70aaa345f3dd1191257dfcedc1aaacdc7b1
    Reviewed-on: http://review.couchbase.org/13571
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    mschoch committed with ingenthr Feb 24, 2012
Commits on Jul 23, 2012
  1. Correct test for StringUtils.join().

    Change-Id: I9c320db96a1a1587d39696195f44a1d775cdd0a8
    Reviewed-on: http://review.couchbase.org/18682
    Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ingenthr committed with ingenthr Jul 23, 2012
Commits on Jul 12, 2012
  1. add TAP Opcodes for start/end checkpoint

    Change-Id: Ic90fee141df1485ac55e6fdfc5a922f6a158803b
    Reviewed-on: http://review.couchbase.org/13570
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Marty Schoch <marty.schoch@gmail.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    mschoch committed with mikewied Feb 24, 2012
Commits on Jul 11, 2012
  1. Let offline try to work with already downloaded mvn.

    Change-Id: I7d41ef0e1781fc1c1f3b3ca01cf07edf5b3d3639
    Reviewed-on: http://review.couchbase.org/17667
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    ingenthr committed with ingenthr Jun 26, 2012
  2. JCBC-72: Make OperationException extendable

    This change is needed for a ViewException object in
    Couchbase Client.
    
    Change-Id: I7730bf378e9437d6575d5e9880295a25571d28f6
    Reviewed-on: http://review.couchbase.org/18196
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    mikewied committed with mikewied Jul 11, 2012