Project

General

Profile

Bug #12465

Log::reopen_log_file() must take the flusher lock to avoid closing an fd ::_flush() is still using

Added by Samuel Just about 3 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
-
Category:
-
Target version:
-
Start date:
07/24/2015
Due date:
% Done:

0%

Source:
Development
Tags:
Backport:
firefly,hammer
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:

Related issues

Related to Ceph - Bug #11586: RBD Data Corruption with Logging on Giant Duplicate 05/11/2015
Copied to Ceph - Backport #12519: Log::reopen_log_file() must take the flusher lock to avoid closing an fd ::_flush() is still using Resolved 07/24/2015
Copied to Ceph - Backport #12520: Log::reopen_log_file() must take the flusher lock to avoid closing an fd ::_flush() is still using Resolved 07/24/2015

Associated revisions

Revision 8778ab3a (diff)
Added by Samuel Just about 3 years ago

Log::reopen_log_file: take m_flush_mutex

Otherwise, _flush() might continue to write to m_fd after it's closed.
This might cause log data to go to a data object if the filestore then
reuses the fd during that time.

Fixes: #12465
Backport: firefly, hammer
Signed-off-by: Samuel Just <>

Revision 154f18ce (diff)
Added by Samuel Just about 3 years ago

Log::reopen_log_file: take m_flush_mutex

Otherwise, _flush() might continue to write to m_fd after it's closed.
This might cause log data to go to a data object if the filestore then
reuses the fd during that time.

Fixes: #12465
Backport: firefly, hammer
Signed-off-by: Samuel Just <>
(cherry picked from commit 8778ab3a1ced7fab07662248af0c773df759653d)

Revision b8e3f6e1 (diff)
Added by Samuel Just about 3 years ago

Log::reopen_log_file: take m_flush_mutex

Otherwise, _flush() might continue to write to m_fd after it's closed.
This might cause log data to go to a data object if the filestore then
reuses the fd during that time.

Fixes: #12465
Backport: firefly, hammer
Signed-off-by: Samuel Just <>
(cherry picked from commit 8778ab3a1ced7fab07662248af0c773df759653d)

- modified to drop m_flush_mutex_holder, which isn't present in firefly

Revision c4872ddf (diff)
Added by Samuel Just about 3 years ago

Log::reopen_log_file: take m_flush_mutex

Otherwise, _flush() might continue to write to m_fd after it's closed.
This might cause log data to go to a data object if the filestore then
reuses the fd during that time.

Fixes: #12465
Backport: firefly, hammer
Signed-off-by: Samuel Just <>
(cherry picked from commit 8778ab3a1ced7fab07662248af0c773df759653d)

History

#1 Updated by Samuel Just about 3 years ago

Part of this bug should be to add a background task to the thrasher to constantly send sighup to the daemon processes.

#3 Updated by Samuel Just about 3 years ago

  • Status changed from New to In Progress

#4 Updated by Nathan Cutler about 3 years ago

  • Backport set to firefly,hammer

#5 Updated by Sage Weil about 3 years ago

  • Status changed from In Progress to Pending Backport
  • Assignee deleted (Samuel Just)
  • Source changed from other to Development

#6 Updated by Sage Weil about 3 years ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF