ceph/src/journal
Mykola Golub 76234d0023 journal: fix potential race when closing object recorder
Calls `send_appends_aio` only if m_pending_buffers is not
empty. It was supposed it was ok to call it even for empty
buffers, because `send_appends_aio` just returned in this
case. But the problem is caused by m_aio_scheduled flag, which is
set before releasing the lock and cleared in `send_appends_aio`,
after reacquiring the lock. If during this time window `close` is
called it will return false due to m_aio_scheduled flag set, and
the caller will expect "closed" notification, which is never
fired in this case.

Fixes: https://tracker.ceph.com/issues/38315
Signed-off-by: Mykola Golub <mgolub@suse.com>
2019-02-14 12:59:00 +02:00
..
CMakeLists.txt
Entry.cc
Entry.h
Future.cc
Future.h
FutureImpl.cc
FutureImpl.h
Journaler.cc journal: set max journal order to 26 2019-01-03 11:36:50 +00:00
Journaler.h
JournalMetadata.cc
JournalMetadata.h
JournalMetadataListener.h
JournalPlayer.cc
JournalPlayer.h
JournalRecorder.cc
JournalRecorder.h
JournalTrimmer.cc
JournalTrimmer.h
ObjectPlayer.cc
ObjectPlayer.h
ObjectRecorder.cc journal: fix potential race when closing object recorder 2019-02-14 12:59:00 +02:00
ObjectRecorder.h
ReplayEntry.h
ReplayHandler.h
Settings.h
Utils.cc
Utils.h