Commit Graph

91142 Commits

Author SHA1 Message Date
Casey Bodley
a7eab94ba8 rgw: RGWObjectCtxImpl::invalidate takes const ref
also removes the default implementation, which is duplicated in the
specialization for rgw_obj

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
dd472ab0cf rgw: rgw_file uses AtomicObjectProcessor
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
47b1754e47 rgw: PutObj::execute() uses new ObjectProcessors
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
d6b28cdb39 rgw: compression filter uses rgw::putobj::Pipe
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
70c8c8110c rgw: encryption filter uses rgw::putobj::Pipe
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
d0c9798eb5 rgw: temporarily disable putobj filters
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
6907e85d9d rgw: read multipart params in RGWPutObj_ObjStore_S3::get_params
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
f6a6aedab5 rgw: PutObj avoids some static_casts to RGWObjectCtx
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
572d47bfdb rgw: remove gotos from PutObj
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
6d94a5d204 rgw: PutObj uses unique_ptr to manage PutObjProcessor
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
6b6002a802 rgw: PutObj uses scope_guard to update perf counter on return
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
5de7718f45 rgw: add rgw::putobj::MultipartObjectProcessor
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
9ff79e39dc rgw: add rgw::putobj::AtomicObjectProcessor
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
5c0ee28731 rgw: add const to some RGWBucketInfo helpers
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
65a1340c58 rgw: add rgw::putobj::ManifestObjectProcessor
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
93a0024982 rgw: add const to some manifest generator functions
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
53a22e8862 rgw: add rgw::putobj::RadosWriter adapter
implements the DataProcessor interface by writing its buffers with Aio,
and tracks the set of successful writes so they can be deleted on
failure/cancelation

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-16 11:06:14 -04:00
Casey Bodley
2c71d4a9ef rgw: add rgw::putobj::HeadObjectProcessor
a striped object processor with special handling for the first chunk of
data

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:06:26 -04:00
Casey Bodley
492dbe3f6b rgw: add rgw::putobj::ObjectProcessor
an abstract interface that deals with logical objects and their update
semantics

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:05:12 -04:00
Casey Bodley
9e1292e86e rgw: add rgw::putobj::AioThrottle
implement the throttling algorithm in terms of rgw::putobj::Aio. this
differs from RGWPutObjProcessor_Aio in that it doesn't wait on the
first pending write to complete before making process on later ones

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:05:12 -04:00
Casey Bodley
dfb16c3fe9 rgw: add rgw::putobj::Aio interface
the Aio operations return a ResultList of previous completions that can
be inspected for the error code and object name (the latter is needed to
track created objects that need to be removed on cancelation)

returning results in a list avoids the extra locking that may be
required to poll/wait for a single completion at a time

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:05:12 -04:00
Casey Bodley
4ba0348611 rgw: add rgw::putobj::StripeProcessor
a pipe that stripes data over multiple objects according to an
abstract StripeGenerator

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:05:06 -04:00
Casey Bodley
594dc4cceb rgw: add rgw::putobj::ChunkProcessor and test
ChunkProcessor turns the input stream into a series of discrete chunks
before forwarding to the wrapped DataProcessor

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:01:36 -04:00
Casey Bodley
504b7d9c21 rgw: add rgw::putobj::DataProcessor interface and Pipe
adds an abstract DataProcessor interface (analogous to
RGWPutObjDataProcessor) that allows processors to be composed into
pipelines, and a Pipe class to support the existing filters for
compression and encryption

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2018-10-15 17:00:08 -04:00
Sage Weil
f22e55ad7a Merge PR #24473 into master
* refs/pull/24473/head:
	common: drop get_contiguous() from ceph::bufferlist.

Reviewed-by: Sage Weil <sage@redhat.com>
2018-10-15 08:42:50 -05:00
Sage Weil
36c3bce219 Merge PR #24493 into master
* refs/pull/24493/head:
	mgr/DaemonState: clean up device life_expectancy values
	mgr/devicehealth: warn based on life_expectancy_max
	mgr/devicehealth: warn on failing devices at 6 weeks

Reviewed-by: John Spray <john.spray@redhat.com>
2018-10-15 08:36:18 -05:00
Lenz Grimmer
66db97eb6b
Merge pull request #24523 from s0nea/wip-dashboard-configs-table-cleanup
mgr/dashboard: config options table cleanup

Reviewed-by: Ricardo Marques <rimarques@suse.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
2018-10-15 15:14:52 +02:00
Tatjana Dehler
f4b2f4d91d mgr/dashboard: config options table cleanup
Remove columns 'tags', 'enum_values', 'long_desc', 'type', 'flags',
'daemon_default', 'desc', 'level', 'can_update_at_runtime', 'services',
'max', 'see_also', 'min' and 'source' from table view and add them to
the details.
The table contains 'name', 'value' and 'default' only.

Fixes: http://tracker.ceph.com/issues/34533

Signed-off-by: Tatjana Dehler <tdehler@suse.com>
2018-10-15 11:36:43 +02:00
John Spray
cf31e6f8a4
Merge pull request #24560 from sebastian-philipp/orchestrator-fix-rook-cluster-in-name
mgr/rook: Fix Rook cluster name detection

Reviewed-by: John Spray <john.spray@redhat.com>
2018-10-15 09:23:39 +01:00
Sage Weil
7ac6ab4b2f Merge PR #24494 into master
* refs/pull/24494/head:
	ceph-kvstore-tool: rename repair -> destructive-repair

Reviewed-by: Neha Ojha <nojha@redhat.com>
2018-10-14 13:11:11 -05:00
Sage Weil
59ab2aa6ab Merge PR #24146 into master
* refs/pull/24146/head:
	mgr/orchestrator: Fix Python 3 issues

Reviewed-by: John Spray <john.spray@redhat.com>
2018-10-14 11:42:17 -05:00
Sage Weil
8cc6369511 ceph-kvstore-tool: rename repair -> destructive-repair
This is shown to corrupt otherwise healthy rocksdb databases.  Rename to
make it clear that it is generally not safe to run and shoud only be used
as a last resort.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-10-14 11:41:24 -05:00
Sage Weil
b5ba057240 Merge PR #24247 into master
* refs/pull/24247/head:
	PendingReleaseNotes: add note about increased mon memory footprint
	doc/start/hardware-recommendations: refresh recommendations for RAM
	rocksdb: increase default cache size to 512 MB
	mon: mon_osd_cache_size = 500 (from 10)

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2018-10-14 11:40:15 -05:00
Sage Weil
b43dd18fc0 Merge PR #24495 into master
* refs/pull/24495/head:
	kv: apply the move semantics in KeyValueDB::get().

Reviewed-by: Sage Weil <sage@redhat.com>
2018-10-14 08:06:18 -05:00
Sage Weil
bc52bc2f6d Merge PR #24535 into master
* refs/pull/24535/head:
	mon: consider AUTH_NONE clients which "authenticate" to be finished

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2018-10-14 08:05:10 -05:00
Mykola Golub
1d92788f71
Merge pull request #24563 from dillaman/wip-36410
test: move OpenStack devstack test to rocky release

Reviewed-by: Mykola Golub <mgolub@suse.com>
2018-10-14 10:40:05 +03:00
Neha Ojha
05fea962f1
Merge pull request #24564 from neha-ojha/wip-21931
osd: do not overestimate the size of the object for reads with trimtrunc

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed By: Xie Xingguo <xie.xingguo@zte.com.cn>
2018-10-12 19:15:39 -07:00
Sage Weil
9db328f2ab Merge PR #24204 into master
* refs/pull/24204/head:
	qa/suites/rgw/tempest: valgrind on centos only

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Yuri Weinstein <yweins@redhat.com>
2018-10-12 16:29:44 -05:00
Sage Weil
b29e4470ac Merge PR #24249 into master
* refs/pull/24249/head:
	doc/rados/troubleshooting-mon: update mondb recovery script

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-10-12 16:29:28 -05:00
Sage Weil
b624cea60a Merge PR #24296 into master
* refs/pull/24296/head:
	osd: Handle is_stopping() by discarding item so it doesn't loop
	osd: Simplify _process() logic recently added

Reviewed-by: Jianpeng Ma <jianpeng.ma@intel.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2018-10-12 16:16:39 -05:00
Sage Weil
ec3a825db2 Merge PR #24131 into master
* refs/pull/24131/head:
	tests, common: introduce bufferlist::apennd benchmark.
	test, common: add BufferListIterator.BenchDeref benchmark.

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2018-10-12 16:14:55 -05:00
Sage Weil
4aba9cc02f Merge PR #24270 into master
* refs/pull/24270/head:
	osd: make 'cache drop' command require 'executable' permission
	osd: rename 'drop cache' and 'get cache stats' to group them by component
	doc: add documentation for 'drop cache' and 'get cache stats'
	osd: don't print osdmap cache stats in 'get cache stats' command
	osd: do not clear osdmap cache on 'drop cache' command
	osd: offload dumping cache stats to the object store
	osd: pass a stream to flush_cache commands for more verbosity
	osd: implement flush_cache() method for Filestore
	osd: add clear_cache and get_cache_object_count commands

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2018-10-12 16:14:37 -05:00
Sage Weil
07e74f803f Merge PR #24312 into master
* refs/pull/24312/head:
	osd: kill the std::stringstream in ReplicatedBackend::do_repop_reply.
	osd: bump-up the dout level in PGLog::write_log_and_missing.

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2018-10-12 16:14:19 -05:00
Sage Weil
4ae369119d Merge PR #24520 into master
* refs/pull/24520/head:
	install-deps.sh: dashboard frontend needs git

Reviewed-by: Ricardo Dias <rdias@suse.com>
Reviewed-by: John Spray <john.spray@redhat.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
2018-10-12 16:13:57 -05:00
Sage Weil
90c342b521 Merge PR #24521 into master
* refs/pull/24521/head:
	ceph.in: reinstate interactive mode output

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
2018-10-12 16:13:37 -05:00
Neha Ojha
76c57810ee osd/PrimaryLogPG.cc: reassign size only when object size > truncate_size
Before setting size equal to op.extent.truncate_size, we need to check
if the size of the object is greater than the truncate_size. We do not
need to set size to op.extent.truncate_size, in the case where the size of
the object is less than op.extent.truncate_size.

Without this change, we were always setting size =
op.extent.truncate_size, when (seq < op.extent.truncate_seq) and
(op.extent.offset + op.extent.length > op.extent.truncate_size), were both
true. This ended up in:

1. overestimating the size of the object
2. not considering the correct size of the object, for
   the later checks, which calculate op.extent.length for the read ops
3. causing crashes when trying to read more data than what was present

Fixes: http://tracker.ceph.com/issues/21931
Fixes: http://tracker.ceph.com/issues/22330

Signed-off-by: Neha Ojha <nojha@redhat.com>
2018-10-12 12:49:07 -07:00
Neha Ojha
07f7bd6942 osd: print offset and length to track trimtrunc
Signed-off-by: Neha Ojha <nojha@redhat.com>
2018-10-12 12:47:39 -07:00
Matt Benjamin
9e58faf4a5
Merge pull request #24341 from joke-lee/WIP_FIX_RGWPOSTOBJ_VERSIONING
rgw: list bucket can not show the object uploaded by RGWPostObj when enable bucket versioning
2018-10-12 13:02:33 -04:00
Jason Dillaman
1e3dc02604 qa/tasks/workunit: use suite branch/SHA1 when cloning workunits
Right now it's using the Ceph branch/SHA1 but it's using the suite
Git URL.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2018-10-12 12:41:58 -04:00
John Spray
ea75b20ce9
Merge branch 'master' into orchestrator-fix-rook-cluster-in-name 2018-10-12 16:56:51 +01:00