Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync #10249

Merged
merged 5 commits into from
Jul 3, 2024

Conversation

kshyju
Copy link
Member

@kshyju kshyju commented Jun 25, 2024

resolves #10219

The fix is to wrap the GetFunctionMetadataAsync with a timeout task so that if the GetFunctionMetadataAsync does not return within a specific time, we throw a timeout exception which the caller will handle.

IMPORTANT: Currently, changes must be backported to the in-proc branch to be included in Core Tools and non-Flex deployments.

  • Backporting to the in-proc branch is not required
  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
  • My changes do not require diagnostic events changes
    • Otherwise: I have added/updated all related diagnostic events and their documentation (Documentation issue linked to PR)
  • I have added all required tests (Unit tests, E2E tests)

…t if a provider does not return, it will not cause a deadlock state.
@kshyju kshyju requested a review from a team as a code owner June 25, 2024 23:14
@kshyju kshyju changed the title Shkr/gh 10219 deadlock Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync Jun 25, 2024
…h can be set to a different value than default, from the tests.
@kshyju kshyju requested a review from jviau June 27, 2024 16:56
release_notes.md Outdated Show resolved Hide resolved
src/WebJobs.Script/Host/FunctionMetadataManager.cs Outdated Show resolved Hide resolved
src/WebJobs.Script/Host/FunctionMetadataManager.cs Outdated Show resolved Hide resolved
src/WebJobs.Script/Host/FunctionMetadataManager.cs Outdated Show resolved Hide resolved
…r method throws or when the operation timeseout.
@kshyju kshyju requested a review from fabiocav July 2, 2024 00:15
@kshyju kshyju merged commit 89ef908 into dev Jul 3, 2024
19 checks passed
@kshyju kshyju deleted the shkr/gh_10219_deadlock branch July 3, 2024 23:59
kshyju added a commit that referenced this pull request Jul 8, 2024
)

* Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync so that if a provider does not return, it will not cause a deadlock state.

* Adding release notes.

* Added a new internal property `MetadataProviderTimeoutInSeconds` which can be set to a different value than default, from the tests.

* Added comment about property being settable.

* PR feedback fixes. Throws an error when the function metadata provider method throws or when the operation timeseout.
kshyju added a commit that referenced this pull request Jul 11, 2024
) (#10273)

* Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync so that if a provider does not return, it will not cause a deadlock state.

* Adding release notes.

* Added a new internal property `MetadataProviderTimeoutInSeconds` which can be set to a different value than default, from the tests.

* Added comment about property being settable.

* PR feedback fixes. Throws an error when the function metadata provider method throws or when the operation timeseout.
v-imohammad pushed a commit that referenced this pull request Jul 15, 2024
) (#10273)

* Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync so that if a provider does not return, it will not cause a deadlock state.

* Adding release notes.

* Added a new internal property `MetadataProviderTimeoutInSeconds` which can be set to a different value than default, from the tests.

* Added comment about property being settable.

* PR feedback fixes. Throws an error when the function metadata provider method throws or when the operation timeseout.
v-imohammad added a commit that referenced this pull request Jul 16, 2024
* JIT Trace - 4.35.0 using in-proc as base (#10281)

* Adding a timeout to `IFunctionProvider.GetFunctionMetadataAsync`  (#10249) (#10273)

* Adding a timeout to IFunctionProvider.GetFunctionMetadataAsync so that if a provider does not return, it will not cause a deadlock state.

* Adding release notes.

* Added a new internal property `MetadataProviderTimeoutInSeconds` which can be set to a different value than default, from the tests.

* Added comment about property being settable.

* PR feedback fixes. Throws an error when the function metadata provider method throws or when the operation timeseout.

* [in-proc port] Ensure extension RPC endpoints ready before processing gRPC messages (#10282)

* Ensure extension RPC endpoints ready before processing gRPC messages (#10255)

* Ensure extension RPC endpoints ready before processing gRPC messages

* Add timeout and tests to waiting on RPC extensions.

* update release_notes.md

* [in-proc] Update Microsoft.Azure.WebJobs to 3.0.41 and Microsoft.Azure.WebJobs.Host.Storage to 5.0.1 (#10288)

* Upgraded the following package versions:
  - Microsoft.Azure.WebJobs updated to 3.0.41
  - Microsoft.Azure.WebJobs.Host.Storage updated to 5.0.1
  - Microsoft.Extensions.Azure updated to 1.7.1
  - Azure.Storage.Blobs updated to 12.19.1

* Updating deps.json for Tests.

---------

Co-authored-by: Shyju Krishnankutty <connectshyju@gmail.com>
Co-authored-by: Jacob Viau <javia@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deadlock in GetFunctionMetadataAsync when IFunctionMetadataProvider.GetFunctionMetadataAsync does not return
3 participants