FileStore calls should_commit_now() to determine whether it should
loop and do a second sync (among other things). During shutdown, this
can force us into a livelock: the journal is shutting down, but the
sync_entry loop never completes and repeatedly syncs because the
journal is full. Since the journal is otherwise stopped, no expire
happens and we never become unfull, and we're stuck.
This seems to be triggered semi-reliably by the ceph_objectstore_tool
import function.
Fix by not requesting a sync while shutting down.
Fixes: #9545
Signed-off-by: Sage Weil <sage@redhat.com>
CID 1160858 (#1 of 1): Non-virtual destructor (VIRTUAL_DTOR)
nonvirtual_dtor: Class RGWLoadGenRequest has a destructor
and a pointer to it is upcast to class RGWRequest which doesn't
have a virtual destructor.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit b82ceda777)
CID 1188142 (#1 of 1): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter header of type
GenericObjectMap::_Header (size 176 bytes) by value.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit 13b8c92a29)
CID 1238905 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member want_state is not initialized
in this constructor nor in any functions that it calls.
uninit_member: Non-static class member last_send is not initialized
in this constructor nor in any functions that it calls.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit ff6148324a)
Fix Coverity issue, preinit with 0:
uninit_member: Non-static class member chunk_count is not initialized
in this constructor nor in any functions that it calls.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit ea02dc37dc)
CID 1238903 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member data_chunk_count is not
initialized in this constructor nor in any functions that it calls.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit 2bb35bba99)
CID 1238904 (#1 of 1): Uninitialized scalar variable (UNINIT)
uninit_use_in_call: Using uninitialized value e.seq when calling
log_to_syslog.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
(cherry picked from commit 2c2b413ee0)
If the file size does not fit in 32 bits the (unsigned) cast will
overflow. Cast to uint64_t which is the type of the value returned by
get_total_chunk_size.
http://tracker.ceph.com/issues/9537Fixes: #9537
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
ceph --format plain osd find 1 (and metadata) are not implemented and
must fallback to the default (json-pretty).
http://tracker.ceph.com/issues/9538Fixes: #9538
Signed-off-by: Loic Dachary <loic-201408@dachary.org>
If they fast_dispatch they can deadlock right now. We'll need to change
the semantics around mark_down() or around the Objecter's locking to
fix it.
Sort-of-
Fixes: #9462
Signed-off-by: Greg Farnum <greg@inktank.com>
If we don't, we can keep fast_dispatching messages after a Pipe has been
mark_down()ed. That breaks things right now.
Fixes: #9295
Signed-off-by: Greg Farnum <greg@inktank.com>
There is no code anywhere in the code base that generates a MSG_SHUTDOWN.
Kill this. The get_priv() logic here looks pretty dodgey anyway.
Signed-off-by: Sage Weil <sage@redhat.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Previously the code was there for storing in
the SessionMap table, but not for the ESession
logevent.
Fixes: #9518
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 1395275e0f)