-
Notifications
You must be signed in to change notification settings - Fork 838
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
Traversal Bugfix #11310
Conversation
arangod/Aql/TraversalExecutor.cpp
Outdated
@@ -226,7 +232,6 @@ auto TraversalExecutor::produceRows(AqlItemBlockInputRange& input, OutputAqlItem | |||
|
|||
while (true) { | |||
if (_traverser.hasMore()) { | |||
TRI_ASSERT(_inputRow.isInitialized()); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
Jenkins now blue. |
All good. |
Tests blue. |
…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 ...
…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) ...
When executing subqueries the
TraversalExecutor
is reconstructed in place, which left the traverser, which is contained in theTraversalExecutorInfos
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?)
This PR adds tests that were used to verify all changes: