Commit Graph

45 Commits

Author SHA1 Message Date
Mark Kogan
31a9255636 rgw: D3N Cache changes for Upstream
Upstreaming / rebase of #24500

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: change io_ctx pool per storage class

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: Changing free() to delete()

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: Addressing review comments

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: Fixing seg fault

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

Moving CacheRequest out of librados

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: cache initialization fix

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: fix missing spawn.hpp compile errors

resolves compilation errors similar to:
```
[ 15%] Building CXX object src/tools/immutable_object_cache/CMakeFiles/ceph_immutable_object_cache_lib.dir/CacheController.cc.o
In file included from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_common.h:31,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_rados.h:17,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/librados/IoCtxImpl.h:30,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/librados/RadosClient.h:35,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/neorados/RADOSImpl.h:27,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/neorados/RADOS.cc:37:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/common/async/yield_context.h:31:10: fatal error: spawn/spawn.hpp: No such file or directory
   31 | #include <spawn/spawn.hpp>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
src/neorados/CMakeFiles/neorados_api_obj.dir/build.make:62: recipe for target 'src/neorados/CMakeFiles/neorados_api_obj.dir/RADOS.cc.o' failed
make[3]: *** [src/neorados/CMakeFiles/neorados_api_obj.dir/RADOS.cc.o] Error 1
```

Signed-off-by: Mark Kogan <mkogan@redhat.com>

Resolving merge conflict

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

Removing all logs and unnecessary comments

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

Cache Read and Write working

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

Initial Commit L1 Cache

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

post re-rebase merge, update fixes

Signed-off-by: Mark Kogan <mkogan@redhat.com>

fixup! post re-rebase merge, update fixes

rgw: continuation of rgwcache branch rebase

Signed-off-by: Mark Kogan <mkogan@redhat.com>

RGW: DataCache: post merge fixes

Signed-off-by: Mark Kogan <mkogan@redhat.com>

fixes of segmentation fault caused by oid

Signed-off-by: E. Ugur Kaynar <ukaynar@bu.edu>

rgw: fixes for segmentation faults and configuration processing

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: data cache first commit

Signed-off-by: Mania Abdi <mania.abdi287@gmail.com>

rgw: cleanup addressing PR comments

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: cleanup addressing PR comments, continuation.

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: pr cleanup addressing second review round

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: Addressing review comments, removing all D3N code from librados

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: for compilation err from removal of mydout() helper

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rge: addressing review comments

rgw: move d3n datacache into separate files
rgw: 1st part of datacache rebranding to d3n

fix forward declaration compile err (only with clang):
../src/rgw/rgw_cache.h:396:4: error: member access into incomplete type 'struct get_obj_data'
  d->data_lock.lock();
   ^
../src/rgw/rgw_cache.h:365:8: note: forward declaration of 'get_obj_data'
struct get_obj_data;
       ^

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: addressing review comments, datacache rebranding to d3n cache

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: Cleaning up unused D3N cache code

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: cont. cleaning up of rgw_obj_data()

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: Removing redundant code, fix for multipart S3 objects

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: fix: incorrect content len on multipart get

in s3tests_boto3.functional.test_s3:test_multipart_copy_versioned
when d3n cache is disabled

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: fix segfault reading from cache

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: fix segfault in multisite

sync on secondary site

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: fix segfault in multisite teuthology tests, cont.

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: Adding drain to wait for all AIO reads to complete

Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>

rgw: fix for using read() by liabio or posix io per config

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: improve persistent data cache directory handling

on start create the persistent datacache directory if necessary
and add an option to evict it's content if already exists

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: fix possible segfault during eviction

Signed-off-by: Mark Kogan <mkogan@redhat.com>

