From d35150ecf340d9b8a8597eb1fce9b924fded2fd6 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 5 May 2020 23:32:34 +0300 Subject: [PATCH] fix http readonly request stucks on client close --- .gitmodules | 4 ++-- contrib/poco | 2 +- programs/server/HTTPHandler.cpp | 1 - .../00834_cancel_http_readonly_queries_on_client_close.sh | 7 +++++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index cebde5699d8..ea7b85e72c4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "contrib/poco"] path = contrib/poco - url = https://github.com/ClickHouse-Extras/poco - branch = clickhouse + url = https://github.com/tavplubix/poco + branch = respect_msg_dontwait [submodule "contrib/zstd"] path = contrib/zstd url = https://github.com/facebook/zstd.git diff --git a/contrib/poco b/contrib/poco index 7d605a1ae5d..a71e0776531 160000 --- a/contrib/poco +++ b/contrib/poco @@ -1 +1 @@ -Subproject commit 7d605a1ae5d878294f91f68feb62ae51e9a04426 +Subproject commit a71e0776531861873144e4c4081204ea1a1258fb diff --git a/programs/server/HTTPHandler.cpp b/programs/server/HTTPHandler.cpp index 1e2695709f9..618d137f3b7 100644 --- a/programs/server/HTTPHandler.cpp +++ b/programs/server/HTTPHandler.cpp @@ -567,7 +567,6 @@ void HTTPHandler::processQuery( try { char b; - //FIXME looks like MSG_DONTWAIT is useless because of POCO_BROKEN_TIMEOUTS int status = socket.receiveBytes(&b, 1, MSG_DONTWAIT | MSG_PEEK); if (status == 0) context.killCurrentQuery(); diff --git a/tests/queries/0_stateless/00834_cancel_http_readonly_queries_on_client_close.sh b/tests/queries/0_stateless/00834_cancel_http_readonly_queries_on_client_close.sh index ee56d41f357..1c211c35927 100755 --- a/tests/queries/0_stateless/00834_cancel_http_readonly_queries_on_client_close.sh +++ b/tests/queries/0_stateless/00834_cancel_http_readonly_queries_on_client_close.sh @@ -10,3 +10,10 @@ do ${CLICKHOUSE_CURL} -sS --data "SELECT count() FROM system.processes WHERE query_id = 'cancel_http_readonly_queries_on_client_close'" "${CLICKHOUSE_URL}" | grep '0' && break sleep 0.2 done + +${CLICKHOUSE_CURL} -sS -X POST "${CLICKHOUSE_URL}&session_id=test_00834_session&readonly=2&cancel_http_readonly_queries_on_client_close=1" -d "CREATE TEMPORARY TABLE table_tmp AS SELECT 1 FORMAT JSON" +${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}&session_id=test_00834_session&query=DROP+TEMPORARY+TABLE+table_tmp" + +url_https="https://${CLICKHOUSE_HOST}:${CLICKHOUSE_PORT_HTTPS}/?session_id=test_00834_session" +${CLICKHOUSE_CURL} -sSk "$url_https&readonly=2&cancel_http_readonly_queries_on_client_close=1" -d "CREATE TEMPORARY TABLE table_tmp AS SELECT 1 FORMAT JSON" +${CLICKHOUSE_CURL} -sSk "$url_https&session_id=test_00834_session&query=DROP+TEMPORARY+TABLE+table_tmp"