]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
15 months agoqa/suites/orch: enable cephadm single_host_defaults for smb tests
John Mulligan [Tue, 9 Jul 2024 18:28:49 +0000 (14:28 -0400)]
qa/suites/orch: enable cephadm single_host_defaults for smb tests

Set the cephadm single_host_defaults option for the smb tests that use a
single node ceph cluster. Without this option the mgr_pool and the
sqlite3 db support needed by the smb mgr module will not be available.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: improve error handling for generic exceptions
John Mulligan [Tue, 9 Jul 2024 18:24:39 +0000 (14:24 -0400)]
mgr/smb: improve error handling for generic exceptions

Ensure that something gets added to the error response even if the
caught exception has no associated text.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agopybind/mgr: add a specific exception for the mgr_pool disabled case
John Mulligan [Tue, 9 Jul 2024 18:20:55 +0000 (14:20 -0400)]
pybind/mgr: add a specific exception for the mgr_pool disabled case

This can help avoid confusion when debugging why the mgr_pool was
not available.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agopybind/mgr: add a log line to hint why mgr sqlite3 db not ready
John Mulligan [Tue, 9 Jul 2024 18:20:26 +0000 (14:20 -0400)]
pybind/mgr: add a log line to hint why mgr sqlite3 db not ready

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: use the sqlite mirroring store by default
John Mulligan [Sat, 6 Jul 2024 17:37:31 +0000 (13:37 -0400)]
mgr/smb: use the sqlite mirroring store by default

We added the sqlite db for performance reasons and now have enhanced it
with the mirroring store for a consistent policy of only storing
possibly sensitive information in the mon config key store, like cephadm
does for certs and stuff. Enable the sqlite mirroring store by default.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: filter out password fields in sqlite store
John Mulligan [Sat, 6 Jul 2024 18:00:29 +0000 (14:00 -0400)]
mgr/smb: filter out password fields in sqlite store

Currently, all of ceph orchestration stores sensitive data in the mon
config-key store. Keep doing that by eliding passwords in the sqlite
store but retaining them in the mon based store. Perhaps, in the future
we can even use a 'vault' type store for even better sensitive info
retention.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add function for setting up sqlite mirroring store
John Mulligan [Sat, 6 Jul 2024 17:37:20 +0000 (13:37 -0400)]
mgr/smb: add function for setting up sqlite mirroring store

Add a function similar to the existing function for setting up
a sqlite3 db based store for a mgr module, but with mirroring.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add SqliteMirroringStore class
John Mulligan [Sat, 6 Jul 2024 17:37:06 +0000 (13:37 -0400)]
mgr/smb: add SqliteMirroringStore class

Add a SqliteMirroringStore class that can mirror objects from a
particular namespace into the same namespace in another store.
The Mirror configuration classes can be used to modify and
merge objects from each store when fetched.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add transactions to handler funcs underlying show command
John Mulligan [Thu, 30 May 2024 19:00:57 +0000 (15:00 -0400)]
mgr/smb: add transactions to handler funcs underlying show command

Add transaction context manager to the handler functions that underlie
the smb module's show command. This makes a pretty good difference in
the speed of showing the resources.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: make the new sqlite store our default internal store
John Mulligan [Fri, 10 May 2024 19:38:25 +0000 (15:38 -0400)]
mgr/smb: make the new sqlite store our default internal store

Add the new sqlite store to the smb mgr module, making it the default.
Add some configuration params, mainly for devs only, to also allow going
back to the previous store for debugging and testing purposes.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add a new sqlite db backed store
John Mulligan [Fri, 10 May 2024 19:37:57 +0000 (15:37 -0400)]
mgr/smb: add a new sqlite db backed store

Add a new store type that uses a sqlite3 database, stored in rados, for
managing internal resources. The main motivation for this store is to
improve performance, specifically in the case where we need to look
up shares by fields other than the store entry key.

In this store each namespace maps to a table. Each table is managed by a
class that can store a JSON object. The shares table is specialized so
that it can index fields within the JSON and find (cluster_id, name)
pairs efficiently. This allows us to much more quickly determine if
a share's name is already in use by a different share in the same
cluster (the name may be reused in a different cluster w/o issue).

One other important factor when using this store is to use transactions,
via the transaction method (see TransactingConfigStore). If transactions
are not used this store can perform worse than the ModuleConfigStore.
When they are used (correctly) there is a good performance improvement.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add store transactions to parts of the handler
John Mulligan [Wed, 15 May 2024 22:25:40 +0000 (18:25 -0400)]
mgr/smb: add store transactions to parts of the handler

Add a wrapper contextmethod that initiates a transaction on a store if said
store supports transactions (otherwise the ctx manager is a no-op).
Use the wrapper over certain functions in the handler where many store
operations may be needed. This makes a big performance difference when
using a sqlite db backed store.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add TransactingConfigStore protocol
John Mulligan [Wed, 29 May 2024 23:27:57 +0000 (19:27 -0400)]
mgr/smb: add TransactingConfigStore protocol

Add a new TransactingConfigStore protocol. This TransactingConfigStore is a
ConfigStore that provides a method for establishing a transaction.
What a transaction means can depend on the store but generally it is
intended to provide a way to use database transactions with the store
abstraction.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add a unit test to verify the new name in use check
John Mulligan [Tue, 14 May 2024 15:07:38 +0000 (11:07 -0400)]
mgr/smb: add a unit test to verify the new name in use check

Add a unit test to verify the share name in use check recently added.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: validate that a share name is unique per-cluster
John Mulligan [Tue, 14 May 2024 14:19:10 +0000 (10:19 -0400)]
mgr/smb: validate that a share name is unique per-cluster

We already require that the share_id be unique as it's part of the entry
key of the resource. Add a validation function to the handler that
checks if a (cluster_id, name) tuple is not duplicated. This function
uses the newly added config_store.find_in_store function to find the
potential dupes.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add find_in_store function to config_store.py
John Mulligan [Mon, 13 May 2024 21:10:36 +0000 (17:10 -0400)]
mgr/smb: add find_in_store function to config_store.py

Add a new `find_in_store` function to the config store module. This
function can be called on any store to search for a particular object
using the FindParams, with an exact match of the subset of keys & values
in the dict. If the store is a FindingConfigStore this operation may be
able to be done more efficiently but we always can fall back to the
simple approach of reading in every object from the store & namespace.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add ObjectCachingEntry class to config_store.py
John Mulligan [Mon, 13 May 2024 20:29:22 +0000 (16:29 -0400)]
mgr/smb: add ObjectCachingEntry class to config_store.py

Add a general store entry class that caches objects so that if an
object needs to be "gotten" from the store multiple times we may
avoid actually calling the store entry get method. This will be
used by a future function for finding particular items in a store.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agomgr/smb: add a new protocol for a FindingConfigStore
John Mulligan [Mon, 13 May 2024 21:10:26 +0000 (17:10 -0400)]
mgr/smb: add a new protocol for a FindingConfigStore

Add a new FindingConfigStore protocol. This FindingConfigStore is a
ConfigStore that provides a method for more quickly/efficiently finding
specific entries in the store. This is opposed to walking all keys and
getting all objects and comparing them. This protocol is optional and
will only be implemented by a few specialized stores.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agopybind/mgr: add convenient context mgrs for accessing module db
John Mulligan [Wed, 29 May 2024 23:06:49 +0000 (19:06 -0400)]
pybind/mgr: add convenient context mgrs for accessing module db

Add two new functions returning context managers for accessing the
sqlite db from the module base class. exclusive_db_access takes
the db lock and yields the sqlite db connection. exclusive_db_cursor
does the same as the previous function but returns a cursor instead
of the connection.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
15 months agoMerge pull request #58179 from cbodley/wip-rgw-assert-async
Casey Bodley [Fri, 5 Jul 2024 14:50:45 +0000 (15:50 +0100)]
Merge pull request #58179 from cbodley/wip-rgw-assert-async

rgw: test that no asio threads are blocked on null_yield

Reviewed-by: Adam Emerson <aemerson@redhat.com>
15 months agoMerge pull request #58288 from cbodley/wip-66705
Casey Bodley [Fri, 5 Jul 2024 14:50:19 +0000 (15:50 +0100)]
Merge pull request #58288 from cbodley/wip-66705

rgw: fix multipart get part when count==1

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
15 months agoMerge pull request #56834 from galsalomon66/fix_error_message_flow
Casey Bodley [Fri, 5 Jul 2024 14:03:51 +0000 (15:03 +0100)]
Merge pull request #56834 from galsalomon66/fix_error_message_flow

rgw/s3select : fix for error flow. add an option to disable s3select-request.

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
15 months agoMerge pull request #58199 from tchaikov/wip-python3.9
Kefu Chai [Fri, 5 Jul 2024 13:30:17 +0000 (21:30 +0800)]
Merge pull request #58199 from tchaikov/wip-python3.9

mgr: use un-deprecated APIs to initialize Python interpretor

Reviewed-by: Adam King <adking@redhat.com>
15 months agoMerge pull request #58427 from Matan-B/wip-matanb-seastar-string
Adam Kupczyk [Fri, 5 Jul 2024 07:54:11 +0000 (09:54 +0200)]
Merge pull request #58427 from Matan-B/wip-matanb-seastar-string

seastar: fix makecheck error: missing 'typename'

15 months agoMerge pull request #58414 from cbodley/wip-cmake-object-library-legacy-headers
Casey Bodley [Thu, 4 Jul 2024 21:31:06 +0000 (22:31 +0100)]
Merge pull request #58414 from cbodley/wip-cmake-object-library-legacy-headers

