Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #5837 +/- ##
==========================================
- Coverage 87.06% 87.01% -0.05%
==========================================
Files 211 211
Lines 37778 37788 +10
Branches 1229 1229
==========================================
- Hits 32890 32883 -7
- Misses 4883 4900 +17
Partials 5 5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This reverts commit 142aca0.
kei-nan
left a comment
There was a problem hiding this comment.
In this PR a new Next call was added which creates a very unlikely call circle:
rpSafeLoader_ResetAndReturnLastCode -> rpSafeLoaderNext_Accumulate -> rpSafeLoaderNext_Yield -> rpSafeLoader_ResetAndReturnLastCode
We reviewed the flow and it seems unlikely to happen since when setting next to yield we know we have at least one result.
Approving after reviewing the flow.
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 2.8
git worktree add -d .worktree/backport-5837-to-2.8 origin/2.8
cd .worktree/backport-5837-to-2.8
git switch --create backport-5837-to-2.8
git cherry-pick -x 7587c226ed6c27691cd9a0437a7abec3dc18c255 |
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 2.10
git worktree add -d .worktree/backport-5837-to-2.10 origin/2.10
cd .worktree/backport-5837-to-2.10
git switch --create backport-5837-to-2.10
git cherry-pick -x 7587c226ed6c27691cd9a0437a7abec3dc18c255 |
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 8.0
git worktree add -d .worktree/backport-5837-to-8.0 origin/8.0
cd .worktree/backport-5837-to-8.0
git switch --create backport-5837-to-8.0
git cherry-pick -x 7587c226ed6c27691cd9a0437a7abec3dc18c255 |
* Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0.
* Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0.
* MOD-9174: Fix pipeline issues (#5837) * Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0. * Fix test config params to 2.8 multi-threading
MOD-9174: Fix pipeline issues (#5837) * Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0.
* Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0.
* Fix pager query resultLimit setting to initialization time * Change fix to call Next in safeLoader again * Enhance comment * wip * Fix safe-loader to not deplete the pipeline on first call * Fix test * Address review * Remove all of resultLimit in Pager * Revert "Remove all of resultLimit in Pager" This reverts commit 142aca0.
Pipeline fixes
SafeLoader last result-status
The SafeLoader's last result-status mechanism was such that an
RS_RESULT_OKstatus could have been returned even though a result was not populated.This PR fixes that mechanism to continue to poll the upstream in that case, instead.
Empty result not serialized
We do not serialize empty results from the shard pipeline, as such results are not expected by the coordinator which will in turn return an error. We instead crash in development, or warn the user that an empty result has been received for serialization via a log, and skip the serialization of that result in production.
The coordinator is prepared to get a result that does not have an id in the
FT.SEARCHpipeline, in which case it will gracefully return an error instead of crashing.Assertions added
This PR adds assertions to some critical places in our code:
Healthy result id from shard
The result id exists and is not
NULLin the coordinator response parsing logic.SafeLoader last result-status
The safe-loader CANNOT return
RS_RESULT_OKupon returning the last result status, since the result it returns is not populated.