When reopening log files, Ceph's OSD could end up writing data to the wrong file descriptor.
Log::reopen_log_file() must take the flusher lock to avoid closing an fd ::_flush() is still using.
This could result in lost log entries, or it could result in the log being written to a file descriptor which has been opened by the filestore. The latter case could cause data corruption.
Red Hat Ceph Storage 1.2.3
Red Hat Ceph Storage 1.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.