Co-authored-by: Mania Abdi <mania.abdi287@gmail.com>
Co-authored-by: E. Ugur Kaynar <ukaynar@bu.edu>
Co-authored-by: Aishwarya Mathuria <amathuri@redhat.com>
Co-authored-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: addressing latest review comments

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: add debug logs for cache in/out flow

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: move the L2 cache functionality to separate PR

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: addressing review comments

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: address java_s3tests teuthology issues

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: do not handle compressed objects fro now

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: l2 cleanup and log fixups + post dpp

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: thread dpp thru get_obj_iterate_cb() and related

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: bypass reading versioned objects from cache

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: cleanup and fix s3tests

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: allow to enable cache only on beast

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: delete the content of the cache directory on rgw start

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: re-enable d3n cache with civetweb frontend

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: rebase post zipper 10

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: address teuthoogy valgrind leaks detected

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: mitigating valgrind leaks

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: remove rgw_d3n_l1_libaio_read option

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: wip segfault fix

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: mitigate libaio SIGEV_THREAD cb race

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: change libaio signaling mechanism

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: wip cont. libaio cb thread race

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: wip libaio cb thread race

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: libaio cleanups and edge case handling fixes

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: narrow the libaio locking scope

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: add libaio req ordering mechanism

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: fix lock regression

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: addressing reviwe comments and cleasnup

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: libaio locks cleanup

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: refactor libaio abstraction to share the ioc implementation

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: addressing latest review comments and cleanup

Signed-off-by: Mark Kogan <mkogan@redhat.com>

rgw: d3n: address review comments, cont.

Signed-off-by: Mark Kogan <mkogan@redhat.com>
Co-authored-by: Mania Abdi <mania.abdi287@gmail.com>
Co-authored-by: E. Ugur Kaynar <ukaynar@bu.edu>
Co-authored-by: Aishwarya Mathuria <amathuri@redhat.com>
Co-authored-by: Ali Maredia <amaredia@redhat.com>
Co-authored-by: Feng Hualong <hualong.feng@intel.com>
2021-07-06 21:36:06 +03:00
Ali Maredia
1a6255530f qa: add workunit for testing rgw datacache
Add a workunit for testing the rgw object cache
by using s3cmd to write objects and then
verify the objects in the cache.

Also move the 0-install.yaml file out of tasks and
into the main dir for the rgw/verify subsuite.

Signed-off-by: Ali Maredia <amaredia@redhat.com>

qa: d3n: add debug logs

Signed-off-by: Ali Maredia <amaredia@redhat.com>

rgw: s3n: qa: fix netstat search for rgw process

Signed-off-by: Mark Kogan <mkogan@redhat.com>
2021-07-04 14:18:06 +03:00
J. Eric Ivancich
d76e65bcd3 rgw: test radosgw-admin radoslist and incomplete multiparts better
Make sure there are more than 1000 incomplete multiparts and also make
sure one of the incomplete multiparts has at least 1000 parts. This
test is done indirectly through rgw-orphan-list, which invokes
`radosgw-admin radoslist`.

Also, clean up shell flags, so script output is less verbose.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2021-04-10 02:07:53 -04:00
Casey Bodley
a635e523be qa/rgw: test_rgw_reshard.py just tries common ports
the 'sudo netstat | grep radosgw' command is causing failures:

  File "qa/workunits/rgw/test_rgw_reshard.py", line 53, in get_radosgw_port
    x = out.decode('utf8').split(" ")
AttributeError: 'bool' object has no attribute 'decode'

because when valgrind is enabled, the process name is 'valgrind' instead
of 'radosgw'

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2021-02-09 14:26:26 -05:00
Matt Benjamin
9bac99361f test/rgw_file: override keyring if we gen keys
Run with ceph.keyring not that of client.${CEPH_ID}.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2021-01-25 16:46:50 -05:00
Matt Benjamin
247d00817d test/rgw_file: elaborate test cycle
Ensure that all delete phases are run so that script can be
re-run when desired.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
 Please enter the commit message for your changes. Lines starting
