Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traversal Bugfix #11310

Merged
merged 7 commits into from
Mar 19, 2020
Merged

Traversal Bugfix #11310

merged 7 commits into from
Mar 19, 2020

Conversation

markuspf
Copy link
Contributor

When executing subqueries the TraversalExecutor is reconstructed in place, which left the traverser, which is contained in the TraversalExecutorInfos in an undefined state. This patch resets the traverser on construction.

As a side effect the PathEnumerator is also fixed, which did not reset its _activeCursors variable correctly.

Scope & Purpose

(Can you describe what functional change your PR is trying to effect?)

  • Bug-Fix for devel-branch

This PR adds tests that were used to verify all changes:

  • Added Regression Tests (Only for bug-fixes)

@markuspf
Copy link
Contributor Author

@@ -226,7 +232,6 @@ auto TraversalExecutor::produceRows(AqlItemBlockInputRange& input, OutputAqlItem

while (true) {
if (_traverser.hasMore()) {
TRI_ASSERT(_inputRow.isInitialized());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't that assertion hold again, now that the traverser is reset properly? I'm thinking we need to have an input row before we can start traversing on anything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well I deleted this one, because doOutput has the same assertion as well; maybe I just put it back in there, too. It's not as if it costs anything

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I sometimes like such "unnecessary" assertions to document invariants to the reader.

@markuspf
Copy link
Contributor Author

@markuspf
Copy link
Contributor Author

Jenkins now blue.

@KVS85
Copy link
Contributor

KVS85 commented Mar 19, 2020

@jsteemann
Copy link
Contributor

  • Ran the offending query manually
  • Ran spring-data tests
  • Ran ASan tests

All good.

@KVS85
Copy link
Contributor

KVS85 commented Mar 19, 2020

@jsteemann
Copy link
Contributor

@KVS85
Copy link
Contributor

KVS85 commented Mar 19, 2020

@KVS85
Copy link
Contributor

KVS85 commented Mar 19, 2020

Tests blue.

@KVS85 KVS85 merged commit f512398 into devel Mar 19, 2020
@KVS85 KVS85 deleted the bug-fix/traversal-is-also-broken branch March 19, 2020 19:29
ObiWahn added a commit that referenced this pull request Mar 25, 2020
…telisting

* origin/devel: (80 commits)
  Feature/aql subquery execution block impl execute implementation batch sub queries (#11318)
  Fix isAdminUser. (#11326)
  Bug fix/fixes 20200318 (#11319)
  updated CHANGELOG
  Feature/out of search in range (#11324)
  fix "fix" for collection figures (#11323)
  updated CHANGELOG
  compilation fixes for clang-10s more strict checking (#11316)
  fix failing query (#11317)
  KShortestPathsExecutor must reset its KShortestPathFinder, including all caches. (#11312)
  Feature/aql subquery execution block impl execute implementation expected number of rows (#11274)
  Add DTRACE points to measure request timings. (#11245)
  USE_STRICT_OPENSSL is Off by default
  Fix usesRevisionAsDocumentId population and add syncByRevision flag (#11314)
  Traversal Bugfix  (#11310)
  Bug fix/issue 11275 (#11299)
  added simple test (#11301)
  Fix some typos (#10173)
  Documentation/typos 2020-01-24 (#10975)
  Update CHANGELOG
  ...
ObiWahn added a commit that referenced this pull request Mar 27, 2020
…ql-functions

* origin/devel: (25 commits)
  Bug fix/fixes 20200318 (#11319)
  updated CHANGELOG
  Feature/out of search in range (#11324)
  fix "fix" for collection figures (#11323)
  updated CHANGELOG
  compilation fixes for clang-10s more strict checking (#11316)
  fix failing query (#11317)
  KShortestPathsExecutor must reset its KShortestPathFinder, including all caches. (#11312)
  Feature/aql subquery execution block impl execute implementation expected number of rows (#11274)
  Add DTRACE points to measure request timings. (#11245)
  USE_STRICT_OPENSSL is Off by default
  Fix usesRevisionAsDocumentId population and add syncByRevision flag (#11314)
  Traversal Bugfix  (#11310)
  Bug fix/issue 11275 (#11299)
  added simple test (#11301)
  Fix some typos (#10173)
  Documentation/typos 2020-01-24 (#10975)
  Update CHANGELOG
  Some cleanup for new executor test code, which accidentally fixes ASAN failures in ExecutorTestHelper (#11283)
  LZ4 update (#11306)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants