]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
11 years agoautotools: s/ssse3/sse3/ typo 1569/head
Loic Dachary [Sun, 30 Mar 2014 15:57:22 +0000 (17:57 +0200)]
autotools: s/ssse3/sse3/ typo

Reported-by: Justin Erenkrantz <justin@erenkrantz.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoosd/ReplicatedPG: fix cache tier scrub again
Sage Weil [Sun, 30 Mar 2014 05:28:13 +0000 (22:28 -0700)]
osd/ReplicatedPG: fix cache tier scrub again

This condition was flipped from commit eb71924ea27e78d97bd45674ef5e6a7f
and the test case in c3292e48483d861148322590ea1f05afd28cc2d3 still didn't
catch it.  (It does now.)

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph_test_rados_api_tier: improve promote+scrub test
Sage Weil [Sun, 30 Mar 2014 05:27:04 +0000 (22:27 -0700)]
ceph_test_rados_api_tier: improve promote+scrub test

We need to have multiple clones with some different patterns of
missing-ness.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1520 from ceph/wip-multimds
Sage Weil [Sun, 30 Mar 2014 04:27:08 +0000 (21:27 -0700)]
Merge pull request #1520 from ceph/wip-multimds

Wip multimds

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1563 from dachary/wip-sse-i386
Sage Weil [Sun, 30 Mar 2014 00:28:36 +0000 (17:28 -0700)]
Merge pull request #1563 from dachary/wip-sse-i386

erasure-code: do not attempt to compile SSE4 on i386

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoceph_test_rados_api_tier: improve cache tier + scrub test 1565/head
Sage Weil [Sat, 29 Mar 2014 23:58:38 +0000 (16:58 -0700)]
ceph_test_rados_api_tier: improve cache tier + scrub test

Create lots of objects and make *some* of them be missing clones but not
all.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: tolerate trailing missing clones on cache tiers
Sage Weil [Sat, 29 Mar 2014 23:57:48 +0000 (16:57 -0700)]
osd/ReplicatedPG: tolerate trailing missing clones on cache tiers

I missed this case in eb71924ea27e78d97bd45674ef5e6a7fce30932f.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agojava/test: ceph.file.layout xattr is not there now
Sage Weil [Sat, 29 Mar 2014 21:25:47 +0000 (14:25 -0700)]
java/test: ceph.file.layout xattr is not there now

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoqa/workunits/fs/misc/layout_vxattrs: ceph.file.layout is not listed
Sage Weil [Sat, 29 Mar 2014 21:23:21 +0000 (14:23 -0700)]
qa/workunits/fs/misc/layout_vxattrs: ceph.file.layout is not listed

As of 08a3d6bd428c5e78dd4a10e6ee97540f66f9729c.  A similar change was made
in the kernel.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1548 from ceph/wip-7880
Sage Weil [Sat, 29 Mar 2014 16:20:07 +0000 (09:20 -0700)]
Merge pull request #1548 from ceph/wip-7880

mds: properly propagate dirty dirstat to auth inode

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agomds: find approximal bounds when adjusting subtree auth 1520/head
Yan, Zheng [Sat, 29 Mar 2014 02:36:12 +0000 (10:36 +0800)]
mds: find approximal bounds when adjusting subtree auth

When finishing exporting a subtree, the exporter MDS drops locks and
sends MExportDirFinish message to the importer MDS. The bounds of
subtree can get fragmented by third party before the importer MDS
receives the MExportDirFinish message. So the importer MDS can add
inaccurate bounds to the EImportFinish event.

The fix is find approximal bounds when finishing ambiguous imports.

11 years agoerasure-code: do not attempt to compile SSE4 on i386 1563/head
Loic Dachary [Sat, 29 Mar 2014 09:34:29 +0000 (10:34 +0100)]
erasure-code: do not attempt to compile SSE4 on i386

SSE4 are only not availabe on older CPUs. Although the compiler could
probably generate the code, there is no point in doing so. The SSE4.1,
SSE4.2 and PCLMUL cpu features are only tested if the target CPU is
AMD64 or x86_64.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomds: commit new dirfrag before splitting it
Yan, Zheng [Fri, 28 Mar 2014 17:53:15 +0000 (01:53 +0800)]
mds: commit new dirfrag before splitting it

