EXPERIMENT: Defer starting DebuggerAgent until shared comms is ready#11378
Draft
mcculls wants to merge 1 commit into
Draft
EXPERIMENT: Defer starting DebuggerAgent until shared comms is ready#11378mcculls wants to merge 1 commit into
mcculls wants to merge 1 commit into
Conversation
In certain environments we need to hold back shared-communication over OkHttp because it may trigger early loading of things like JUL which can break apps that expect to set a custom log manager. At the moment we do this via SharedCommunicationObjects::whenReady - if comms is allowed the call goes ahead immediately, otherwise it is temporarily delayed until we know it is safe to proceed. This mechanism will hopefully be replaced eventually by a run-level style approach, but until then any services that are on by default and might use OkHttp should use this method to co-operate with the overall Agent startup. The DebuggerAgent has been gradually enabling more and more features by default, including recently source file tracking and symbol uploads. Since these may call out using OkHttp they should use SharedCommunicationObjects::whenReady. Given the current codebase structure the easiest way to apply this was on the main DebuggerAgent::run method.
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics. See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (356.13 µs) : 276, 436
. : milestone, 356,
basic (299.593 µs) : 291, 309
. : milestone, 300,
loop (8.989 ms) : 8981, 8996
. : milestone, 8989,
section candidate
noprobe (333.995 µs) : 306, 362
. : milestone, 334,
basic (292.026 µs) : 285, 299
. : milestone, 292,
loop (8.985 ms) : 8980, 8989
. : milestone, 8985,
|
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.
Motivation
In certain environments we need to hold back shared-communication over OkHttp because it may trigger early loading of things like JUL which can break apps that expect to set a custom log manager.
At the moment we do this via SharedCommunicationObjects::whenReady - if comms is allowed the call goes ahead immediately, otherwise it is temporarily delayed until we know it is safe to proceed. This mechanism will hopefully be replaced eventually by a run-level style approach, but until then any services that are on by default and might use OkHttp should use this method to co-operate with the overall Agent startup.
The DebuggerAgent has been gradually enabling more and more features by default, including recently source file tracking and symbol uploads. Since these may call out using OkHttp they should use SharedCommunicationObjects::whenReady. Given the current codebase structure the easiest way to apply this was on the main DebuggerAgent::run method.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]
Note: Once your PR is ready to merge, add it to the merge queue by commenting
/merge./merge -ccancels the queue request./merge -f --reason "reason"skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.