From c4c2c3f38afa014deff0f865a175c5982e8d9601 Mon Sep 17 00:00:00 2001 From: Nick Vyzas Date: Mon, 26 Mar 2018 17:28:42 +0300 Subject: [PATCH] Increasing RW Lock in PROCESSING_STMT_PREPARE Same as https://github.com/sysown/proxysql/pull/1433 - applying to branch 2.0-lab manually --- lib/MySQL_Session.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 47293ea7d..2ff2ea1ba 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -2722,7 +2722,6 @@ handler_again: myds->myconn->local_stmts->backend_insert(global_stmtid,CurrentQuery.mysql_stmt); if (previous_status.size() == 0) client_stmtid=client_myds->myconn->local_stmts->generate_new_client_stmt_id(global_stmtid); - GloMyStmt->unlock(); CurrentQuery.mysql_stmt=NULL; enum session_status st=status; size_t sts=previous_status.size(); @@ -2731,12 +2730,14 @@ handler_again: myds->DSS=STATE_MARIADB_GENERIC; st=previous_status.top(); previous_status.pop(); + GloMyStmt->unlock(); NEXT_IMMEDIATE(st); } else { client_myds->myprot.generate_STMT_PREPARE_RESPONSE(client_myds->pkt_sid+1,stmt_info,client_stmtid); if (stmt_info->num_params == 0) { prepared_stmt_with_no_params = true; } + GloMyStmt->unlock(); } } break;