cmake: more object libraries depend on legacy-option-headers

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
15 months agoMerge pull request #58428 from cbodley/wip-rm-boost-redis-again
Casey Bodley [Thu, 4 Jul 2024 20:16:15 +0000 (21:16 +0100)]
Merge pull request #58428 from cbodley/wip-rm-boost-redis-again

submodule: remove the boost_redis submodule again

Reviewed-by: Adam Emerson <aemerson@redhat.com>
15 months agoMerge pull request #58434 from cbodley/wip-42888
Casey Bodley [Thu, 4 Jul 2024 20:12:22 +0000 (21:12 +0100)]
Merge pull request #58434 from cbodley/wip-42888

doc/rgw: update s3 authentication

Reviewed-by: Zac Dover <zac.dover@proton.me>
15 months agodoc/rgw: update s3 authentication
Casey Bodley [Thu, 4 Jul 2024 19:17:52 +0000 (15:17 -0400)]
doc/rgw: update s3 authentication

authentication.rst described the steps to generate a v2 signature,
without reference to aws docs. replace that with sections that reference
aws docs for v2 and v4 signatures. list which values of the request
header x-amz-content-sha256 are supported for v4

Fixes: https://tracker.ceph.com/issues/42888
Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #58429 from cbodley/wip-rgw-xxhash-debug
Casey Bodley [Thu, 4 Jul 2024 19:38:58 +0000 (20:38 +0100)]
Merge pull request #58429 from cbodley/wip-rgw-xxhash-debug

cmake: work around xxhash 'inlining failed' errors in debug builds

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agoMerge pull request #58368 from zdover23/wip-doc-2024-07-01-rados-config-mon-lookup-dns
Zac Dover [Thu, 4 Jul 2024 18:25:25 +0000 (04:25 +1000)]
Merge pull request #58368 from zdover23/wip-doc-2024-07-01-rados-config-mon-lookup-dns

doc/rados: document manually passing search domain

Reviewed-by: Lander Duncan <landerduncan@nyu.edu>
Reviewed-by: Cole Mitchell <cole.mitchell.ceph@gmail.com>
15 months agocmake: work around xxhash 'inlining failed' errors in debug builds
Casey Bodley [Wed, 26 Jun 2024 22:17:13 +0000 (18:17 -0400)]
cmake: work around xxhash 'inlining failed' errors in debug builds

rgw enables the XXH_INLINE_ALL define, but this causes debug builds to
fail with errors like "inlining failed in call to ‘always_inline’"

for build types Debug and RelWithDebInfo, add extra define
XXH_NO_INLINE_HINTS to remove the always_inline hints causing this error

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agosubmodule: remove the boost_redis submodule again
Casey Bodley [Thu, 4 Jul 2024 16:20:27 +0000 (12:20 -0400)]
submodule: remove the boost_redis submodule again

b6d585645ca7d469fd9fe453ff37ca6bdb914d98 accidentally added back the
boost_redis submodule that was removed in 862246cdefc12acfbd2711c7677a252c59634c9d

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #58387 from rhcs-dashboard/rgw-sync-policy-crud-ops
Nizamudeen A [Thu, 4 Jul 2024 14:48:00 +0000 (20:18 +0530)]
Merge pull request #58387 from rhcs-dashboard/rgw-sync-policy-crud-ops

mgr/dashboard: RGW sync policy crud operations

Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoseastar: fix makecheck error: missing 'typename'
Matan Breizman [Thu, 4 Jul 2024 13:39:09 +0000 (16:39 +0300)]
seastar: fix makecheck error: missing 'typename'

update seastar submodule to wip-matanb-seastar-july4
Reverting https://github.com/scylladb/seastar/commit/8a3dc425dd9bff7a00ffa3345768e01b1a24825f

This revert is pushed to not block all other PRs that are failing make
check due to this.

Fixes: https://tracker.ceph.com/issues/66834
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
15 months agoMerge pull request #58408 from AliMasarweh/wip-alimasa-http-to-kafka
Ali Masarwa [Thu, 4 Jul 2024 13:17:49 +0000 (16:17 +0300)]
Merge pull request #58408 from AliMasarweh/wip-alimasa-http-to-kafka

RGW|BN : change endpoint for http failing tests

Reviewed-by: yuvalif<ylifshit@redhat.com>
15 months agoMerge pull request #57716 from rhcs-dashboard/add-rgw-multisite-wizard-api
Aashish Sharma [Thu, 4 Jul 2024 12:05:00 +0000 (17:35 +0530)]
Merge pull request #57716 from rhcs-dashboard/add-rgw-multisite-wizard-api

mgr/dashboard: add api for rgw multisite replication wizard

Reviewed-by: Nizamudeen A <nia@redhat.com>
15 months agoMerge pull request #58395 from pereman2/scrapper-replayer
Pere Diaz Bou [Thu, 4 Jul 2024 08:49:04 +0000 (10:49 +0200)]
Merge pull request #58395 from pereman2/scrapper-replayer