Commit 6e013cd6 (properly set COMPLETE flag when merging dirfrags)
tries solving the issue that new dirfrag's COMPLETE flag gets lost
if MDS splits the new dirfrag, then the fragment operation gets
rolled back. It records the original dirfrag's COMPLETE flag when
EFragment PREPARE event is encountered. If the fragment operation
needs to rollback, The COMPLETE flag is journaled in corresponding
EFragment ROLLBACK event. This is problematic when the ROLLBACK
event and the "mkdir" event belong to different log segments. After
the log segment that contains the "mkdir" event is trimmed, the
dirfrag can not be considered as complete.

The fix is commit new dirfrag before splitting it. After dirfrag is
committed to object store, losing COMPLETE flag is not a big deal.

Signed-off-by: Yan, Zheng <zheng.z.yan@ntel.com>
11 years agorbd.cc: yes, cover formatted output as well. sigh.
Dan Mick [Sat, 29 Mar 2014 01:10:43 +0000 (18:10 -0700)]
rbd.cc: yes, cover formatted output as well.  sigh.

Fixes: #7577
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Dan Mick <dan.mick@inktank.com>
11 years agoMerge pull request #1562 from onlyjob/debian
Sage Weil [Sat, 29 Mar 2014 01:13:05 +0000 (18:13 -0700)]
Merge pull request #1562 from onlyjob/debian

init: fix OSD startup issue

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoRevert "ceph-conf: do not log"
Sage Weil [Sat, 29 Mar 2014 01:08:32 +0000 (18:08 -0700)]
Revert "ceph-conf: do not log"

This reverts commit acc31e75a3e7115c00f9980609948455e3b2d49e.

11 years agoRevert "ceph-conf: no admin_socket"
Sage Weil [Sat, 29 Mar 2014 01:08:09 +0000 (18:08 -0700)]
Revert "ceph-conf: no admin_socket"

This reverts commit 72715b235a0daee7ab8e5cd3ab6e415de2939df9.

This breaks the ceph cli, which uses ceph-conf --show-config-value ... to
get the admin socket.

11 years agoinit: fix OSD startup issue 1562/head
Dmitry Smirnov [Sat, 29 Mar 2014 00:59:24 +0000 (11:59 +1100)]
init: fix OSD startup issue

 On machines with MON and OSDs (on boot) OSDs started shortly after MON startup
 but MON needs time to become oprational so OSDs fail to start due to short
 timeout because they don't have enough time to establish communication with
 cluster. This is even more likely to happen when there are other monitors down
 which is not unusual when servers are rebooting after power failure.
 Increasing timeout significantly improves chances for successful OSD start.

Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
11 years agorbd.cc: tolerate lack of NUL-termination on block_name_prefix
Dan Mick [Wed, 26 Mar 2014 00:09:48 +0000 (17:09 -0700)]
rbd.cc: tolerate lack of NUL-termination on block_name_prefix

Fixes: #7577
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1552 from ceph/wip-7902
Sage Weil [Sat, 29 Mar 2014 00:19:23 +0000 (17:19 -0700)]
Merge pull request #1552 from ceph/wip-7902

osd/PG: fix choose_acting revert to up case

Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge pull request #1560 from ceph/wip-7903
Sage Weil [Fri, 28 Mar 2014 23:59:02 +0000 (16:59 -0700)]
Merge pull request #1560 from ceph/wip-7903

Wip 7903

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1558 from ceph/wip-7837
Sage Weil [Fri, 28 Mar 2014 23:01:20 +0000 (16:01 -0700)]
Merge pull request #1558 from ceph/wip-7837

ReplicatedPG: include pending_attrs when reseting attrs in WRITEFULL

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1557 from ceph/wip-7867
Josh Durgin [Fri, 28 Mar 2014 22:08:07 +0000 (15:08 -0700)]
Merge pull request #1557 from ceph/wip-7867

client: fix assert(!unclean) due to readahead vs close race

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoclient: pin Inode during readahead 1557/head
Sage Weil [Thu, 27 Mar 2014 04:52:00 +0000 (21:52 -0700)]
client: pin Inode during readahead

Make sure the Inode does not go away while a readahead is in progress.  In
particular:

 - read_async
   - start a readahead
   - get actual read from cache, return
 - close/release
   - call ObjectCacher::release_set() and get unclean > 0, assert

