Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-45558

FTS: Request for list of retryable error messages

    XMLWordPrintable

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • fts
    • None
    • 1

    Description

      The server sometimes returns HTTP status code 400 (Bad Request) in response to valid requests issued shortly after index creation. SDK team would like to improve user experience by making these requests eligible for automatic retry, and we could use your guidance.

      Would you be able to come up with a list of HTTP status codes / error messages that represent retryable errors?

      Some examples of the kinds of messages we're wondering about:

      no planPIndexes for indexName
      pindex_consistency mismatched partition
      pindex not available 

       

       

      Attachments

        Issue Links

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

          Activity

            abhinav Abhinav Dangeti added a comment - - edited

            I've put together a couple of lists (pretty sure I'll need to be adding more) ..

            Here's the first ..

            ERROR/REASON DESCRIPTION RESPONSE STATUS RESPONSE DESCRIPTION ACTION
            success query was processed successfully 200 Ok great
            query request rejected high memory consumption, throttler steps in 429 Too many requests retry-able
            authentication failure incorrect auth credentials or no permissions 403 Forbidden no-retry
            malformed query request unrecognized/bad query 400 Bad request no-retry
            page not found endpoint is invalid 404 Not found no-retry
            pre-condition failed pre-condition not met - consistency error 412 Precondition failed retry-able; conditional - for as long as sequence number(s) in consistency vector is expected
            .* an error that the server can potentially recover from 500 Internal server error retry-able

            For the above failures, the "status" in the search response would just say "fail".

            Partial errors

            Now it is possible for "status" to not say fail when some of the index partitions have reported failures. This is when the user will see a partial result set for their query. Here's a sample response ..

            {
              "status": {
                "total": 6,
                "failed": 2,
                "successful": 4,
                "errors": {
                    "pindex_name_1": "xyz",
                    "pindex_name_2": "xyz"
                }
              },
              "request": {
                "query": {
                  ...
                },
                "size": 10,
                "from": 0,
                "facets": {},
                "sort": [
                  "-_score"
                ]
              },
              "hits": [...],
              "total_hits": ...,
              "max_score": ...,
              "took": ...,
              "facets": {}
            } 

             

            If one or more of the index partitions failed to cater to the request, the user can see partial results, in which case the response status is 200 and the errors object in the response will be of non-zero length.

            Partial ERROR DESCRIPTION ACTION
            context deadline exceeded request wasn’t processed/responded-to by the partition in the requested time period retry-able
            no planPIndexes for indexName FTS node in the process of a rebalance, partitions are being moved retry-able
            bleve: pindex_consistency mismatched partition RYOW failure - received data from a vbucket with a different UUID while waiting on a sequence number - possibly due to KV rebalance/failover no-retry
            pindex not available one or more primary index partitions (that do not have replicas) have been failed over (need to rebalance to set them up again) retry-able; conditional - upon rebalance after failover
            cannot perform operation on empty alias one or more index partitions are in the process of being setup during a rebalance retry-able

             

            abhinav Abhinav Dangeti added a comment - - edited I've put together a couple of lists (pretty sure I'll need to be adding more) .. Here's the first .. ERROR/REASON DESCRIPTION RESPONSE STATUS RESPONSE DESCRIPTION ACTION success query was processed successfully 200 Ok great query request rejected high memory consumption, throttler steps in 429 Too many requests retry-able authentication failure incorrect auth credentials or no permissions 403 Forbidden no-retry malformed query request unrecognized/bad query 400 Bad request no-retry page not found endpoint is invalid 404 Not found no-retry pre-condition failed pre-condition not met - consistency error 412 Precondition failed retry-able; conditional - for as long as sequence number(s) in consistency vector is expected .* an error that the server can potentially recover from 500 Internal server error retry-able For the above failures, the " status " in the search response would just say " fail ". Partial errors Now it is possible for "status" to not say fail when some of the index partitions have reported failures. This is when the user will see a partial result set for their query. Here's a sample response .. { "status" : { "total" : 6 , "failed" : 2 , "successful" : 4 , "errors" : { "pindex_name_1" : "xyz" , "pindex_name_2" : "xyz" } }, "request" : { "query" : { ... }, "size" : 10 , "from" : 0 , "facets" : {}, "sort" : [ "-_score" ] }, "hits" : [...], "total_hits" : ..., "max_score" : ..., "took" : ..., "facets" : {} }   If one or more of the index partitions failed to cater to the request, the user can see partial results, in which case the response status is 200 and the errors object in the response will be of non-zero length. Partial ERROR DESCRIPTION ACTION context deadline exceeded request wasn’t processed/responded-to by the partition in the requested time period retry-able no planPIndexes for indexName FTS node in the process of a rebalance, partitions are being moved retry-able bleve: pindex_consistency mismatched partition RYOW failure - received data from a vbucket with a different UUID while waiting on a sequence number - possibly due to KV rebalance/failover no-retry pindex not available one or more primary index partitions (that do not have replicas) have been failed over (need to rebalance to set them up again) retry-able; conditional - upon rebalance after failover cannot perform operation on empty alias one or more index partitions are in the process of being setup during a rebalance retry-able  

            People

              abhinav Abhinav Dangeti
              david.nault David Nault
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty