Aleksey Plekhanov created IGNITE-24323:
------------------------------------------
Summary: Calcite engine. Query execution inside UDF leads to
deadlock
Key: IGNITE-24323
URL: https://issues.apache.org/jira/browse/IGNITE-24323
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
Assignee: Aleksey Plekhanov
We have striped executor to execute query tasks. Thread for query/fragment on
each node is fixed and defined by hash of query ID and fragment ID. If user
created user defined function and try to execute some query inside it, it can
lead to deadlock, since task execution thread blocked by new synchronous query
execution request and the new query can be assigned to the same thread.
For H2-based SQL engine threads are no binded to the query and there is no such
problem.
For Calcite-based SQL engine we use non thread safe datastructures in tasks.
To workaround this problem we can use regular IgniteThreadPoolExecutor, but
need to ensure that there are no tasks concurrently executing for the same
query/fragment.
Also, perhaps this approach can affect performance and should be enabled by
some property explicitly only for users that require this mode.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)