This is a stale comment from an earlier iteration of the implementation.
Reported-by: Alexander Lyakas <alex.bolshoy@gmail.com>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Update Debian packaging. For human-only mentions of librados,
use just "librados"
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Conflicts:
debian/control
src/Makefile.am
If we get a peer log/missing and call search_for_missing, requeue the pg
for recovery so we can pull anything we may have just found.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
If our might_have_unfound calculation was off (it currently can be, see
#865) we could prematurely give up. Try any up OSD at this stage just to
be sure.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
recover_replicas may fail to start anything if we see an unexpected error.
In that case, try recover_primary immediately instead of waiting for the
PG to (hopefully) get requeued for recovery later.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
If we couldn't start any recovery ops and things are still
unfound, see if we can discover more missing object locations.
It may be that our initial locations were bad and we errored
out while trying to pull.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Adds deep copy method IoCtx::dup, so that the data and metadata
contexts can have different snap_seqs and snap contexts.
Also avoid calling Rados::shutdown explicitly, since the destructor
will do this, and it must run after the Image destructor.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Adds get and put to IoCtxImpl for refcounting,
and uses them in WatchContext, which shouldn't
be creating a copy of the IoCtxImpl.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
IoCtx::from_rados_ioctx_t creates an IoCtx out of a rados_ioctx_t.
However, this IoCtx must share ownership of the IoCtxImpl pointer with
the C API user who first called rados_ioctx_create. This must be done
via a reference count inside the IoCtxImpl.
Also add a copy constructor and assignment operator to class IoCtx,
since it's now cheap to have them.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Adds deep copy method IoCtx::dup, so that the data and metadata
contexts can have different snap_seqs and snap contexts.
Also avoid calling Rados::shutdown explicitly, since the destructor
will do this, and it must run after the Image destructor.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>