2021-01-25 16:46:41 -05:00
Matt Benjamin
e6d54e7d79 rgw_file: add librgw unit test arguments
Also adjust some unit test files to avoid trivial failures.
Fixes missing commit after rgw_write(), as well as conditional
cleanup.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2021-01-25 16:46:25 -05:00
Casey Bodley
12b5b9506c qa/rgw: librgw workunit creates a test user
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2021-01-25 16:46:18 -05:00
Casey Bodley
85641ac3e6 qa/rgw: add librgw_file unit tests to rgw/verify task
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2021-01-25 16:46:04 -05:00
J. Eric Ivancich
11a08a5bb8 rgw: use yum rather than dnf for testing rgw-orphan-list
The teuthology testing for rgw-orphan-list needs to install
`s3cmd`. Switch from using dnf to yum to work on a wider variety of
platforms.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-10-15 15:08:45 -04:00
J. Eric Ivancich
3afc8ac253 rgw: orphan list teuthology test & fully-qualified domain issue
Sometimes when teuthology machines are provisioned, the command
`hostname --fqdn` does not provide a fully qualified domain name but
instead just the hostname (e.g., smithi149 instead of
smithi149.front.sepia.ceph.com). This prevents the teuthology test for
rgw-orphan-list from running successfully [for example, the hostname
was for some reason mis-interpreted as the bucket name in the
request].

This commit checks whether the hostname derived from `hostname --fqdn`
contains any '.'s and if it does not, it will append
".front.sepia.ceph.com" to the hostname. This is a hack, but until
teuthology machines are configured appropriately it seems to be a
reasonable work-around.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-07-08 10:53:49 -04:00
Shilpa Jagannath
06e6013ec1 qa/rgw: add ssl option in reshard tests
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
2020-05-05 15:07:59 +05:30
J. Eric Ivancich
43c948a4ab qa/rgw: integration test for rgw-orphan-list & radosgw-admin radoslist
Add teuthology test for `rgw-orphan-list` in a new tool suite under
rgw. It only needs to be tested under one configuration. And the new
tool sub-suite can be used by other tooling int he
future. radosgw-admin `radoslist` is tested indirectly through
`rgw-orphan-list` and therefore does not need its own test.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2020-05-04 13:55:00 -04:00
Shilpa Jagannath
71b657b9d2 minor fix: run tests in python venv
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
2020-04-30 12:39:50 +05:30
Shilpa Jagannath
0270dc4aaa qa/rgw: some basic reshard tests
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
2020-04-27 13:16:09 +05:30
Casey Bodley
cfa5922fd8 qa/rgw: add rgw_obj and throttle tests to rgw verify suite
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-01-09 16:51:37 -05:00
Sage Weil
6476517def qa/tasks: nosetests -> python -m nose
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-17 12:57:57 -06:00
Sage Weil
240154f114 qa: use python3 for venvs etc
Signed-off-by: Sage Weil <sage@redhat.com>
2019-12-13 08:47:28 -06:00
Casey Bodley
0e76d40aa1 test/rgw: run ceph_test_rgw_gc_log in rgw verify suite
since it requires a running ceph cluster, it can't run in 'make check'
as a unittest. add it to the rgw/verify suite instead

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-10-19 13:28:18 +05:30
Yuval Lifshitz
b8b43fe59d allow for multiple "build" dirs to exist
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
2019-09-06 09:38:32 +03:00
Casey Bodley
a171b2cc7c qa/rgw: run-s3tests.sh runs in s3tests directory
something looks for request_decision_graph.yml in the working directory

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-07-10 11:45:59 -04:00
Casey Bodley
523c522a2f qa/rgw: disable some more tags for run-s3tests
lifecycle_expiration tests require some additional configuration.
beast and civetweb are both strict about header parsing and require
fails_strict_rfc2616

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-07-10 11:00:18 -04:00
Casey Bodley
71db427455 qa/rgw: run-s3tests workunit uses sample config and vstart users
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-07-10 10:59:31 -04:00
Casey Bodley
1643879218 qa/rgw: update default port in perl workunits
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-06-19 07:50:35 -04:00
Kefu Chai
4b0e2c8ed4 qa: fix typos
Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-09-21 12:41:42 +08:00
Alan Somers
3aae5ca6fd scripts: fix bash path in shebangs
/bin/bash is a Linuxism.  Other operating systems install bash to
different paths.  Use /usr/bin/env in shebangs to find bash.

