Repository navigation
Fix follow-ups from the discovery, paging and replica PRs (#1610-#1614) - #1618
Merged
Merged
Conversation
docs/capabilities.json accounts for every public C declaration. #1611 added neverd_session_discover_functions_step without listing it, which fails RepositoryCapabilityTests.test_repository_manifest_is_honest_and_executable. List it with the general SDK API beside the synchronous discovery call.
A retained discovery job was read before its revision was compared, so a job started for an earlier list or image that threw made the next poll or synchronous call fail for the current image: the worker then marked that image's reference index unavailable without discovering it, and synchronous discovery returned -1 without running. Compare the revision first and drain a stale job's result and failure alike; the current image's discovery runs, and a failure of its own snapshot is still reported.
Cancel detaches the speculative source prefetch without completing it, so AnalysisPool kept preparing_ set until the project changed. Any later read queued alone on the first lane was then taken for that preparation, and an independent view waited behind it instead of using the idle second replica. Clear the preparation state when cancellation does not keep its owner.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three defects found while reviewing the merged #1610-#1614:
neverd_session_discover_functions_stepwas not accounted for indocs/capabilities.json, soRepositoryCapabilityTests.test_repository_manifest_is_honest_and_executablefails on every build of dev. It is now listed with the general SDK API.takeDiscoveryJobcalledget()before comparing the job's function-list revision. A job started for an earlier list or image that threw therefore failed the next poll (or synchronous call) for the current image: the worker marked that image's reference index unavailable without discovering it, and synchronous discovery returned -1 without running. The revision is now compared first; a stale job's result and failure are drained alike, and the current snapshot's own failure is still reported.AnalysisPool::preparing_set until the project changed. Any later read queued alone on the first lane was then taken for that preparation, and an independent view waited behind it instead of using the idle second replica.Merging the PRs also required adapting dev's newer unsized-body reader and call graph to #1613's four-argument
decodeFunctionsvisitor; that is in the #1613 branch's merge commit (48abecc).Verification (Linux x64, Release, clang 23):
SessionCAPITest.DiscoveryStepsReportOnlyTheCurrentSnapshotsFailurefails without the SDK fix (-1 from the poll) and passes with it; fullNeverDSessionCAPITests: 197 passed.WorkbenchTests::cancelledPrefetchDoesNotHoldItsLanefails without the GUI fix and passes with it, together with the Reuse analysis replicas for bounded source preparation #1612 replica tests; fullneverd-gui-tests: 196 passed, 1 failed (searchResultsClearOnFailureCloseAndProjectSwitch, which fails identically on dev before these merges, 66e7d43).scripts.tests.test_check_capabilities ... test_repository_manifest_is_honest_and_executablepasses.NeverDWorker*): 43 passed, including both discovery-readiness backends and the CLI/worker instruction-flow test; 6 were not built locally (Not Run).Not addressed here:
HighControlFlowSemantics.UnreachableCleanupDropsOnlyUnreferencedReturnsAfterSourceTrapsfails the lift qualification on dev independently of these PRs (none of them touches lift code; it also fails locally on the merged dev).