test/allocsim: osd op scraper replayer

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
15 months agomgr/dashboard: RGW sync policy crud operations
Naman Munet [Tue, 2 Jul 2024 06:36:59 +0000 (12:06 +0530)]
mgr/dashboard: RGW sync policy crud operations

sync group crud ops added

Fixes: https://tracker.ceph.com/issues/66798
Signed-off-by: Naman Munet <nmunet@redhat.com>
15 months agoRGW|BN : change endpoint for http failing tests
Ali Masarwa [Sun, 30 Jun 2024 13:26:22 +0000 (16:26 +0300)]
RGW|BN : change endpoint for http failing tests

Signed-off-by: Ali Masarwa <amasarwa@redhat.com>
15 months agoMerge pull request #58344 from guits/fix-log-errors
Guillaume Abrioux [Thu, 4 Jul 2024 06:17:44 +0000 (08:17 +0200)]
Merge pull request #58344 from guits/fix-log-errors

qa: fix log errors for cephadm tests

15 months agoMerge pull request #55076 from linuxbox2/wip-rgw-cksum
Matt Benjamin [Wed, 3 Jul 2024 22:25:26 +0000 (18:25 -0400)]
Merge pull request #55076 from linuxbox2/wip-rgw-cksum

rgw: implement S3 additional checksum support

15 months agocmake: use BLAKE3's cmake
Casey Bodley [Tue, 25 Jun 2024 17:55:20 +0000 (13:55 -0400)]
cmake: use BLAKE3's cmake

Added EXCLUDE_FROM_ALL to prevent gristing files in
the subdir.

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: introduce attribute caching in RadosMultipartUpload
Daniel Gryniewicz [Wed, 26 Jun 2024 14:30:42 +0000 (10:30 -0400)]
rgw_cksum: introduce attribute caching in RadosMultipartUpload

Allow MultipartUpload::complete() to have previously called
Upload::get_info() without an additional round-trip to fetch
attributes.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: address review comments
Matt Benjamin [Sat, 22 Jun 2024 20:12:54 +0000 (16:12 -0400)]
rgw_cksum: address review comments

* remove rgw_cksum_pipe state enum, not needed [Casey review]
* remove a format that just took a single string substitution
  and passed it to an iostream [Casey review]
* use boost::to_upper* [Casey review]
* remove unused RGW_ATTR_CKSUM_ALGORITHM decl [Casey review]
* negate error code values in two places [Casey review]
* split cksum digests from base type decls
* resolve comment when checksum requested but not available
* remove redundant memset
* remove junk from rgw_blake3_digest.h
* s/ldpp_dout + fmt::format/ldpp_dout_fmt/g;
* fix conditional return of parts_count
      from RGWRados::Object::prepare().  A value for parts_count should
      be returned iff a *multipart* object manifest exists.
* remove /tmp output test
* finish moving ceph_crypto headers out of rgw_cksum.h
* consume the optional in multipart_parts_count
* target_attrs can be a reference (but not const)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: implement POST upload checksums
Matt Benjamin [Mon, 15 Apr 2024 20:44:58 +0000 (16:44 -0400)]
rgw_cksum: implement POST upload checksums

* properly transform pseudo headers in PostObj
* enable cksum verify in PostObj
* match checksum headers in match_policy_vars
* fixup add POST headers to environment

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: fix ReadOp comment
Matt Benjamin [Sun, 5 May 2024 18:27:06 +0000 (14:27 -0400)]
rgw_cksum: fix ReadOp comment

parts_count now returns a value for parts_count whenever the
target object is a multipart upload.  this has no additional
overhead, since this can be read off the manifest

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agoreturn parts_count from read_op::prepare whenever applicable
Matt Benjamin [Sat, 27 Apr 2024 14:24:25 +0000 (10:24 -0400)]
return parts_count from read_op::prepare whenever applicable

* fix to deal with parts_count == 1 asymmetry

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: upload->get_info() fails when !cksum (why?)
Matt Benjamin [Tue, 30 Apr 2024 19:27:28 +0000 (15:27 -0400)]
rgw_cksum: upload->get_info() fails when !cksum (why?)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: multipart upload checksums
Matt Benjamin [Wed, 10 Apr 2024 21:58:15 +0000 (17:58 -0400)]
rgw_cksum: multipart upload checksums

includes commits:

* fixes init-multipart header return
* introduce checksum to SAL MultipartPart interface
* thread optional checksum through DataProcessor
* code complete multipart checksum verify
* fix formatter
* fix ckecksum format for multipart objects in GET/HEAD ops
* always return parts_count from ReadOp::prepare() if applicable
      This behavior is used when returning the checksum of a multipart
      upload object.