Signed-off-by: Alan Somers <asomers@gmail.com>
2017-07-27 13:24:26 -06:00
Abhishek Lekshmanan
a4727f3fef qa: run-s3tests: use python2 for s3tests & set PATH correctly
in case we're in a vstart deployment, update PATH so that rgw-admin is
found, also set path correctly if we're in a vstart env.

Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
2017-05-19 17:39:50 +02:00
Sage Weil
40fe1d181c qa/workunits/rgw/run-s3tests.sh: run s3-tests
This works out of the box with a vstart environment and

 RGW=1 ../src/vstart.sh -n -l
 PATH=bin:$PATH ../qa/workunits/rgw/run-s3tests.sh

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-05 15:20:18 -04:00
Yehuda Sadeh
00f21d8bb6 workunits/rgw: adjust radosgw-admin output parsing
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 09:31:33 -08:00
Yehuda Sadeh
b685baad30 workunits/rgw: set radosgw-admin location through env variable
add new RGW_ADMIN to be able to set call.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2015-01-29 09:31:33 -08:00
Warren Usui
19dafe1648 Remove sepia dependency (use fqdn)
Fixes: #10255
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-12-18 17:16:24 -08:00
Warren Usui
9e3b8609cb Fix s3 tests in the rgw workunit.
Make it possible to set RGW_PORT with ENV variable.

Fixes: 7500
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-04-28 13:56:29 -07:00
Warren Usui
2779e2ab03 Make sure s3_utilities are found.
Add FindBin code to rgw/s3 tests to include s3_utilites.pm properly.

Fixes: 7863
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-03-25 16:30:03 -07:00
Warren Usui
b2fcc6e195 Remove code duplication from s3 tests.
A new module, s3_utilities.pm has been created.  It contains
subroutines common to at least two of the workunits in this
directory. Code was moved here from the other pl files, and
some minor changes (paramers and scope changes) were needed.

Fixes: 7472
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-03-14 21:52:37 -07:00
Warren Usui
5b88856cd2 Use pgrep radosgw to determine if rados gateway is running.
Fixes: 7528
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-02-28 21:43:31 -08:00
Yehuda Sadeh
20641b6761 Merge pull request #1280 from ceph/wip-7374-wusui
Fix sub check() to not exit if rgw is running.

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2014-02-25 18:00:37 -08:00
Warren Usui
8020dcf779 Fixed get_status() to find client.radosgw fields inside of ps output.
Fixes: 7375
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-02-25 16:52:28 -08:00
Warren Usui
8200b8a025 Fix get_status() to find client.rados text inside of ps command results.
Added port (fixed value for right now in teuthology) to hostname.
Fixes: 7374
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2014-02-25 16:49:39 -08:00
tamil
5d59dd9cd6 script to test rgw multi part uploads using s3 interface
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2014-02-07 22:15:11 -08:00
tamil
0f2386a102 script to test rgw user quota functionality
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2014-02-07 15:34:05 -08:00
tamil
54caa0192b removing rgw_tests.sh
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2014-01-21 18:44:57 -08:00
tamil
8b8ede7a13 modified the port to 7280 in the script instead of the default 80
Signed-off-by: tamil <tamil@tamil-VirtualBox.(none)>
2014-01-21 17:50:00 -08:00
tamil
850b4f426f script for rgw bucket quota testing
Signed-off-by: tamil <tamil@tamil-VirtualBox.(none)>
2014-01-21 15:56:37 -08:00
tamil
fe136845a8 added execute permission to the script
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2013-12-18 14:32:35 -08:00
tamil
d9e33ea739 rgw workunit to test bucket quota
Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
2013-12-18 14:23:54 -08:00