1. osd.a connect to osd.b and osd.b try to connect a
2. osd.b got WAIT then osd.b accpet connection from osd.a
2. osd.b inject error cause each side connection try to reconnect, connect_seq++
3. osd.a try to reconnect
4. osd.b connect to osd.a and cause the new accept connection try to replace
5. osd.b's is_reset_from_peer=true
6. inject error to osd.b
7. osd.b connect to osd.a
8. successfully and is_reset_from_peer still is true
9. long time passed
10. error happen and osd.a connect to osd.b
11. because is_reset_from_peer is true, they don't exchange in_seq
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
This reverts commit b16b080332.
It is normal for objects to be unfound for brief periods of time
after peering--we do not want to EIO in that case.
Fixes: #11464
Signed-off-by: Sage Weil <sage@redhat.com>
RBD format 2 is now the default image format, so tests involving the old
format should explicitly request the old format.
Fixes: #11477
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
An unnecessary error message is being logged due to a failure to retrieve
metadata for old-format images -- which don't support metadata.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The librbd API previously permitted the creation of snapshots while
the image context was associated to another snapshot. A recent code
cleanup broke that ability, so this re-introduces it. The code change
also allows minor cleanup with rebuild_object_map.
Fixes: #11475
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Add this flag so that the bad object will be removed (should be called
only after user has verified that objects content is correct).
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
In pipe.cc:1353 we stop this connection and we will let reader and write threads stop. If now reader and writer quit ASAP and we call queue_reap to trigger the reap progress. Now we haven't call "connection_state->clear_pipe(this)" in pipe.cc:1379, so we may assert failure here.
Fixes: #11381
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Fixes: #11447
Backport: hammer
When creating gc chain, use the appropriate oid, otherwise objects will
leak.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
The ceph-radosgw service fails to start if the httpd package is not
installed. This is because the init.d file attempts to start the RGW
process with the "apache" UID. If a user is running civetweb, there is
no reason for the httpd or apache2 package to be present on the system.
Switch the init scripts to use "root" as is done on Ubuntu.
http://tracker.ceph.com/issues/11453 Refs: #11453
Reported-by: Vickey Singh <vickey.singh22693@gmail.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
max_req_id was moved to RGWRados and changed to atomic64_t.
The same request id resulted in gc giving the same idtag to all objects
resulting in a leakage of rados objects. It only kept the last deleted object in
it's queue, the previous objects were never freed.
Fixes: 10295
Backport: Hammer, Firefly
Signed-off-by: Orit Wasserman <owasserm@redhat.com>