|
82 | 82 | import org.apache.ignite.internal.processors.query.calcite.exec.TimeoutService; |
83 | 83 | import org.apache.ignite.internal.processors.query.calcite.exec.TimeoutServiceImpl; |
84 | 84 | import org.apache.ignite.internal.processors.query.calcite.exec.exp.RexExecutorImpl; |
85 | | -import org.apache.ignite.internal.processors.query.calcite.exec.task.AbstractQueryTaskExecutor; |
86 | 85 | import org.apache.ignite.internal.processors.query.calcite.exec.task.QueryBlockingTaskExecutor; |
87 | 86 | import org.apache.ignite.internal.processors.query.calcite.exec.task.StripedQueryTaskExecutor; |
88 | 87 | import org.apache.ignite.internal.processors.query.calcite.hint.HintsConfig; |
@@ -272,9 +271,6 @@ public class CalciteQueryProcessor extends GridProcessorAdapter implements Query |
272 | 271 | /** */ |
273 | 272 | private final InjectResourcesService injectSvc; |
274 | 273 |
|
275 | | - /** */ |
276 | | - private final AtomicBoolean udfQryWarned = new AtomicBoolean(); |
277 | | - |
278 | 274 | /** */ |
279 | 275 | private volatile boolean started; |
280 | 276 |
|
@@ -545,8 +541,6 @@ private <T> List<T> parseAndProcessQuery( |
545 | 541 | ) throws IgniteSQLException { |
546 | 542 | ensureTransactionModeSupported(qryCtx); |
547 | 543 |
|
548 | | - checkUdfQuery(); |
549 | | - |
550 | 544 | SchemaPlus schema = schemaHolder.schema(schemaName); |
551 | 545 |
|
552 | 546 | assert schema != null : "Schema not found: " + schemaName; |
@@ -704,29 +698,6 @@ private void ensureTransactionModeSupported(@Nullable QueryContext qryCtx) { |
704 | 698 | IgniteTxManager.ensureTransactionModeSupported(ctx.cache().context().tm().tx(ver).isolation()); |
705 | 699 | } |
706 | 700 |
|
707 | | - /** Checks that query is initiated by UDF and print message to log if needed. */ |
708 | | - private void checkUdfQuery() { |
709 | | - if (udfQryWarned.get()) |
710 | | - return; |
711 | | - |
712 | | - if (Thread.currentThread().getName().startsWith(AbstractQueryTaskExecutor.THREAD_PREFIX) |
713 | | - && udfQryWarned.compareAndSet(false, true)) { |
714 | | - if (taskExecutor instanceof QueryBlockingTaskExecutor) { |
715 | | - log.info("Detected query initiated by user-defined function. " + |
716 | | - "In some circumstances, this can lead to thread pool starvation and deadlock. Ensure that " + |
717 | | - "the pool size is properly configured (property IgniteConfiguration.QueryThreadPoolSize). " + |
718 | | - "The pool size should be greater than the maximum number of concurrent queries initiated by UDFs."); |
719 | | - } |
720 | | - else { |
721 | | - log.warning("Detected query initiated by user-defined function. " + |
722 | | - "When a striped query task executor (the default configuration) is used, tasks for such queries " + |
723 | | - "can be assigned to the same thread as that held by the initial query, which can lead to a " + |
724 | | - "deadlock. To switch to a blocking tasks executor, set the following parameter: " + |
725 | | - "-DIGNITE_CALCITE_USE_QUERY_BLOCKING_TASK_EXECUTOR=true."); |
726 | | - } |
727 | | - } |
728 | | - } |
729 | | - |
730 | 701 | /** */ |
731 | 702 | private <T> T processQuery( |
732 | 703 | @Nullable QueryContext qryCtx, |
|
0 commit comments