Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2224

Detect and fix resource leak

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.3.7, 3.4.2
    • Fix Version/s: 3.3.8, 3.4.3, 3.5.0
    • Component/s: process
    • Labels:
      None

      Description

      During the execution of the query the underlying provider layer might open some resources such as cursors or iterators which should be closed on completion of execution of the query. This is largely done by calling Traversal.close() method at the end of the traversal.

      However, there are bugs in the query processor which lead to a leak of these resources. As an example, consider the following query:

      g.V().not(__.V().out()).fold().unfold()

      The implementation of not() step creates a child traversal which would open an iterator(aka resource) at the storage layer but due to a bug in TraversalUtil.java, it will never close this traversal (even on calling Traversal.close() on the global Traversal). This leads to open resources on the storage layer.

      The purpose of this task is to add a framework for detecting an iterator leak and consequently fixing the bugs unearthed by the new framework.

        Attachments

          Activity

            People

            • Assignee:
              spmallette Stephen Mallette
              Reporter:
              divijvaidya Divij Vaidya

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment