Uploaded image for project: 'Java Couchbase JVM Core'
  1. Java Couchbase JVM Core
  2. JVMCBC-1534

DurabilityInvalidLevel in transactions cleanup

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.7.1
    • None
    • None
    • None
    • 0

    Description

      Couchbase Server resposne to transaction cleanup request with "DurabilityInvalidLevel." Accoridng to Jim, this means the client encoded the durability level as outside the range [1,3] or specified an invalid timeout.

      The following log message shoes the durability was represented as `durability=Optional[NONE]` instead of `durability=Optional.empty()`.

      MemcacheProtocol.mutationFlexibleExtras() doesn't expect this – it only checks for empty optional, and is probably encoding `0` as the durability level, which the server rejects.

      We could take a few different approaches. Simplest might be to add a check for `durability=Optional[NONE]` in mutationFlexibleExtras(), and treat it the same as Optional.empty().

      Another possible solution would be to re-evaluate whether we need an Optional at all – maybe DurabilityLevel.NONE is sufficient to indicate an absence of synchronous durability requirement. Might need to see how this interacts with legacy durability (persistTo, replicateTo).

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              david.nault David Nault
              david.nault David Nault
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty