]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
log: open log file from flusher thread
authorSage Weil <sage@redhat.com>
Fri, 22 Mar 2019 15:56:12 +0000 (10:56 -0500)
committerSage Weil <sage@redhat.com>
Fri, 29 Mar 2019 23:19:17 +0000 (18:19 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 16c5d828fa93b1a5bdf9c396d7c0ce236b46df9b)

src/log/Log.cc

index 302a2e82538730cc83b30c6767033ca33e4cd8e9..8d74dcabc04e54cd64ed45053c831be9c6dbbd3a 100644 (file)
@@ -106,6 +106,9 @@ void Log::set_log_stderr_prefix(std::string_view p)
 void Log::reopen_log_file()
 {
   std::scoped_lock lock(m_flush_mutex);
+  if (!is_started()) {
+    return;
+  }
   m_flush_mutex_holder = pthread_self();
   if (m_fd >= 0)
     VOID_TEMP_FAILURE_RETRY(::close(m_fd));
@@ -402,6 +405,7 @@ void Log::stop()
 
 void *Log::entry()
 {
+  reopen_log_file();
   {
     std::unique_lock lock(m_queue_mutex);
     m_queue_mutex_holder = pthread_self();