the root access to system is not a must have for running a DPDK
application. so reword the "Configuring OSD DPDKStack" section.
also, manually editing /etc/passwd is not encouraged, so use
"usermod" instead. to add a directory after user's command
interpreter in /etc/passwd does not make sense. see PASSWD(5).
so drop the paragraph on editing /etc/passwd.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
qa/standalone: Fix test_activate_osd() test in ceph-helpers.sh
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
core,rgw: allow configuration of bi tx timeout; add instrumentation
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Modify test_activate_osd() to get the type of scheduler in use and then
verify the value of osd_max_backfills. This is because mclock scheduler
overrides this option to 1000 upon OSD initialization.
The test earlier used to pass because the OSD daemon was killed but not
marked down and upon being brought up, the wait for OSD up check was
passing quickly. But the OSD still didn't have the latest config values.
But now upon killing the OSD, the osd_fast_shutdown sequence notifies the
mon (see PR: https://github.com/ceph/ceph/pull/44807) and is marked down
and dead. Upon bringing it up, the wait for OSD up check takes a longer
time and this is sufficient for the config values to be updated. This
results in the correct values being read from the config 'Values' map.
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
Snap trimming that was postponed as the target PG was scrubbing
must be restarted at scrub completion.
PR #38111 moved trimming restart to just before the scrub fully
terminated. The current PR fixes that.
Trimming is also restarted in those cases where scrub was
queued but aborted immediately.
Fixes: https://tracker.ceph.com/issues/52026
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
Add a series of clean-ups to the instrumentation code. Keep this as a
separate commit so it will be easier to reconcile other code streams.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
This supplements an earlier commit to add additional instrumentation
on bucket index transactions on the CLS side.
The instrumentation is triggered by setting the configuration option
rgw_bucket_index_transaction_instrumentation in the [global] section.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
In order to better understand corner cases with bucket index
operations, extra instrumentation is now added and controlled by a
boolean configuration variable
("rgw_bucket_index_transaction_instrumentation").
When set to true, there is extra logging during all CLS operations
involving bucket index transactions. Additionally, all these log
entries are tagged with "BITX" to make them easier to find in the
logs. This is preferable to setting all OSD logging at a high level
due to the log size issues.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Bucket index operations are transactional with data object
manipulation. The operation is prepared by adding a pending operation
record. And when the data object side is complete, the bucket index
operation is committed.
If it fails to be committed, later bucket listings will compare the
pending ops with the current data object state and see whether it
completed or not and then either commit or expire the op. The time
span for expiration is currently hard-coded as 120 seconds (unless
overridden in the bucket header, which can happen during "bucket
check").
This commit allows that expiration time to be configured.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Currently there is no easy way to gain access to global configuration
from CLS (objclass) code. This adds a new call to the CLS interface
that returns a "const ConfigProxy&" from which configuration can be
accessed.
NOTE: Working code to do provide this functionality in crimson is not
provided.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Old schedules were not picked up from database when mgr was restarted.
Restart old schedules on mgr restart.
Fixes: https://tracker.ceph.com/issues/54052
Signed-off-by: Milind Changire <mchangir@redhat.com>
For the sake of avoiding locking on the `__cxa_throw` paths, Seastar
hijacks `dl_iterate_phdr` of the dynamic linker. Unfortunately, this
has a nasty side effect: it makes impossible to catch an exception in
in a plugin (a DSO loaded via the `dlopen()` machinery).
For mote details please consult:
* https://gist.github.com/rzarzynski/3abe9ed6b50cfa1893d34988e1628bfc,
* `seastar/src/core/exception_hacks.cc`.
This patch deals with the problem by simply disabling the problematic
workaround which could be iatrogenic too. If that would be the case,
we can consider:
* preloading all our Ceph Classes before reaching `smp::configure()`,
* statically linking them.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
crimson: keep string alive during string_view lifetime
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>