Fixes: #7867
Backport: emperor, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosdc/ObjectCacher: call read completion even when no target buffer
Sage Weil [Fri, 28 Mar 2014 19:34:07 +0000 (12:34 -0700)]
osdc/ObjectCacher: call read completion even when no target buffer

If we do no assemble a target bl, we still want to return a valid return
code with the number of bytes read-ahead so that the C_RetryRead completion
will see this as a finish and call the caller's provided Context.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1553 from ceph/wip-7874
Sage Weil [Fri, 28 Mar 2014 21:07:50 +0000 (14:07 -0700)]
Merge pull request #1553 from ceph/wip-7874

ReplicatedPG: disable clone subsets for cache pools

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1554 from ceph/wip-7828
Sage Weil [Fri, 28 Mar 2014 21:06:24 +0000 (14:06 -0700)]
Merge pull request #1554 from ceph/wip-7828

ReplicatedPG:: s/_delete_head/_delete_oid, adjust head_exists iff is_hea...

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1555 from ceph/wip-7835
Sage Weil [Fri, 28 Mar 2014 21:05:41 +0000 (14:05 -0700)]
Merge pull request #1555 from ceph/wip-7835

ReplicatedPG::make_writeable: fill in ssc on clone

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agorgw: move max_chunk_size initialization 1560/head
Yehuda Sadeh [Fri, 28 Mar 2014 21:05:00 +0000 (14:05 -0700)]
rgw: move max_chunk_size initialization

RGWRados::initialize() is not called when doing
RGWRados::get_raw_storage_provider(). This was the culprit for issue

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: only look at prefetched data if we actually prefetched
Yehuda Sadeh [Fri, 28 Mar 2014 20:25:47 +0000 (13:25 -0700)]
rgw: only look at prefetched data if we actually prefetched

Fixes: #7903
Since we didn't prefetch data then we couldn't rely on the data to
actually exist there. In that case just move on and read the object.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoosd/PG: fix choose_acting revert to up case 1552/head
Sage Weil [Fri, 28 Mar 2014 20:10:06 +0000 (13:10 -0700)]
osd/PG: fix choose_acting revert to up case

If we decide to revert back to up, we need to

1- return false, so that we go into the NeedActingChange state, and
2- actually ask for that change.

It's too fugly to try to jump down to the existing queue_want_pg_temp
call 100+ lines down in this function, so just do it here.  We already
know that we are requesting to clear the pg_temp.

Fixes: #7902
Backport: emperor, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomds: don't trim non-auth root inode/dirfrag
Yan, Zheng [Thu, 27 Mar 2014 21:42:34 +0000 (05:42 +0800)]
mds: don't trim non-auth root inode/dirfrag

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: include authority of the overwrited inode in rename witnesses
Yan, Zheng [Wed, 26 Mar 2014 15:03:56 +0000 (23:03 +0800)]
mds: include authority of the overwrited inode in rename witnesses

Rename operation needs to adjust the overwrited inode's link count.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: don't increase nlink when rollback stray reintegration
Yan, Zheng [Wed, 26 Mar 2014 06:28:26 +0000 (14:28 +0800)]
mds: don't increase nlink when rollback stray reintegration

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: allow sending MMDSFindIno to MDS who is in clientreplay state
Yan, Zheng [Wed, 26 Mar 2014 10:55:19 +0000 (18:55 +0800)]
mds: allow sending MMDSFindIno to MDS who is in clientreplay state

Because MDCache::kick_find_ino_peers() is called when a MDS enters
clientreplay state.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: fix negative dirstat assertion
Yan, Zheng [Wed, 26 Mar 2014 02:15:15 +0000 (10:15 +0800)]
mds: fix negative dirstat assertion

When splitting dirfrag, delta dirstat is always added to the first new
dirfrag. Before the delta dirstat is propagated to inode, unlinking file
from the rest dirfrags can cause nagtive inode dirstat.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: fix stack overflow caused by nested dispatch
Yan, Zheng [Wed, 26 Mar 2014 01:51:23 +0000 (09:51 +0800)]
mds: fix stack overflow caused by nested dispatch

Commit bc3325b37 fixes a stack overflow bug happens when replaying
client requests. Similar stack overflow can happens when processing
finished contexts.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: don't clear scatter dirty when cache rejoin ack is received
Yan, Zheng [Mon, 24 Mar 2014 08:47:04 +0000 (16:47 +0800)]
mds: don't clear scatter dirty when cache rejoin ack is received

