On Tue, 20 Oct 2015, [email protected] wrote:
> Hi Sage?
> 
> In the following function, we can ensure is_missing(soid) is equal with 
> is_missing(soid, primary_have_version) ?
>
> int ReplicatedBackend::start_pushes(
>   const hobject_t &soid,
>   ObjectContextRef obc,
>   RPGHandle *h)
> {
>   ...
>   for (set<pg_shard_t>::iterator i =
>        ...
>     if (j->second.is_missing(soid)) {            
> <---------------------------------
>       ++pushes;
>       h->pushes[peer].push_back(PushOp());
>       prep_push_to_replica(obc, soid, peer,
>                          &(h->pushes[peer].back()), h->cache_dont_need);
>     }
>    ...
> }
> 
> In my environment, we got a assert, but no more infomation:
> osd/ReplicatedPG.cc: In function 'virtual void 
> ReplicatedPG::on_local_recover(const hobject_t&, const object_stat_sum_t&, 
> const ObjectRecoveryInfo&, ObjectContextRef, ObjectStore::Transaction*)' 
> thread 7fa379c14700 time 2015-08-28 17:56:08.194843 osd/ReplicatedPG.cc: 211: 
> FAILED assert(is_primary())

This looks like

        http://tracker.ceph.com/issues/13111

I really don't think we should be seeing this assert fail.  I would like 
to see logs before making changes... hopefully this is something you can 
reproduce with logging?  (debug osd= 20, debug ms = 1)

Thanks!
sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to