* tweak conditional multipart_parts_count
* add checksum output to ListMultipart
* fix nil-return from GetHeaderCksumResult
* re-arm truncated if re-entering list-parts
* complete-multipart w/list-parts
* validate supplied checksum in CompleteMultipart
* verify checksum type against initial checksum algorithm
* rgw_op: suppress more x-amz headers
* final fixes and cleanups
* remove unused t0

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw_cksum: test round-trip constructor (armored)
Matt Benjamin [Thu, 18 Apr 2024 19:26:00 +0000 (15:26 -0400)]
rgw_cksum: test round-trip constructor (armored)

I.e., prove cksum == Cksum(cksum.to_armor().c_str())

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months ago* forward pipe continuation in RGWPutObj_Cksum::process()
Casey Bodley [Mon, 29 Apr 2024 15:10:04 +0000 (11:10 -0400)]
* forward pipe continuation in RGWPutObj_Cksum::process()

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agorgw: add checksum and digest machinery
Matt Benjamin [Tue, 24 Sep 2019 21:12:02 +0000 (17:12 -0400)]
rgw: add checksum and digest machinery

Adds new Blake3 digest format (native), a concrete type to
represent digests, and static_visitor machinery to unify varying
checksum computations.

This framework, together with new trailing checksum header support,
is used to implement S3 additional checksum verification.  Parts of
the AWS content checksum API work build on a prior contribution from
imtzw <tongzhiwei_yewu@cmss.chinamobile.com>.
Thank you!

Fixes: https://tracker.ceph.com/issues/42080
Fixes: https://tracker.ceph.com/issues/63951
squashed commits:
* rgw_cksum: add trival test vectors for sha-format digests
      Computed digests match those produced by sha1sum, sha256sum,
      and sha512sum utilities.