The auth mds has received dirty scatterlock state. But it hasn't
journaled the dirty state yet. The log segment that marked the
scatterlock dirty need to be preserved. Therefore, we can't clear
the dirty flag of scatterlock.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: explicitly set nonce for imported dirfrag
Yan, Zheng [Sun, 23 Mar 2014 10:18:19 +0000 (18:18 +0800)]
mds: explicitly set nonce for imported dirfrag

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: skip non-opened session when flushing client sessions
Yan, Zheng [Sun, 23 Mar 2014 05:32:00 +0000 (13:32 +0800)]
mds: skip non-opened session when flushing client sessions

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: fix null pointer dereference in MDCache::rejoin_send_rejoins()
Yan, Zheng [Sun, 23 Mar 2014 00:02:08 +0000 (08:02 +0800)]
mds: fix null pointer dereference in MDCache::rejoin_send_rejoins()

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: journal EFragment::OP_COMMIT before drop locks
Yan, Zheng [Sat, 22 Mar 2014 12:26:34 +0000 (20:26 +0800)]
mds: journal EFragment::OP_COMMIT before drop locks

Dropping locks can dispatch other requests. These request can submit
log entry.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: fix CInode::get_approx_dirfrag
Yan, Zheng [Fri, 21 Mar 2014 23:38:22 +0000 (07:38 +0800)]
mds: fix CInode::get_approx_dirfrag

return NULL if there is no opened dirfrag

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: don't trim ambiguous import dirfrags
Yan, Zheng [Sun, 23 Mar 2014 12:07:35 +0000 (20:07 +0800)]
mds: don't trim ambiguous import dirfrags

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: trim empty non-auth dirfrags
Yan, Zheng [Sun, 23 Mar 2014 09:47:05 +0000 (17:47 +0800)]
mds: trim empty non-auth dirfrags

Fragmenting a non-auth dirfrag results several smaller dirfrags. Some
of the resulting dirfrags can be empty, which are not used to connected
to auth subtree.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: trim non-auth inode with remote parents
Yan, Zheng [Fri, 21 Mar 2014 23:31:07 +0000 (07:31 +0800)]
mds: trim non-auth inode with remote parents

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: properly journal fragment rollback
Yan, Zheng [Fri, 21 Mar 2014 15:16:00 +0000 (23:16 +0800)]
mds: properly journal fragment rollback

If dirfrags are subtree roots, mark the dirfragtreelock as scattered
dirty, otherwise journal the dirfragtree change.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: fix CDir::WAIT_ANY_MASK
Yan, Zheng [Fri, 21 Mar 2014 01:50:41 +0000 (09:50 +0800)]
mds: fix CDir::WAIT_ANY_MASK

make sure CDir::WAIT_ANY_MASK include MDSCacheObject::WAIT_UNFREEZE

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: avoid journaling non-auth opened inode
Yan, Zheng [Thu, 20 Mar 2014 05:05:31 +0000 (13:05 +0800)]
mds: avoid journaling non-auth opened inode

Exporting inode has AUTH bit set while EExport event is being
journaled.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: handle race between cache rejoin and fragmenting
Yan, Zheng [Thu, 20 Mar 2014 03:30:46 +0000 (11:30 +0800)]
mds: handle race between cache rejoin and fragmenting

MDCache::handle_cache_expire() ignores mismatched dirfrags. this is
OK during normal operation because MDS doesn't trim replica inode
whose dirfrags are likely being fragmented (see commit 22535340).

During recovery, the recovering MDS can reveive survivor MDS' cache
expire message before it sends cache rejoin acks. In this case,
there still can be mismatched dirfrags, but nothing prevents the
survivor MDS to trim inode of these mismatched dirfrags. So there
can be unconnected dirfrags when the recovering MDS sends cache
rejoin acks.

The fix is, when mismatched dirfrag is encountered during recovery,
check if inode of the dirfrag is still replicated to the sender MDS.
If the inode is not replicated, remove the sender MDS from replica
maps of all child dirfrags.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agomds: handle interaction between slave rollback and fragmenting
Yan, Zheng [Wed, 19 Mar 2014 11:56:26 +0000 (19:56 +0800)]
mds: handle interaction between slave rollback and fragmenting

