In contrast to the classical OSD:
```
int OSD::init()
{
// ...
{
epoch_t bind_epoch = osdmap->get_epoch();
service.set_epochs(NULL, NULL, &bind_epoch);
}
// ...
// load up pgs (as they previously existed)
load_pgs();
```
crimson doesn't set the `bind_epoch` when initializing. The net
result is going active prematurely which happens because the 3rd
condition (`bind_epoch < osdmap->get_up_from(whoami)`) is always
true.
```
if (osdmap->is_up(whoami) &&
osdmap->get_addrs(whoami) == public_msgr->get_myaddrs() &&
bind_epoch < osdmap->get_up_from(whoami)) {
if (state.is_booting()) {
logger().info("osd.{}: activating...", whoami);
```
Nullifying it translates the "is it activated?" check basically
into "is it up?" verification. This is problematic in a situation
like:
1. Primary got new OSDMap but replica has not.
2. Replica restarts, sends `MOSDBoot` and receives the newer map
from the previous point.
3. Primary sends a message that is unexpected by replica.
4. Monitor publishes a new OSDMap diven by the `MOSDBoot`.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Fixes: https://tracker.ceph.com/issues/51643
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Removing the usage of rgw_frontend_ssl_key from the rgw service form.
common/hobject: a minor fix and performance gain to hobjects listing
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
The commonly used append_frame function currently copies
frame data, incurring expensive heap allocation and data copying.
Instead, switch to claiming the frame data, re-using it without copying.
Signed-off-by: Or Ozeri <oro@il.ibm.com>
if we abort accept() call, an ECONNABORTED is expected. and we should
handle it, otherwise unhandled exception will be noticed by seastar's
reactor. and it complains in that case.
Signed-off-by: Kefu Chai <kchai@redhat.com>
TransactionManager::close() calls into journal->close(), which in turn
calls BlockSegmentManager::segment_close(). and
SegmentStateTracker::write_out() is then called by
BlockSegmentManager::segment_close().
but BlockSegmentManager::close() closes the underlying seastar::file,
we are not able to write to the file after closing it.
in this change, to ensure that we can close a segment correctly in
TMDriver::close(), tm->close() is called before
segment_manager->close().
Signed-off-by: Kefu Chai <kchai@redhat.com>
This patch just moves the RGW exports created using nfs module to mgr/nfs
document. The RGW requirements will be updated in a different PR.
Signed-off-by: Varsha Rao <varao@redhat.com>
There was initially a problem with PriorityCache perf counters were part of the name was missing (i.e. "mon.a
.cache_bytes" instead of "mon.a.prioritycache.cache_bytes"). This was fixed in another part of the src code,
but I added a log here to record any future instances of a similar occurrence.
Also: Not every rgw daemon has the same schema. Specifically, each rgw daemon has a uniquely-named collection that starts off identically (i.e. "objecter-0x...") then diverges (i.e. "...55f4e778e140.op_rmw"). I added a bit of code that combines these unique counters all under one rgw instance. Without this check, the schema would remain separeted out in the final report.
Signed-off-by: Laura Flores <lflores@redhat.com>
There was a problem with PriorityCache perf counters, where part of the name was missing (i.e. "mon.a.cache_bytes" instead of "mon.a.prioritycache.cache_bytes"). The problem was happening because a 'this' pointer was missing in the original implementation.
Signed-off-by: Laura Flores <lflores@redhat.com>
For some reason, the sysctl directory could not exist if no packages dropping
a custom sysctl file is installed on the host.
Instead we create the directory if it doesn't exist.
Closes: https://tracker.ceph.com/issues/51620
Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
This commit adds a directive that can be used to conditionally display elements based on authorization/scopes criteria
Fixes: https://tracker.ceph.com/issues/47355
Signed-off-by: Ngwa Sedrick Meh <nsedrick101@gmail.com>
In RPM spec files, comment lines should not include macro invocations,
because RPM can and will expand them, with unpredictable results.
Fixes: https://tracker.ceph.com/issues/51622
Signed-off-by: Nathan Cutler <ncutler@suse.com>
In days of yore, the Developer Guide linked to the
IRC page at ceph.io. After the 2021 rewriting of
ceph.io, a new era began, and that page was no
longer easily accessible (it could still be found
at old.ceph.com, but this was deprecated).
Anyway, that IRC information should be included in
the docs. This PR makes sure that the IRC
information is included in the docs.
Signed-off-by: Zac Dover <zac.dover@gmail.com>
The gather_perf_counters() method has been updated to capture unprocessed, raw data instead of derived averages. Certain areas, such as initalizations, have also been improved for readability and consistency.
Signed-off-by: Laura Flores <lflores@redhat.com>