* rgw_cksum: add test vectors for blake3
      Tests the same input strings with digests validated by
      b3sum (https://crates.io/crates/b3sum).
* rgw_ckum: switch to accel crc32c
      The internal Ceph convention appears to be to omit a final
      xor where ceph_crc32c is used, but it's required for compatibility
      with AWS implementations.
* rgw_cksum: add XXH3 digest
* rgw_cksum: write class encoder for rgw::digest::Cksum
* rgw_cksum: also reverse crc32c (REBASEME)
      Mark noticed that the crc32c output was being tested against a
      byteswapped value (crc32c also needs byteswap on LE).
* rgw_cksum: add digest::Cksum serde tests
* rgw_cksum: fix main(...) linkage
      (so we run our main unit and not the one in gmock
* rgw_cksum: convenience extensions for integration with RGW/S3
* introduce rgw_cksum unique_ptr factory
* rgw_cksum: mark string transform accessors const
* rgw_cksum: fixup unittest_rgw_chksum compilation--all existing tests pass
* rgw_cksum: hook up put-object checksum workflow
* tweaks to report on content checksum mismatch
* rgw_cksum: match SDK as well as general checksum header
* make it more efficient
* initialize RGWPutObj_Cksum::digest
* rgw_cksum:  write parse_cksum_type w/const char* arg
* initialize _type correctly; doing armored wrong
* fix expected checksum header name, clean up verify
* fix output on checksum verify fail, cleanup
* introduce Cksum::to_armor();  all AWS cases pass
* oops, extra 0-byte at end of to_armor() result
* use to_armor() with decoded checksums (i.e., for all S3 presentation)
* remove unnecessary finalize() in RGWPutObj_Cksum dtor
* RGWPutObj_Cksum::Factory fixes
* fixes test_object_checksum_sha256
* choose preferred checksum algorithm header if both are present
* log verified checksums in RGWPutObj::execute at 16
* checksum not needed in policy condition
* fix checksum trailing header format
* move Blake3 to rgw_digest_blake3.h

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agocommon/rgw: add BLAKE3 submodule
Matt Benjamin [Tue, 25 Jun 2024 15:45:35 +0000 (11:45 -0400)]
common/rgw: add BLAKE3 submodule

Fast, cryptographic hash functions suitable for block checksums.
BLAKE3 is the faster, more portable successor to Blake2(b,s),
now with 4x throughput.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agocommon: update xxHash submodule to v082
Matt Benjamin [Thu, 15 Feb 2024 23:24:58 +0000 (18:24 -0500)]
common: update xxHash submodule to v082

Among other things, provides XXH128 and XXH3.  Includes
compile fixes for gcc-13.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agocmake/erasure-code/jerasure: jerasure_utils depends on legacy-option-headers
Casey Bodley [Wed, 3 Jul 2024 17:58:49 +0000 (13:58 -0400)]
cmake/erasure-code/jerasure: jerasure_utils depends on legacy-option-headers

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocmake/test/objectstore: remove ObjectStoreImitator object library
Casey Bodley [Wed, 3 Jul 2024 17:47:02 +0000 (13:47 -0400)]
cmake/test/objectstore: remove ObjectStoreImitator object library

just compile it as a source file in ceph_test_fragmentation_sim

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocmake/test/objectstore: store_test_fixture depends on legacy-option-headers
Casey Bodley [Wed, 3 Jul 2024 17:45:38 +0000 (13:45 -0400)]
cmake/test/objectstore: store_test_fixture depends on legacy-option-headers

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocmake/mgr: mgr_cap_obj depends on legacy-option-headers
Casey Bodley [Wed, 3 Jul 2024 17:43:52 +0000 (13:43 -0400)]
cmake/mgr: mgr_cap_obj depends on legacy-option-headers

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocmake/compressor: QatAccel depends on legacy-option-headers
Casey Bodley [Wed, 3 Jul 2024 17:42:46 +0000 (13:42 -0400)]
cmake/compressor: QatAccel depends on legacy-option-headers

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocmake/crush: crush_objs depends on legacy-option-headers
Casey Bodley [Wed, 3 Jul 2024 17:39:20 +0000 (13:39 -0400)]
cmake/crush: crush_objs depends on legacy-option-headers

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agodoc/rados: document manually passing search domain
Zac Dover [Mon, 1 Jul 2024 06:36:02 +0000 (16:36 +1000)]
doc/rados: document manually passing search domain

Document how to manually pass the search domain to "mon_dns_srv_name" in
doc/rados/configuration/mon-lookup-dns.rst.

This commit is made in response to a request by Lander Duncan that was made on the [ceph-users] mailing list, and can be seen here: https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/F7V4CWLIYCAJ4JXI2JLNY6QPCFPR4SLA/

Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com>
Signed-off-by: Zac Dover <zac.dover@proton.me>
15 months agoMerge pull request #58407 from nbalacha/wip-nbalacha-rbd-qa-fixes
Ilya Dryomov [Wed, 3 Jul 2024 16:36:48 +0000 (18:36 +0200)]
Merge pull request #58407 from nbalacha/wip-nbalacha-rbd-qa-fixes

qa/workunits/rbd: minor rbd_mirror_helpers.sh fixes

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
15 months agoMerge pull request #58403 from ivancich/wip-fix-bucket-sync-thread
Casey Bodley [Wed, 3 Jul 2024 16:13:47 +0000 (17:13 +0100)]
Merge pull request #58403 from ivancich/wip-fix-bucket-sync-thread

rgw: fix bucket sync thread waiting inordinate amount of time

Reviewed-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #58378 from YaZasnyal/fix/discard_buffer_size
Casey Bodley [Wed, 3 Jul 2024 14:58:20 +0000 (15:58 +0100)]
Merge pull request #58378 from YaZasnyal/fix/discard_buffer_size

rgw: DoS when QuotaExceeded

Reviewed-by: Casey Bodley <cbodley@redhat.com>
15 months agoqa: fix log errors for cephadm tests
Guillaume Abrioux [Thu, 27 Jun 2024 08:12:10 +0000 (10:12 +0200)]
qa: fix log errors for cephadm tests

This fixes a lot of errors induced by the log scrapper check.

Fixes: https://tracker.ceph.com/issues/66751
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
15 months agoMerge pull request #58119 from Suyashd999/fix-uam8
Casey Bodley [Wed, 3 Jul 2024 14:08:33 +0000 (15:08 +0100)]
Merge pull request #58119 from Suyashd999/fix-uam8

rgw_user: 'keys' is in undefined state after being moved.

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
15 months agoMerge pull request #58339 from clwluvw/s3website-no-host
Casey Bodley [Wed, 3 Jul 2024 14:04:15 +0000 (15:04 +0100)]
Merge pull request #58339 from clwluvw/s3website-no-host

rgw: use s3website REST when higher priority and no host header

Reviewed-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #58399 from cbodley/wip-rgw-deshard-encoding
Casey Bodley [Wed, 3 Jul 2024 14:03:34 +0000 (15:03 +0100)]
Merge pull request #58399 from cbodley/wip-rgw-deshard-encoding

cls/rgw: bump cls_rgw_reshard_entry decode version to match encode

Reviewed-by: Adam Emerson <aemerson@redhat.com>
15 months agoMerge pull request #57060 from awojno-bloomberg/wip-awojno-status-header
Casey Bodley [Wed, 3 Jul 2024 14:02:55 +0000 (15:02 +0100)]
Merge pull request #57060 from awojno-bloomberg/wip-awojno-status-header

rgw: implement x-amz-replication-status for PENDING & COMPLETED

Reviewed-by: Shilpa Jagannath <smanjara@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
15 months agotest/allocsim: trim bufferlist before sending
Pere Diaz Bou [Wed, 3 Jul 2024 13:55:36 +0000 (15:55 +0200)]
test/allocsim: trim bufferlist before sending

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agotest/allocsim: worker threads, op hashed by client
Pere Diaz Bou [Wed, 3 Jul 2024 10:59:20 +0000 (12:59 +0200)]
test/allocsim: worker threads, op hashed by client

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agoqa/workunits/rbd: minor fixes
N Balachandran [Wed, 3 Jul 2024 10:46:13 +0000 (16:16 +0530)]
qa/workunits/rbd: minor fixes

Corrected paths and added missing spaces.

Signed-off-by: N Balachandran <nibalach@redhat.com>
15 months agotest/allocsim: mmap threaded parser
Pere Diaz Bou [Wed, 3 Jul 2024 10:21:46 +0000 (12:21 +0200)]
test/allocsim: mmap threaded parser

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agotest/allocsim: comment running op cout
Pere Diaz Bou [Wed, 3 Jul 2024 08:52:28 +0000 (10:52 +0200)]
test/allocsim: comment running op cout

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agotest/allocsim: comment parssing cout
Pere Diaz Bou [Wed, 3 Jul 2024 08:36:05 +0000 (10:36 +0200)]
test/allocsim: comment parssing cout

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agotest/allocsim: truncate,zero,writefull replay operations
Pere Diaz Bou [Wed, 3 Jul 2024 08:26:23 +0000 (10:26 +0200)]
test/allocsim: truncate,zero,writefull replay operations

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agorgw: RGWCoroutinesManager warns about blocking
Casey Bodley [Thu, 20 Jun 2024 20:34:06 +0000 (16:34 -0400)]
rgw: RGWCoroutinesManager warns about blocking

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agorgw/rados: RGWReshardWait warns about blocking
Casey Bodley [Thu, 20 Jun 2024 20:28:02 +0000 (16:28 -0400)]
rgw/rados: RGWReshardWait warns about blocking

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agorgw: config option rgw_asio_assert_yielding
Casey Bodley [Thu, 20 Jun 2024 19:56:50 +0000 (15:56 -0400)]
rgw: config option rgw_asio_assert_yielding

enable this to assert on blocking calls that should be asynchronous
instead of just logging a warning message

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #57985 from thotz/add-storage-adminops-api
Casey Bodley [Tue, 2 Jul 2024 19:55:25 +0000 (20:55 +0100)]
Merge pull request #57985 from thotz/add-storage-adminops-api

rgw/adminops: add option to provide storageclass adminops user apis

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
15 months agoMerge pull request #57858 from adamemerson/wip-66340
Casey Bodley [Tue, 2 Jul 2024 19:46:47 +0000 (20:46 +0100)]
Merge pull request #57858 from adamemerson/wip-66340

rgw/multisite: Fix use-after-move in retry logic in logbacking

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
Reviewed-by: Suyash Dongre <suyashd999@gmail.com>
15 months agorgw: fix bucket sync thread waiting inordinate amount of time
J. Eric Ivancich [Tue, 2 Jul 2024 17:50:27 +0000 (13:50 -0400)]
rgw: fix bucket sync thread waiting inordinate amount of time

A signed value was read in as an unsigned value, so -1 was interpreted
as a very large value. This made the thread wait period in the bucket
sync thread inordinately long, preventing bucket sync and dynamic
resharding (unless values appropriate for debugging were set).

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
15 months agoMerge pull request #58388 from sseshasa/wip-fix-perf-basic-failure
Sridhar Seshasayee [Tue, 2 Jul 2024 15:07:54 +0000 (20:37 +0530)]
Merge pull request #58388 from sseshasa/wip-fix-perf-basic-failure

qa/tasks: Initialize 'monitoring_profiles' spec to an empty dict

Reviewed-by: Neha Ojha <nojha@redhat.com>
15 months agoMerge PR #58375 into main
Patrick Donnelly [Tue, 2 Jul 2024 14:42:50 +0000 (10:42 -0400)]
Merge PR #58375 into main

* refs/pull/58375/head:
qa/crontab: convert fs main run to monthly at higher priority

Reviewed-by: Venky Shankar <vshankar@redhat.com>
15 months agorgw/kms: RGWKMIPTransceiver warns about blocking
Casey Bodley [Thu, 20 Jun 2024 19:53:17 +0000 (15:53 -0400)]
rgw/kms: RGWKMIPTransceiver warns about blocking

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agorgw/pubsub: Waiter warns about blocking
Casey Bodley [Thu, 20 Jun 2024 19:46:19 +0000 (15:46 -0400)]
rgw/pubsub: Waiter warns about blocking

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agorgw: split is_asio_thread warnings into separate file/function
Casey Bodley [Thu, 20 Jun 2024 19:43:36 +0000 (15:43 -0400)]
rgw: split is_asio_thread warnings into separate file/function

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agorgw: pass DoutPrefixProvider into RGWHTTPClient
Casey Bodley [Thu, 20 Jun 2024 17:41:06 +0000 (13:41 -0400)]
rgw: pass DoutPrefixProvider into RGWHTTPClient

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agocls/rgw: bump cls_rgw_reshard_entry decode version to match encode
Casey Bodley [Tue, 2 Jul 2024 13:07:51 +0000 (09:07 -0400)]
cls/rgw: bump cls_rgw_reshard_entry decode version to match encode

9302fbb3f5416871c1978af5d45f3bf568c2c190 bumped the version in
ENCODE_START() but missed DECODE_START(). i don't think that would cause
any decode failures, unless we later raise ENCODE_START's compat_v above
2

Signed-off-by: Casey Bodley <cbodley@redhat.com>
15 months agoMerge pull request #58081 from sajibreadd/wip-65861
Casey Bodley [Tue, 2 Jul 2024 12:41:14 +0000 (13:41 +0100)]
Merge pull request #58081 from sajibreadd/wip-65861

notifications: report an error when persistent queue deletion failed

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
15 months agoMerge pull request #57537 from kchheda3/wip_fix_notification_caching
Casey Bodley [Tue, 2 Jul 2024 12:40:58 +0000 (13:40 +0100)]
Merge pull request #57537 from kchheda3/wip_fix_notification_caching

rgw/notification: Fix the caching issues of notification brokers, where the cache was not invalidated if topic attributes were changed

Reviewed-by: Yuval Lifshitz <ylifshit@ibm.com>
15 months agotest/allocsim: osd op scraper replayer
Pere Diaz Bou [Tue, 2 Jul 2024 10:56:51 +0000 (12:56 +0200)]
test/allocsim: osd op scraper replayer

For now this is a simple single threaded replayer with a 64 iodepth
where we load all ops from a file and try to push them in order as soon
as we can.

Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
15 months agoqa/tasks: Initialize 'monitoring_profiles' spec to an empty dict
Sridhar Seshasayee [Tue, 2 Jul 2024 07:45:56 +0000 (13:15 +0530)]
qa/tasks: Initialize 'monitoring_profiles' spec to an empty dict

Initialize 'monitoring_profiles' to an empty python dictionary instead of
'None' to prevent the cbt task from failing due to the TypeError exception
when attempting to iterate a 'NoneType'.

The bug was introduced as part of https://github.com/ceph/ceph/pull/51438
and commit e174c6e2cf6c90bd130320eb1f251b62d4b4d6c2.

Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
Fixes: https://tracker.ceph.com/issues/66799
15 months agoMerge pull request #55564 from adk3798/cephadm-cert-store
Adam King [Mon, 1 Jul 2024 21:57:39 +0000 (17:57 -0400)]
Merge pull request #55564 from adk3798/cephadm-cert-store

mgr/cephadm: Add Cert/Key Store

Reviewed-by: Redouane Kachach <rkachach@ibm.com>
15 months agoMerge pull request #58092 from zdover23/wip-doc-2024-06-18-start-os-recs
Ilya Dryomov [Mon, 1 Jul 2024 21:04:11 +0000 (23:04 +0200)]
Merge pull request #58092 from zdover23/wip-doc-2024-06-18-start-os-recs

doc/start: remove mention of Centos 8 support

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Dan Mick <dan.mick@redhat.com>
Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
15 months agoMerge pull request #58230 from rkachach/fix_secure_monitoring_check
Adam King [Mon, 1 Jul 2024 20:03:19 +0000 (16:03 -0400)]
Merge pull request #58230 from rkachach/fix_secure_monitoring_check

mgr/cephadm: redeploy when some dependency daemon is add/removed

Reviewed-by: Adam King <adking@redhat.com>
15 months agoMerge pull request #58154 from tengjie5/tmp3
Adam King [Mon, 1 Jul 2024 20:01:58 +0000 (16:01 -0400)]
Merge pull request #58154 from tengjie5/tmp3

mgr: excute cmd 'ceph orch apply osd' returned without error info

Reviewed-by: Adam King <adking@redhat.com>
15 months agoMerge pull request #57975 from dvanders/dvanders_ipv4
Adam King [Mon, 1 Jul 2024 20:00:05 +0000 (16:00 -0400)]
Merge pull request #57975 from dvanders/dvanders_ipv4

cephadm: disable ms_bind_ipv4 if we will enable ms_bind_ipv6

Reviewed-by: Adam King <adking@redhat.com>
15 months agoMerge pull request #57848 from thegreenbear/cephadm-haproxy-bugged-config
Adam King [Mon, 1 Jul 2024 19:55:16 +0000 (15:55 -0400)]
Merge pull request #57848 from thegreenbear/cephadm-haproxy-bugged-config

cephadm/services/ingress: fixed keepalived config bug

Reviewed-by: Adam King <adking@rehat.com>
Reviewed-by: John Mulligan <jmulligan@redhat.com>
15 months agoMerge pull request #57338 from phlogistonjohn/jjm-mgr-module-cleanups
Adam King [Mon, 1 Jul 2024 19:53:43 +0000 (15:53 -0400)]
Merge pull request #57338 from phlogistonjohn/jjm-mgr-module-cleanups

pybind/mgr: mgr_module.py pep8/flake8 cleanups & tox updates

Reviewed-by: Adam King <adking@redhat.com>