For slave rename and rmdir events, the MDS needs to preserve non-auth
dirfrag where the renamed inode originally lives in until slave commit
event is encountered. Current method to handle this is use MDCache::
uncommitted_slave_rename_olddir to track any non-auth dirfrag that
need to be preserved. This method does not works well if any preserved
dirfrag gets fragmented by log event (such as ESubtreeMap) between the
slave prepare event and the slave commit event.

The fix is tracking inode of dirfrag instead of tracking dirfrag that
need to preserved directly.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoMerge pull request #1549 from dachary/wip-doc
Sage Weil [Fri, 28 Mar 2014 15:23:46 +0000 (08:23 -0700)]
Merge pull request #1549 from dachary/wip-doc

doc: fix typos in tiering dev doc

11 years agodoc: fix typos in tiering dev doc 1549/head
Loic Dachary [Fri, 28 Mar 2014 13:01:53 +0000 (14:01 +0100)]
doc: fix typos in tiering dev doc

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomds: properly propagate dirty dirstat to auth inode 1548/head
Yan, Zheng [Fri, 28 Mar 2014 04:57:29 +0000 (12:57 +0800)]
mds: properly propagate dirty dirstat to auth inode

Propagate dirty dirstat to freezing auth inode if the inode is
already auth pinned by the Mutation. Otherwiese the dirstat can
be propagated to inode after client changes inode's mtime.

Fixes: #7880
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
11 years agoMerge pull request #1547 from ceph/wip-cache-scrub
Samuel Just [Fri, 28 Mar 2014 00:14:34 +0000 (17:14 -0700)]
Merge pull request #1547 from ceph/wip-cache-scrub

osd: improve scrub checks on clones; tolerate missing clones on cache pools

Fixes: #7885
Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge branch 'wip-7875'
Sage Weil [Thu, 27 Mar 2014 23:39:36 +0000 (16:39 -0700)]
Merge branch 'wip-7875'

Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agomon/OSDMonitor: require OSD_CACHEPOOL feature before using tiering features
Sage Weil [Thu, 27 Mar 2014 23:39:01 +0000 (16:39 -0700)]
mon/OSDMonitor: require OSD_CACHEPOOL feature before using tiering features

The OSDs need to support this feature before we allow users to turn it
on.  This is similar to what the erasure pool support does.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agomon/OSDMonitor: prevent setting hit_set unless all OSDs support it
Sage Weil [Thu, 27 Mar 2014 23:38:46 +0000 (16:38 -0700)]
mon/OSDMonitor: prevent setting hit_set unless all OSDs support it

We are using OSD_CACHEPOOL as a proxy for the support for the tiering
OSDMap infrastructure.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: tolerate missing clones in cache pools 1547/head
Sage Weil [Thu, 27 Mar 2014 22:12:25 +0000 (15:12 -0700)]
osd/ReplicatedPG: tolerate missing clones in cache pools

A few cases:

- As we are working through the list, if we see a clone that is lower than
  the next one we were expecting, we should be able to skip them.
- If we see a head, we can skip all of the rest of the clones.
- If we get to the end and next_clone was set, we can ignore it.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: improve clone vs head checking
Sage Weil [Thu, 27 Mar 2014 20:51:15 +0000 (13:51 -0700)]
osd/ReplicatedPG: improve clone vs head checking

