From 248d4eeb713f60c7112b3251d4d57bc14d900a6d Mon Sep 17 00:00:00 2001 From: alexpeshkoff Date: Fri, 3 Jun 2011 14:09:55 +0000 Subject: [PATCH] Fixed CORE-3512: Server hangs when trace is running (big thanks to Vlad) --- src/jrd/trace/TraceLog.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/jrd/trace/TraceLog.cpp b/src/jrd/trace/TraceLog.cpp index ad6c7585f66..ab74d9d021e 100644 --- a/src/jrd/trace/TraceLog.cpp +++ b/src/jrd/trace/TraceLog.cpp @@ -193,9 +193,14 @@ size_t TraceLog::write(const void* buf, size_t size) // While this instance of writer was idle, new log file was created. // More, if current file was already read by reader, we must delete it. ::close(m_fileHandle); - if (m_fileNum < sh_mem_header->readFileNum) { + if (m_fileNum < sh_mem_header->readFileNum) + { removeFile(m_fileNum); } + if (m_fileNum == sh_mem_header->writeFileNum) + { + ++sh_mem_header->writeFileNum; + } m_fileNum = sh_mem_header->writeFileNum; m_fileHandle = openFile(m_fileNum); continue;