When reopening log files, Ceph's OSD could end up writing data to the wrong file descriptor.

Solution Verified - Updated -

Issue

  • 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.

Environment

  • 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.

Current Customers and Partners

Log in for full access

Log In