- notice when we are missing a clone (that isn't at the end of the list)
- notice when we are missing a clone on the last object in the scrub map
- do not assert when we are missing a clone

There is still more we could do to improve this (like noticing one missing
clone but still checking the others), but we'll leave that aside for just
a moment...

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd/ReplicatedPG: do not assert on clone_size mismatch
Sage Weil [Thu, 27 Mar 2014 20:37:23 +0000 (13:37 -0700)]
osd/ReplicatedPG: do not assert on clone_size mismatch

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph_test_rados_api_tier: scrub while cache tier is missing clones
Sage Weil [Thu, 27 Mar 2014 20:28:10 +0000 (13:28 -0700)]
ceph_test_rados_api_tier: scrub while cache tier is missing clones

Trigger a scrub to verify that we can handle a cache tier that is missing
some clones.  We rely on the test harness to notice the error, and we do
not confirm that the scrub happened.  In practice this is plenty of time,
however.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1546 from ceph/wip-fix-pools
Dan Mick [Thu, 27 Mar 2014 20:01:05 +0000 (13:01 -0700)]
Merge pull request #1546 from ceph/wip-fix-pools

fix pool ops test

11 years agoqa/workunits/mon/pool_ops.sh: fix test 1546/head
Sage Weil [Thu, 27 Mar 2014 19:57:40 +0000 (12:57 -0700)]
qa/workunits/mon/pool_ops.sh: fix test

The pool create command doesn't take k/v pairs any more.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoqa/workunits/mon/pool_ops.sh: use expect_false
Sage Weil [Thu, 27 Mar 2014 19:44:31 +0000 (12:44 -0700)]
qa/workunits/mon/pool_ops.sh: use expect_false

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1545 from ceph/wip-7849-b
Josh Durgin [Thu, 27 Mar 2014 19:35:50 +0000 (12:35 -0700)]
Merge pull request #1545 from ceph/wip-7849-b

ceph-conf: do not log

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoceph-conf: no admin_socket 1545/head
Sage Weil [Thu, 27 Mar 2014 19:30:39 +0000 (12:30 -0700)]
ceph-conf: no admin_socket

We don't need to worry about pidfile because that is done by the fork
functions, which ceph-conf doesn't call.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1522 from themgt/patch-1
Josh Durgin [Thu, 27 Mar 2014 19:03:25 +0000 (12:03 -0700)]
Merge pull request #1522 from themgt/patch-1

document adding dev key for custom Apache/FCGI install

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agojerasure: fix up .gitignore
Sage Weil [Thu, 27 Mar 2014 18:41:57 +0000 (11:41 -0700)]
jerasure: fix up .gitignore

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoceph-conf: do not log
Sage Weil [Thu, 27 Mar 2014 18:36:42 +0000 (11:36 -0700)]
ceph-conf: do not log

If you are querying the conf for an osd and it has a log configured, we
should not generate any log activity.

This isn't super pretty, but it is much less intrusive that wiring a 'do
not log' flag down into CephContext and a zillion other places.

Fixes: #7849
Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1542 from onlyjob/debian
Josh Durgin [Thu, 27 Mar 2014 18:33:58 +0000 (11:33 -0700)]
Merge pull request #1542 from onlyjob/debian

logrotate: do not rotate empty logs (2nd logrotate file)

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge pull request #1544 from ceph/wip-7876
Sage Weil [Thu, 27 Mar 2014 18:15:27 +0000 (11:15 -0700)]
Merge pull request #1544 from ceph/wip-7876

rgw: use s->content_length instead of s->length

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1534 from dachary/wip-sse-fix
Sage Weil [Thu, 27 Mar 2014 18:14:30 +0000 (11:14 -0700)]
Merge pull request #1534 from dachary/wip-sse-fix

erasure code sse optimized jerasure plugin

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agorgw: use s->content_length instead of s->length 1544/head
Yehuda Sadeh [Thu, 27 Mar 2014 17:53:25 +0000 (10:53 -0700)]
rgw: use s->content_length instead of s->length

Fixes: #7876
Need to use the actual content length, not the pointer to the string.
This was probably working because there's correlation to when
content_length > 0 to whether s->length is not null.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1540 from ceph/wip-7860
Sage Weil [Thu, 27 Mar 2014 17:21:10 +0000 (10:21 -0700)]
Merge pull request #1540 from ceph/wip-7860

test: Wait for tier removal before next test starts

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agologrotate: do not rotate empty logs (2nd logrotate file) 1542/head
Dmitry Smirnov [Thu, 27 Mar 2014 16:42:45 +0000 (03:42 +1100)]
logrotate: do not rotate empty logs (2nd logrotate file)

Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
11 years agoMerge pull request #1541 from onlyjob/debian
Sage Weil [Thu, 27 Mar 2014 14:02:46 +0000 (07:02 -0700)]
Merge pull request #1541 from onlyjob/debian

logrotate improvement: do not rotate empty logs

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoerasure-code: test encode/decode of SSE optimized jerasure plugins 1534/head
Loic Dachary [Thu, 27 Mar 2014 10:07:11 +0000 (11:07 +0100)]
erasure-code: test encode/decode of SSE optimized jerasure plugins

If the machine running make check has the required CPU features
available, load the SSE optimized plugin and check that it can encode /
decode a simple payload. If the CPU features are not available, only
test the generic plugin and display an informative message about the
tests that were skipped.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoerasure-code: test jerasure SSE optimized plugins selection
Loic Dachary [Thu, 27 Mar 2014 10:06:24 +0000 (11:06 +0100)]
erasure-code: test jerasure SSE optimized plugins selection

Test the selection of the plugin depending on the CPU features. The
prefix of the plugin is "jerasure" by default (jerasure_generic,
jerasure_sse3, jerasure_sse4) and can be modified with the
"jerasure-name" parameter. A test plugin is created for each
variant (test_jerasure_generic, test_jerasure_sse3, test_jerasure_sse4).
The flags set by ceph_probe are modified by the test to check if the
expected plugin suffix is appended.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoosd: increase osd verbosity during functional tests
Loic Dachary [Wed, 26 Mar 2014 22:57:28 +0000 (23:57 +0100)]
osd: increase osd verbosity during functional tests

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoerasure-code: SSE optimized jerasure plugins
Loic Dachary [Wed, 26 Mar 2014 10:16:01 +0000 (11:16 +0100)]
erasure-code: SSE optimized jerasure plugins

The jerasure plugin is compiled with three sets of flags:

* jerasure_generic with no SSE optimization
* jerasure_sse3 with SSE2, SSE3 and SSSE3 optimizations
* jerasure_sse4 with SSE2, SSE3, SSSE3, SSE41, SSE42 and PCLMUL optimizations

The jerasure plugin loads the appropriate plugin depending on the CPU
features detected at runtime.

http://tracker.ceph.com/issues/7826 fixes #7826

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoarch: add SSE3, SSSE3, SSSE41 and PCLMUL intel features
Loic Dachary [Wed, 26 Mar 2014 10:14:11 +0000 (11:14 +0100)]
arch: add SSE3, SSSE3, SSSE41 and PCLMUL intel features

And add a note about valgrind forcing a fake cpuid.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoautotools: intel cpu features detection
Loic Dachary [Wed, 26 Mar 2014 10:11:48 +0000 (11:11 +0100)]
autotools: intel cpu features detection

Rename SIMD to INTEL for clarity.

Instead of agregating all flags in INTEL_FLAGS, create individual flags
for each feature (INTEL_SSE2_FLAGS etc.) for finer control in the
makefiles.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoerasure-code: gf-complete / jerasure modules updates
Loic Dachary [Wed, 26 Mar 2014 10:09:43 +0000 (11:09 +0100)]
erasure-code: gf-complete / jerasure modules updates

To avoid confusion, the jerasure v1 branch that contains commits pending
review upstream is named v2-ceph and the gf-complete v2 branch is named
v2-ceph.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoerasure-code: allow loading a plugin from factory()
Loic Dachary [Sat, 25 Jan 2014 21:35:34 +0000 (22:35 +0100)]
erasure-code: allow loading a plugin from factory()

The Mutex scope is restricted to only protect the load() method and not
the factory() method. This allows a plugin to load another plugin from
within the factory() method.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agoMerge remote-tracking branch 'gh/firefly'
Sage Weil [Thu, 27 Mar 2014 04:44:45 +0000 (21:44 -0700)]
Merge remote-tracking branch 'gh/firefly'

11 years agologrotate improvement: do not rotate empty logs 1541/head
Dmitry Smirnov [Thu, 27 Mar 2014 01:12:19 +0000 (12:12 +1100)]
logrotate improvement: do not rotate empty logs

Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
11 years agoosd: do not make pg_pool_t incompat when hit_sets are enabled
Sage Weil [Thu, 27 Mar 2014 00:47:06 +0000 (17:47 -0700)]
osd: do not make pg_pool_t incompat when hit_sets are enabled

If we enable HitSet tracking, the OSD needs to know this, but clients do
not care.  Setting the compat version is too heavyweight as it locks out
older kernels (*any* currents, currently) who are unaffected by the new
fields.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoReplicatedPG: include pending_attrs when reseting attrs in WRITEFULL 1558/head
Samuel Just [Thu, 27 Mar 2014 00:43:19 +0000 (17:43 -0700)]
ReplicatedPG: include pending_attrs when reseting attrs in WRITEFULL

This is necessary for ops like:

2014-03-25 11:48:20.354168 7f0df0ff9700  1 -- 192.168.106.226:0/1016231
--> 192.168.106.226:6814/13647 -- osd_op(client.4198.0:153
default.4198.1_foo [create 0~0,delete,setxattr user.rgw.idtag
(15),writefull 0~3,setxattr user.rgw.manifest (407),setxattr
user.rgw.acl (133),setxattr user.rgw.content_type (25),setxattr
user.rgw.etag (33)] 3.ee3a09ea ondisk+write e49) v4 -- ?+0 0xd09830 con
0xcd74d0

Fixes: #7837
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: disable clone subsets for cache pools 1553/head
Samuel Just [Thu, 27 Mar 2014 00:24:38 +0000 (17:24 -0700)]
ReplicatedPG: disable clone subsets for cache pools

To do this properly, we need to take appropriate read
locks on clone sources and handle evicted clones.

Fixes: #7874
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoMerge pull request #1537 from ceph/wip-7871
Sage Weil [Thu, 27 Mar 2014 00:16:08 +0000 (17:16 -0700)]
Merge pull request #1537 from ceph/wip-7871

RadosModel: allow --no-omap to be specified seperately from --ec-pool

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1536 from ceph/wip-7870
Sage Weil [Thu, 27 Mar 2014 00:14:07 +0000 (17:14 -0700)]
Merge pull request #1536 from ceph/wip-7870

ReplicatedPG::do_osd_ops: only return ENOTSUP on OMAP write ops

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agotest: Wait for tier removal before next test starts 1540/head
David Zafman [Wed, 26 Mar 2014 23:04:40 +0000 (16:04 -0700)]
test: Wait for tier removal before next test starts

Fixes: #7860
Signed-off-by: David Zafman <david.zafman@inktank.com>
11 years agoReplicatedPG:: s/_delete_head/_delete_oid, adjust head_exists iff is_head 1554/head
Samuel Just [Wed, 26 Mar 2014 21:08:23 +0000 (14:08 -0700)]
ReplicatedPG:: s/_delete_head/_delete_oid, adjust head_exists iff is_head

Fixes: #7872
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agorgw: configurable chunk size
Yehuda Sadeh [Tue, 4 Mar 2014 01:07:03 +0000 (17:07 -0800)]
rgw: configurable chunk size

Fixes: #7589
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1535 from ceph/wip-7823
Samuel Just [Wed, 26 Mar 2014 18:48:07 +0000 (11:48 -0700)]
Merge pull request #1535 from ceph/wip-7823

osd: trim copy-get backend read to object size

Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agoRadosModel: allow --no-omap to be specified seperately from --ec-pool 1537/head
Samuel Just [Mon, 24 Mar 2014 18:37:44 +0000 (11:37 -0700)]
RadosModel: allow --no-omap to be specified seperately from --ec-pool

Fixes: #7871
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::do_osd_ops: only return ENOTSUP on OMAP write ops 1536/head
Samuel Just [Mon, 24 Mar 2014 19:08:25 +0000 (12:08 -0700)]
ReplicatedPG::do_osd_ops: only return ENOTSUP on OMAP write ops

This way, redirected omap reads will work correctly by returning
empty maps and buffers.

Fixes: #7870
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::make_writeable: fill in ssc on clone 1555/head
Samuel Just [Mon, 24 Mar 2014 22:38:11 +0000 (15:38 -0700)]
ReplicatedPG::make_writeable: fill in ssc on clone

ssc should always be filled in on live ObjectContexts.

Fixes: #7835
Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoosd: trim copy-get backend read to object size 1535/head
Sage Weil [Sat, 22 Mar 2014 22:39:26 +0000 (15:39 -0700)]
osd: trim copy-get backend read to object size

We are passing a big number to the backend to read and it is trimming it
to the stripe boundary, and then setting the cursor at a slightly smaller
offset bound by oi.size.  This is invalid, and will trigger an assert in
the _write_copy_chunk code:

     0> 2014-03-21 15:12:23.761509 7f8dd2324700 -1 osd/ReplicatedPG.cc: In function 'void ReplicatedPG::_write_copy_chunk(ReplicatedPG::CopyOpRef, PGBackend::PGTransaction*)' thread 7f8dd2324700 time 2014-03-21 15:12:23.758866
osd/ReplicatedPG.cc: 5554: FAILED assert(cop->data.length() + cop->temp_cursor.data_offset == cop->cursor.data_offset)

To fix this, trim the buffer to the correct length in the completion
context.

Fixes: #7823
Signed-off-by: Sage Weil <sage@inktank.com>