Expected behavior
Queries' results should be successfully recieved to the client.
Actual behavior
In our Trino cluster, we are facing an issur that some queries remain stuck in the FINISHING state for an extended period before eventually failing with the error message: "Query was abandoned by the client, as it may have exited or stopped checking for query results."
After conducting some investigation, it appears that this issue predominantly occurs when querying Trino using the Python client. Here's a breakdown of the observed flow:
- In the main module, we execute the
TrinoQuery.execute function with our query.
- This function initiates a POST request to the Trino coordinator.
- Subsequently, it sends a GET request to the
nextUri to retrieve the initial batch of query results.
- As the results start arriving, the query state transitions to FINISHING.
- The execution of the
execute function ends.
- Following this, the
cursor.fetchall() function in the main module iterates over the nextUris, yielding each received row to the client. However, after a certain duration of fetching query results, the query fails with the "query abandon" error (as mentioned above).
Any assistance on resolving this significant issue would be greatly appreciated.
Thank you!!
Steps To Reproduce
-
Is it advisable to incorporate heartbeats to the coordinator while fetching results?
-
Would it be feasible to fetch multiple nextUris in parallel? I'm uncertain about this possibility due to the need to access nextUris as a linked list.
Log output
No response
Operating System
Windows
Trino Python client version
0.326.0
Trino Server version
439
Python version
3.9.3
Are you willing to submit PR?
Expected behavior
Queries' results should be successfully recieved to the client.
Actual behavior
In our Trino cluster, we are facing an issur that some queries remain stuck in the FINISHING state for an extended period before eventually failing with the error message: "Query was abandoned by the client, as it may have exited or stopped checking for query results."
After conducting some investigation, it appears that this issue predominantly occurs when querying Trino using the Python client. Here's a breakdown of the observed flow:
TrinoQuery.executefunction with our query.nextUrito retrieve the initial batch of query results.executefunction ends.cursor.fetchall()function in the main module iterates over thenextUris, yielding each received row to the client. However, after a certain duration of fetching query results, the query fails with the "query abandon" error (as mentioned above).Any assistance on resolving this significant issue would be greatly appreciated.
Thank you!!
Steps To Reproduce
Is it advisable to incorporate heartbeats to the coordinator while fetching results?
Would it be feasible to fetch multiple
nextUrisin parallel? I'm uncertain about this possibility due to the need to accessnextUrisas a linked list.Log output
No response
Operating System
Windows
Trino Python client version
0.326.0
Trino Server version
439
Python version
3.9.3
Are you willing to submit PR?