From dcc11ade3f2dec146128728cec9a9da5cf85ae25 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 27 Mar 2023 14:31:29 -0700 Subject: [PATCH 1/2] Further clarifications to trigger retry docs --- docs/BindingsOverview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/BindingsOverview.md b/docs/BindingsOverview.md index 9bf35ad5a..734a0fc39 100644 --- a/docs/BindingsOverview.md +++ b/docs/BindingsOverview.md @@ -197,9 +197,9 @@ Note that these retries are outside the built in idle connection retry logic tha #### Function exception retries -If an exception occurs in the user function when processing changes then those rows will be retried again in 60 seconds. Other changes will be processed as normal during this time, but the rows that caused the exception will be ignored until the timeout period has elapsed. +If an exception occurs in the user function when processing changes then the batch of rows currently being processed will be retried again in 60 seconds. Other changes will be processed as normal during this time, but the rows in the batch that caused the exception will be ignored until the timeout period has elapsed. -If the function execution fails 5 times in a row for a given row then that row is completely ignored for all future changes. +If the function execution fails 5 times in a row for a given row then that row is completely ignored for all future changes. Because the rows in a batch is not deterministic this means that rows in a batch that failed may end up in different batches in subsequent invocations which may affect whether a given row is ignored if the other rows in the batch are the ones causing the exception since it may end up in a different batch that doesn't fail in future invocations. You can run this query to see what rows have failed 5 times and are currently ignored, see [Leases table](#az_funcleases_) documentation for how to get the correct Leases table to query for your function. From 4be194c0a6c555a23dc25e11e303af5e80c1c5bd Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Tue, 28 Mar 2023 15:27:31 -0700 Subject: [PATCH 2/2] Update description --- docs/BindingsOverview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/BindingsOverview.md b/docs/BindingsOverview.md index 734a0fc39..12700104b 100644 --- a/docs/BindingsOverview.md +++ b/docs/BindingsOverview.md @@ -199,7 +199,7 @@ Note that these retries are outside the built in idle connection retry logic tha If an exception occurs in the user function when processing changes then the batch of rows currently being processed will be retried again in 60 seconds. Other changes will be processed as normal during this time, but the rows in the batch that caused the exception will be ignored until the timeout period has elapsed. -If the function execution fails 5 times in a row for a given row then that row is completely ignored for all future changes. Because the rows in a batch is not deterministic this means that rows in a batch that failed may end up in different batches in subsequent invocations which may affect whether a given row is ignored if the other rows in the batch are the ones causing the exception since it may end up in a different batch that doesn't fail in future invocations. +If the function execution fails 5 times in a row for a given row then that row is completely ignored for all future changes. Because the rows in a batch are not deterministic, rows in a failed batch may end up in different batches in subsequent invocations. This means that not all rows in the failed batch will necessarily be ignored. If other rows in the batch were the ones causing the exception, the "good" rows may end up in a different batch that doesn't fail in future invocations. You can run this query to see what rows have failed 5 times and are currently ignored, see [Leases table](#az_funcleases_) documentation for how to get the correct Leases table to query for your function.