From 148264cd8b2bda04652a4506e88ce5a738aa45bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Fri, 20 Aug 2021 11:10:14 +0000 Subject: [PATCH] Disabled prometheus metrics dump , see #3571 This commit also fixes some minor memory corruptions --- lib/MySQL_Logger.cpp | 16 ++++++++-------- lib/MySQL_Session.cpp | 2 +- src/SQLite3_Server.cpp | 1 + ...rometheus_metrics_dump-t_disabled_gh3571.cpp} | 0 4 files changed, 10 insertions(+), 9 deletions(-) rename test/tap/tests/{test_admin_prometheus_metrics_dump-t.cpp => test_admin_prometheus_metrics_dump-t_disabled_gh3571.cpp} (100%) diff --git a/lib/MySQL_Logger.cpp b/lib/MySQL_Logger.cpp index 5d857ac5a..9a520885a 100644 --- a/lib/MySQL_Logger.cpp +++ b/lib/MySQL_Logger.cpp @@ -514,10 +514,10 @@ void MySQL_Logger::events_open_log_unlocked() { } char *filen=NULL; if (events.base_filename[0]=='/') { // absolute path - filen=(char *)malloc(strlen(events.base_filename)+10); + filen=(char *)malloc(strlen(events.base_filename)+11); sprintf(filen,"%s.%08d",events.base_filename,events.log_file_id); } else { // relative path - filen=(char *)malloc(strlen(events.datadir)+strlen(events.base_filename)+10); + filen=(char *)malloc(strlen(events.datadir)+strlen(events.base_filename)+11); sprintf(filen,"%s/%s.%08d",events.datadir,events.base_filename,events.log_file_id); } events.logfile=new std::fstream(); @@ -543,10 +543,10 @@ void MySQL_Logger::audit_open_log_unlocked() { } char *filen=NULL; if (audit.base_filename[0]=='/') { // absolute path - filen=(char *)malloc(strlen(audit.base_filename)+10); + filen=(char *)malloc(strlen(audit.base_filename)+11); sprintf(filen,"%s.%08d",audit.base_filename,audit.log_file_id); } else { // relative path - filen=(char *)malloc(strlen(audit.datadir)+strlen(audit.base_filename)+10); + filen=(char *)malloc(strlen(audit.datadir)+strlen(audit.base_filename)+11); sprintf(filen,"%s/%s.%08d",audit.datadir,audit.base_filename,audit.log_file_id); } audit.logfile=new std::fstream(); @@ -638,7 +638,7 @@ void MySQL_Logger::log_request(MySQL_Session *sess, MySQL_Data_Stream *myds) { } cl+=strlen(ca); if (cl && sess->client_myds->addr.port) { - ca=(char *)malloc(cl+8); + ca=(char *)malloc(cl+9); sprintf(ca,"%s:%d",sess->client_myds->addr.addr,sess->client_myds->addr.port); } cl=strlen(ca); @@ -707,7 +707,7 @@ void MySQL_Logger::log_request(MySQL_Session *sess, MySQL_Data_Stream *myds) { } sl+=strlen(sa); if (sl && myds->myconn->parent->port) { - sa=(char *)malloc(sl+8); + sa=(char *)malloc(sl+9); sprintf(sa,"%s:%d", myds->myconn->parent->address, myds->myconn->parent->port); } sl=strlen(sa); @@ -820,7 +820,7 @@ void MySQL_Logger::log_audit_entry(log_event_type _et, MySQL_Session *sess, MySQ } cl+=strlen(ca); if (cl && sess->client_myds->addr.port) { - ca=(char *)malloc(cl+8); + ca=(char *)malloc(cl+9); sprintf(ca,"%s:%d",sess->client_myds->addr.addr,sess->client_myds->addr.port); } cl=strlen(ca); @@ -857,7 +857,7 @@ void MySQL_Logger::log_audit_entry(log_event_type _et, MySQL_Session *sess, MySQ } sl+=strlen(sa); if (sl && myds->myconn->parent->port) { - sa=(char *)malloc(sl+8); + sa=(char *)malloc(sl+9); sprintf(sa,"%s:%d", myds->myconn->parent->address, myds->myconn->parent->port); } sl=strlen(sa); diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index 6daa69807..8eeeb386c 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -547,7 +547,7 @@ void MySQL_Session::reset() { memset(gtid_buf,0,sizeof(gtid_buf)); if (session_type == PROXYSQL_SESSION_SQLITE) { SQLite3_Session *sqlite_sess = (SQLite3_Session *)thread->gen_args; - if (sqlite_sess->sessdb) { + if (sqlite_sess && sqlite_sess->sessdb) { sqlite3 *db = sqlite_sess->sessdb->get_db(); if ((*proxy_sqlite3_get_autocommit)(db)==0) { sqlite_sess->sessdb->execute((char *)"COMMIT"); diff --git a/src/SQLite3_Server.cpp b/src/SQLite3_Server.cpp index eee8817b5..b793c21b5 100644 --- a/src/SQLite3_Server.cpp +++ b/src/SQLite3_Server.cpp @@ -711,6 +711,7 @@ static void *child_mysql(void *arg) { __exit_child_mysql: delete sqlite_sess; + mysql_thr->gen_args = NULL; delete mysql_thr; return NULL; } diff --git a/test/tap/tests/test_admin_prometheus_metrics_dump-t.cpp b/test/tap/tests/test_admin_prometheus_metrics_dump-t_disabled_gh3571.cpp similarity index 100% rename from test/tap/tests/test_admin_prometheus_metrics_dump-t.cpp rename to test/tap/tests/test_admin_prometheus_metrics_dump-t_disabled_gh3571.cpp