Improve symdb probe-locations reliability and output#333
Merged
ojung merged 1 commit intoDataDog:mainfrom May 5, 2026
Merged
Conversation
platinummonkey
previously approved these changes
Apr 10, 2026
6aa79b2 to
a3804ad
Compare
Add retry logic for transient 502/503/504 errors with exponential
backoff. Request partial results and poll until every service-version
reports a terminal indexing_status (COMPLETED, SOME_FAILED,
ALL_FAILED, NO_ATTACHMENTS) instead of the previous stable-polls
heuristic. Expose the flag as --no-allow-partial for callers that
prefer waiting for full indexing.
Switch the children endpoint to path-based /scopes/{id}/children.
Include argument type signatures in probe-location output
(e.g. MyClass:myMethod(int, String)). Track seen locations and
class IDs across polls via ProbeCollector to avoid duplicate work.
a3804ad to
627fac8
Compare
platinummonkey
approved these changes
May 5, 2026
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.
Summary
Improve symdb search reliability for large services by adding retry logic, partial-result polling driven by
indexing_status, and richer probe-location output with method signatures.Changes
src/client.rs,src/commands/symdb.rs)HttpErrorstruct preserving status codes for programmatic retry decisions (src/client.rs)allow_partial=true) and poll until every service-version reports a terminalindexing_status(COMPLETED,SOME_FAILED,ALL_FAILED,NO_ATTACHMENTS) with a 60s deadline (src/commands/symdb.rs)--no-allow-partialflag to disable partial results when callers prefer waiting for full indexing (src/main.rs,src/commands/symdb.rs)fetch_children_bulkfrom/scopes/children?scope_name=...to/scopes/{id}/children(src/commands/symdb.rs)format_probe_locationhelper that extracts ARG-type symbols intotype:method(arg1, arg2, ...)matching the API'swhere.signatureformat (src/commands/symdb.rs)ProbeCollectorto avoid duplicate children fetches (src/commands/symdb.rs)signaturefield toResolvedProbeand pass it through towhere.signaturein probe creation payload (src/commands/debugger.rs)TYPE:METHODandTYPE:METHOD(args)accepted as--probe-locationvalues (src/commands/debugger.rs)docs/EXAMPLES.mdto document the new signature formatTesting
Tested against large Java services (500–2600 probe locations). All complete within the 60s deadline, typically 12–29s depending on service size and indexing state.