]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix error_repo segfault in data sync 10157/head
authorCasey Bodley <cbodley@redhat.com>
Wed, 6 Jul 2016 13:15:29 +0000 (09:15 -0400)
committerCasey Bodley <cbodley@redhat.com>
Fri, 8 Jul 2016 19:53:57 +0000 (15:53 -0400)
commit28609029cf1be2fc9f8c8e3f47320636db29014a
treecf437dc5e3e16a5ca25fbd7e4027d2464d78790b
parent299a5210e3ca629dede9cecdbae2e15cc6ee10d7
rgw: fix error_repo segfault in data sync

RGWDataSyncShardCR will only allocate an error_repo if it's doing
incremental sync, so RGWDataSyncSingleEntryCR needs to guard against a
null error_repo

also, RGWDataSyncShardCR::stop_spawned_services() was dropping the last
reference to the error_repo before calling drain_all(), which meant that
RGWDataSyncSingleEntryCR could still be holding a pointer. now uses a
boost::intrusive_ptr in RGWDataSyncSingleEntryCR to account for its
reference

Fixes: http://tracker.ceph.com/issues/16603
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_data_sync.cc