Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Specify whether error serialization timing should be captured
A previous commit #2900 migrated the extension for reporting tracing information to engine into an abstraction called the treeBuilder. The treeBuilder was then utilized by both a federatedExtension and the normal extension, but the two extensions have different end-timing semantics. In the normal extension, the end-timing is captured at the end of the *request*, whereas in the federated extension, the end-timing is captured at the end of the *execution*. The reason for this is that the standard exception does not actually append information into the extensions field, whereas the federated extension does, so serialization and transmission of the response cannot be included in the end of the extension. Due to the limitations of the current requestPipeline, executionDidEnd is what needs to be hooked into to halt overall timing, which is called directly prior to didEncounterErrors. It is likely possible to refactor the request pipeline to support capturing the timing data of serializing errors into the proto state, but since it would be more boolean control-flow to add into the overall request context, this commit simply discards that timing information for reporting in lieu of throwing an error. A subsequent commit will follow up with replacing error throws with logging statements.
- Loading branch information