-
Notifications
You must be signed in to change notification settings - Fork 451
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
Fix for ISO string modification during function metadata binding parsing #10735
base: dev
Are you sure you want to change the base?
Conversation
internal static FunctionMetadata ValidateBindings(IEnumerable<string> rawBindings, FunctionMetadata function) | ||
{ | ||
HashSet<string> bindingNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase); | ||
|
||
foreach (string binding in rawBindings) | ||
{ | ||
var functionBinding = BindingMetadata.Create(JObject.Parse(binding)); | ||
var functionBinding = GetBindingMetadata(binding); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this new behavior be an explicit opt-in for customers? With this change, all customers and bindings will experience the performance impact of the additional serialization for any bindings that pass through this flow or method.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know if we should have an explicit opt-in for a behavior that should've already been working. I believe that the use of ISO strings is only for the CosmosDB extension, so we could only check for the trigger or only for this property.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: we will benchmark the two approaches and compare the results to decide how to proceed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmarking results here.
Discussed offline with @liliankasem - to incorporate suggestions we will need to refactor |
Issue describing the changes in this PR
resolves #10732 (and Azure/azure-functions-dotnet-worker#2882)
Pull request checklist
IMPORTANT: Currently, changes must be backported to the
in-proc
branch to be included in Core Tools and non-Flex deployments.in-proc
branch is not requiredrelease_notes.md
Additional information
Tested locally E2E the following scenarios:
StartFromTime
set to a past time started triggering and processing existing records immediately after startup (older records than start time untouched)StartFromTime
set to a future date and will process any new changes following startup. Discussed with original engineers - this feature was only meant to go into the past, so there was never a design set for future dates. This setting will not ignore changes until that future date (note: need to test InProc to see if behavior is the same there).