From fd9c93d3e279e85a4b7a20f8958923ce6b435a16 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Fri, 23 Mar 2018 14:18:41 -0400 Subject: [PATCH] add a mutex around logging to db --- src/zm_logger.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/zm_logger.cpp b/src/zm_logger.cpp index 99231d110..c01714b81 100644 --- a/src/zm_logger.cpp +++ b/src/zm_logger.cpp @@ -538,6 +538,7 @@ void Logger::logPrint( bool hex, const char * const filepath, const int line, co char sql[ZM_SQL_MED_BUFSIZ]; char escapedString[(strlen(syslogStart)*2)+1]; + db_mutex.lock(); mysql_real_escape_string( &dbconn, escapedString, syslogStart, strlen(syslogStart) ); snprintf( sql, sizeof(sql), "insert into Logs ( TimeKey, Component, ServerId, Pid, Level, Code, Message, File, Line ) values ( %ld.%06ld, '%s', %d, %d, %d, '%s', '%s', '%s', %d )", timeVal.tv_sec, timeVal.tv_usec, mId.c_str(), staticConfig.SERVER_ID, tid, level, classString, escapedString, file, line ); @@ -547,6 +548,7 @@ void Logger::logPrint( bool hex, const char * const filepath, const int line, co Error( "Can't insert log entry: sql(%s) error(%s)", sql, mysql_error( &dbconn ) ); databaseLevel(tempDatabaseLevel); } + db_mutex.unlock(); } if ( level <= mSyslogLevel ) { int priority = smSyslogPriorities[level];