[
https://issues.apache.org/jira/browse/FLINK-41447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Weiqing Yang reassigned FLINK-41447:
------------------------------------
Assignee: Weiqing Yang
> An invalid table.exec.udf-metric.sample-interval is accepted at planning and
> puts the job in a restart loop
> -----------------------------------------------------------------------------------------------------------
>
> Key: FLINK-41447
> URL: https://issues.apache.org/jira/browse/FLINK-41447
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 2.4.0
> Reporter: Weiqing Yang
> Assignee: Weiqing Yang
> Priority: Minor
> Fix For: 2.4.0
>
>
> *What happens*
> With UDF metrics enabled, a {{table.exec.udf-metric.sample-interval}} of 0 or
> less is accepted when the query is submitted. The job then fails every time
> its operators open, and keeps restarting:
> {noformat}
> java.lang.IllegalArgumentException: UDF metric sample interval must be >= 1,
> but was 0.
> {noformat}
> *How to reproduce* (SQL Client, any scalar UDF, here {{MyUpper}})
> {code:sql}
> SET 'table.exec.udf-metric-enabled' = 'true';
> SET 'table.exec.udf-metric.sample-interval' = '0';
> CREATE TEMPORARY TABLE src (s STRING) WITH ('connector' = 'datagen',
> 'rows-per-second' = '10');
> CREATE TEMPORARY TABLE sink (a STRING) WITH ('connector' = 'blackhole');
> INSERT INTO sink SELECT MyUpper(s) FROM src;
> {code}
> The INSERT is submitted without error. After 30 seconds the job is
> {{RESTARTING}} with 8 restarts. With {{table.exec.udf-metric-enabled}} set to
> false, the same job runs normally.
> *Cause*
> The planner reads the interval during code generation
> ({{BridgingFunctionGenUtil#udfMetricsTermIfEnabled}}) and passes it into the
> generated operator without checking it. The check only happens in
> {{UdfMetrics#register}}, which runs when the operator opens on the
> TaskManager.
> *Proposed fix*
> Validate the interval where the planner reads it, and throw a
> {{ValidationException}} with the same message when metrics are enabled and
> the value is below 1. The query is then rejected at submission instead of
> restarting. Keep the runtime check as a safeguard.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)