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

Assertion failures and lack of memory handling in execution layer

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 6.5.0
    • 4.5.0, 4.5.1, 4.6.0, 4.6.1, 4.6.2, 4.6.3, 5.0.0
    • query

    Description

      The N1QL execution layer has no consistency checks of any sort and will crash if an expected child is missing, offering no information other than the stack of an execution operator, which is next to no use.

      What we should provide to make for useful diagnostic information is (in increasing order of importance)

      • the request text in the log alongside the stack or other diagnostic information
      • assertions during execution to the effect that the expected children exist - gracefully issuing an error and logging diagnostic information if the assertion fails
      • assertion during building the execution tree that an operator has been created correctly (i.e. memory has been allocated): error and logging again if not
      • assertion during building the execution tree that the newly created operator has been passed correct parameters (e.g. the children exist, etc, etc): error and log if not
      • assertion during operator copy that the copied operator is correct (same thing as the two points above).

      In order to implement the last 3 points, we need to change the interface of the New<Operator>() Copy() methods in execution to return errors - which is a pretty extensive change.

      The first two bullet points can be implemented fairly quickly.

      Attachments

        Issue Links

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

          Activity

            People

              marco.greco Marco Greco (Inactive)
              marco.greco Marco Greco (Inactive)
              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