]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
9 years agoos/bluestore: use small encoding for bluefs extent and fnode 10375/head
xie xingguo [Thu, 21 Jul 2016 07:50:56 +0000 (15:50 +0800)]
os/bluestore: use small encoding for bluefs extent and fnode

Also change bdev of extent from uint16_t to uint8_t, which matches
the fnode prefer_bdev field better, and is good for efficiency.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoMerge pull request #10355 from yehudasa/wip-16742
Yehuda Sadeh [Wed, 20 Jul 2016 22:43:40 +0000 (15:43 -0700)]
Merge pull request #10355 from yehudasa/wip-16742

rgw: back off bucket sync on failures, don't store marker

Reviewed-by: Casey Bodley <cbodley@redhat.com>
9 years agorgw: fix collection of object sync errors 10355/head
Yehuda Sadeh [Wed, 20 Jul 2016 19:59:50 +0000 (12:59 -0700)]
rgw: fix collection of object sync errors

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agorgw: fix marker tracker completion handling
Yehuda Sadeh [Wed, 20 Jul 2016 19:43:48 +0000 (12:43 -0700)]
rgw: fix marker tracker completion handling

Was not tracking high markers correctly. Could only work if there was a single
hole in the completion range. Just keep a map of all the complete entries.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agorgw: collect() stops if error encoutered
Yehuda Sadeh [Wed, 20 Jul 2016 19:42:52 +0000 (12:42 -0700)]
rgw: collect() stops if error encoutered

and returns true if needed to be called again

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agoMerge pull request #10368 from oritwas/wip-rgw-upgrade-period-commit
Casey Bodley [Wed, 20 Jul 2016 17:53:56 +0000 (13:53 -0400)]
Merge pull request #10368 from oritwas/wip-rgw-upgrade-period-commit

rgw: fix upgrade from old multisite to new multisite configuration

Reviewed-by: Casey Bodley <cbodley@redhat.com>
9 years agoMerge pull request #10360 from ceph/wip-include-include
Ali Maredia [Wed, 20 Jul 2016 16:56:34 +0000 (12:56 -0400)]
Merge pull request #10360 from ceph/wip-include-include

cmake: add_subdirectory(include)

Reviewed-by: Ali Maredia <amaredia@redhat.com>
9 years agoMerge pull request #10315 from onyb/wip-cephfs-pypi
John Spray [Wed, 20 Jul 2016 16:34:05 +0000 (17:34 +0100)]
Merge pull request #10315 from onyb/wip-cephfs-pypi

pybind: Rework cephfs/setup.py for PyPI

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #10316 from batrick/mds-standby-assertions
John Spray [Wed, 20 Jul 2016 14:43:43 +0000 (15:43 +0100)]
Merge pull request #10316 from batrick/mds-standby-assertions

mds: add assertions for standby_daemons invariant

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #10347 from renhwztetecs/renhw-wip-test-add-fsdump
John Spray [Wed, 20 Jul 2016 14:43:00 +0000 (15:43 +0100)]
Merge pull request #10347 from renhwztetecs/renhw-wip-test-add-fsdump

test/mds: add fs dump in test_ceph_argparse.py

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #10202 from xiaoxichen/fix_16588
John Spray [Wed, 20 Jul 2016 14:36:05 +0000 (15:36 +0100)]
Merge pull request #10202 from xiaoxichen/fix_16588

mds/MDSMap default metadata pool to -1 (was: output None instead of 0 when no fs present.)

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #9864 from ajarr/wip-15615
John Spray [Wed, 20 Jul 2016 14:15:18 +0000 (15:15 +0100)]
Merge pull request #9864 from ajarr/wip-15615

ceph_volume_client: store authentication metadata

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #10327 from xiexingguo/xxg-wip-bluestore-2016-07-18
Mark Nelson [Wed, 20 Jul 2016 13:28:40 +0000 (08:28 -0500)]
Merge pull request #10327 from xiexingguo/xxg-wip-bluestore-2016-07-18

os/bluestore: misc fixes/cleanups

Mark's Comments:
This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR may have contributed to write performance improvements along with #10257.

Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agoMerge pull request #10257 from chhabaramesh/extent_alloc
Mark Nelson [Wed, 20 Jul 2016 13:22:31 +0000 (08:22 -0500)]
Merge pull request #10257 from chhabaramesh/extent_alloc

os/bluestore: extent alloc functionality for stupid and bitmap allocator

Mark's Comments:
This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR appears to result in a large sequential write performance increase (Up to ~3.5X), and may contribute to a small random write performance increase as well.

Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agorgw: fix upgrade from old multisite to new multisite configuration 10368/head
Orit Wasserman [Wed, 20 Jul 2016 11:02:03 +0000 (13:02 +0200)]
rgw: fix upgrade from old multisite to new multisite configuration

We need to store the updated current period after adding the old converted regions

Fixes: http://tracker.ceph.com/issues/16751
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
9 years agoMerge pull request #9082 from stiopaa1/osd_TestOpsSocketHook_removeUnneededParam
Kefu Chai [Wed, 20 Jul 2016 10:07:40 +0000 (18:07 +0800)]
Merge pull request #9082 from stiopaa1/osd_TestOpsSocketHook_removeUnneededParam

pass string by const ref and add override to virtual function

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #9667 from SUSE/wip-15984
Boris Ranto [Wed, 20 Jul 2016 09:01:43 +0000 (11:01 +0200)]
Merge pull request #9667 from SUSE/wip-15984

ceph-osd-prestart.sh: drop Upstart-specific code

Reviewed-by: Boris Ranto <branto@redhat.com>
9 years agoMerge pull request #10339 from tchaikov/wip-16675
Kefu Chai [Wed, 20 Jul 2016 09:00:38 +0000 (17:00 +0800)]
Merge pull request #10339 from tchaikov/wip-16675

selinux: allow read /proc/<pid>/cmdline

Reviewed-by: Boris Ranto <branto@redhat.com>
9 years agocmake: add_subdirectory(include) 10360/head
Kefu Chai [Wed, 20 Jul 2016 06:45:31 +0000 (14:45 +0800)]
cmake: add_subdirectory(include)

fixes the packaging failure introduced by 741f990

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #10353 from rjfd/wip-fix-ceph-mount
Nathan Cutler [Wed, 20 Jul 2016 02:22:21 +0000 (04:22 +0200)]
Merge pull request #10353 from rjfd/wip-fix-ceph-mount

rpm: Fix creation of mount.ceph symbolic link for SUSE distros

Reviewed-by: Nathan Cutler <ncutler@suse.com>
9 years agoMerge pull request #10351 from ceph/wip-cmake
Kefu Chai [Wed, 20 Jul 2016 02:06:29 +0000 (10:06 +0800)]
Merge pull request #10351 from ceph/wip-cmake

cmake changes

Reviewed-by: Ali Maredia <amaredia@redhat.com>
9 years agorgw: back off bucket sync on failures, don't store marker
Yehuda Sadeh [Tue, 19 Jul 2016 22:32:03 +0000 (15:32 -0700)]
rgw: back off bucket sync on failures, don't store marker

Fixes: http://tracker.ceph.com/issues/16742
If we fail on any single entry in bucket, skip updating the marker tracker
so that next time we'll go over that entry, and back off. This will trigger
a report to the data sync error repo and eventually a retry on the failing
object.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agoMerge pull request #10295 from xiexingguo/xxg-wip-bluestore-2016-07-14
Mark Nelson [Tue, 19 Jul 2016 21:16:29 +0000 (16:16 -0500)]
Merge pull request #10295 from xiexingguo/xxg-wip-bluestore-2016-07-14

kv/MemDB: misc fixes and cleanups

Mark's Comments:
This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agoMerge pull request #10294 from xiexingguo/xxg-wip-bluestore-2016-07-13
Mark Nelson [Tue, 19 Jul 2016 21:15:25 +0000 (16:15 -0500)]
Merge pull request #10294 from xiexingguo/xxg-wip-bluestore-2016-07-13

os/bluestore: use BE for gifting and reclaiming from bluefs

Mark's Comments:
This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agoMerge pull request #10277 from xiexingguo/xxg-wip-fix-posix-fallocate
Mark Nelson [Tue, 19 Jul 2016 21:12:13 +0000 (16:12 -0500)]
Merge pull request #10277 from xiexingguo/xxg-wip-fix-posix-fallocate

os/bluestore: fix error handling of posix_fallocate()

Mark's Comments:
This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agoMerge pull request #10249 from dillaman/wip-16622
Mykola Golub [Tue, 19 Jul 2016 17:16:04 +0000 (20:16 +0300)]
Merge pull request #10249 from dillaman/wip-16622

rbd-mirror: snap rename does not properly replicate to peers

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
9 years agoMerge pull request #10313 from ceph/objclass-perm-feedback
Kefu Chai [Tue, 19 Jul 2016 14:43:29 +0000 (22:43 +0800)]
Merge pull request #10313 from ceph/objclass-perm-feedback

Objclass perm feedback

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agorpm: Fix creation of mount.ceph symbolic link for SUSE distros 10353/head
Ricardo Dias [Tue, 19 Jul 2016 14:40:36 +0000 (15:40 +0100)]
rpm: Fix creation of mount.ceph symbolic link for SUSE distros

Signed-off-by: Ricardo Dias <rdias@suse.com>
9 years agocmake: disable VTA for osdcap.cc 10351/head
Kefu Chai [Tue, 19 Jul 2016 09:30:03 +0000 (17:30 +0800)]
cmake: disable VTA for osdcap.cc

this silences the warning of:
```
In file included from
/home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/include/gtest/gtest.h:58:0,
                 from
/home/jenkins-build/build/workspace/ceph-pull-requests/src/test/osd/osdcap.cc:20:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/test/osd/osdcap.cc:
In member function ‘virtual void
OSDCap_AllowClassMulti_Test::TestBody()’:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/test/osd/osdcap.cc:766:6:
note: variable tracking size limit exceeded with
-fvar-tracking-assignments, retrying without
 TEST(OSDCap, AllowClassMulti) {
      ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/include/gtest/internal/gtest-internal.h:1211:3:
note: in definition of macro ‘GTEST_TEST_CLASS_NAME_’
   test_case_name##_##test_name##_Test
   ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/include/gtest/gtest.h:2181:3:
note: in expansion of macro ‘GTEST_TEST_’
   GTEST_TEST_(test_case_name, test_name, \
   ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/include/gtest/gtest.h:2187:42:
note: in expansion of macro ‘GTEST_TEST’
 # define TEST(test_case_name, test_name) GTEST_TEST(test_case_name,
 # test_name)
                                          ^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/test/osd/osdcap.cc:766:1:
note: in expansion of macro ‘TEST’
 TEST(OSDCap, AllowClassMulti) {
 ^
```

see also b668051

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: remove util.cc from lib{rados,cephfs},ceph-objectstore-tool
Kefu Chai [Tue, 19 Jul 2016 06:24:45 +0000 (14:24 +0800)]
cmake: remove util.cc from lib{rados,cephfs},ceph-objectstore-tool

util.cc is included by both librados and libcephfs, the `lvm` static
variable in `lsb_release_parse()` will be free twice by them. this
could lead to double free issue. and util.cc is not used by client at all, so
remove it from them.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: restructure src/CMakeLists.txt in a more hierarchical way
Kefu Chai [Tue, 19 Jul 2016 06:23:18 +0000 (14:23 +0800)]
cmake: restructure src/CMakeLists.txt in a more hierarchical way

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agorbd-mirror: preprocess journal events prior to applying 10249/head
Jason Dillaman [Mon, 11 Jul 2016 19:32:45 +0000 (15:32 -0400)]
rbd-mirror: preprocess journal events prior to applying

Fixes: http://tracker.ceph.com/issues/16622
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agorbd-mirror: event preprocessor to handle snap rename operations
Jason Dillaman [Fri, 8 Jul 2016 20:19:52 +0000 (16:19 -0400)]
rbd-mirror: event preprocessor to handle snap rename operations

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: improve journaling debug log messages
Jason Dillaman [Fri, 8 Jul 2016 19:16:04 +0000 (15:16 -0400)]
librbd: improve journaling debug log messages

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: separate journal event decoding and processing
Jason Dillaman [Fri, 8 Jul 2016 18:37:14 +0000 (14:37 -0400)]
librbd: separate journal event decoding and processing

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: record original snap name in snap rename journal event
Jason Dillaman [Fri, 8 Jul 2016 13:14:58 +0000 (09:14 -0400)]
librbd: record original snap name in snap rename journal event

Remote peers need a key to map snapshot ids between clusters.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: simple duplicate op checks for all maintenance operations
Jason Dillaman [Fri, 8 Jul 2016 13:13:07 +0000 (09:13 -0400)]
librbd: simple duplicate op checks for all maintenance operations

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agoqa/workunits/rbd: exercise snapshot renames within rbd-mirror test
Jason Dillaman [Fri, 8 Jul 2016 02:16:51 +0000 (22:16 -0400)]
qa/workunits/rbd: exercise snapshot renames within rbd-mirror test

Snapshot rename operations utilize the (cluster) unique snapshot
sequence to prevent attempts at replays. When mirroring to a
different cluster, these sequences will not align.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agoMerge pull request #10250 from gregsfortytwo/wip-sessionmap-committing
John Spray [Tue, 19 Jul 2016 09:51:26 +0000 (10:51 +0100)]
Merge pull request #10250 from gregsfortytwo/wip-sessionmap-committing

mds: Return "committing" rather than "committed" member in get_committing

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #10346 from tchaikov/wip-make-check
Kefu Chai [Tue, 19 Jul 2016 09:50:21 +0000 (17:50 +0800)]
Merge pull request #10346 from tchaikov/wip-make-check

test: ceph-disk.sh do not kill all daemons

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
9 years agotest/mds: add fs dump in test_ceph_argparse.py 10347/head
huanwen ren [Tue, 19 Jul 2016 08:45:42 +0000 (16:45 +0800)]
test/mds: add fs dump in test_ceph_argparse.py

Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
9 years agoRevert "run-make-check.sh: run tests in two steps" 10346/head
Kefu Chai [Tue, 19 Jul 2016 08:20:43 +0000 (16:20 +0800)]
Revert "run-make-check.sh: run tests in two steps"

This reverts commit cd0dfc305d3861b9baf332a1cc13f1c716d8017b.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agoRevert "cmake: label some tests with "Racing""
Kefu Chai [Tue, 19 Jul 2016 08:08:37 +0000 (16:08 +0800)]
Revert "cmake: label some tests with "Racing""

This reverts commit 3a21d0040a7a96aefcf0f4876ee4006c4225019c.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agotest: ceph-disk.sh: do not kill all daemons
Kefu Chai [Tue, 19 Jul 2016 08:04:18 +0000 (16:04 +0800)]
test: ceph-disk.sh: do not kill all daemons

this causes mysterious "racing" issues when running ceph-helper tests in
parallel.

Fixes: http://tracker.ceph.com/issues/16729
Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agopybind: Replace -I with -iquote in cephfs test 10315/head
Anirudha Bose [Tue, 19 Jul 2016 04:34:42 +0000 (10:04 +0530)]
pybind: Replace -I with -iquote in cephfs test

Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
9 years agoselinux: allow read /proc/<pid>/cmdline 10339/head
Kefu Chai [Tue, 19 Jul 2016 03:34:49 +0000 (11:34 +0800)]
selinux: allow read /proc/<pid>/cmdline

we read /proc/<pid>/cmdline to figure out who is terminating us.

Fixes: http://tracker.ceph.com/issues/16675
Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #10317 from wjwithagen/wip-wjw-fix-dl-lib
Kefu Chai [Tue, 19 Jul 2016 02:36:42 +0000 (10:36 +0800)]
Merge pull request #10317 from wjwithagen/wip-wjw-fix-dl-lib

Cmake: fix using CMAKE_DL_LIBS instead of dl

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agomds/MDSMap output -1 instead of 0 when no fs present. 10202/head
Xiaoxi Chen [Tue, 19 Jul 2016 01:56:35 +0000 (09:56 +0800)]
mds/MDSMap output -1 instead of 0 when no fs present.

When no fs present, the mdsmap::dump will output metadata_pool: 0,
which is misleading.

Change the initial value of metadata_pool from 0 to -1.

Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
9 years agoMerge pull request #10147 from SUSE/wip-16598
Nathan Cutler [Tue, 19 Jul 2016 00:28:15 +0000 (02:28 +0200)]
Merge pull request #10147 from SUSE/wip-16598

rpm: move mount.ceph from ceph-base to ceph-common and add symlink in /sbin for SUSE

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com
9 years agoMerge pull request #9411 from ceph/wip-rocksdb-perf
Yuri Weinstein [Mon, 18 Jul 2016 23:28:21 +0000 (16:28 -0700)]
Merge pull request #9411 from ceph/wip-rocksdb-perf

os/RocksDBStore: use effective Get API instead of iterator api

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Mark Nelson <mnelson@redhat.com>
9 years agoMerge pull request #10130 from yonghengdexin735/wip-zzz-add-
Yuri Weinstein [Mon, 18 Jul 2016 23:23:59 +0000 (16:23 -0700)]
Merge pull request #10130 from yonghengdexin735/wip-zzz-add-

src/common/buffer.cc fix judgment for lseek

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoMerge pull request #10197 from songbaisen/b0
Yuri Weinstein [Mon, 18 Jul 2016 23:22:40 +0000 (16:22 -0700)]
Merge pull request #10197 from songbaisen/b0

mon: write fsid use the right return value

Reviewed-by: Sage Weil <sage@redhat.com>
9 years agopybind: Rework cephfs/setup.py for PyPI
Anirudha Bose [Fri, 15 Jul 2016 23:11:43 +0000 (04:41 +0530)]
pybind: Rework cephfs/setup.py for PyPI

Also use `set_include_dirs' in distutils.ccompiler instead of `add_include_dir'
for supporting non-standard include directories.

Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
9 years agoMerge pull request #9291 from trociny/wip-15715
Jason Dillaman [Mon, 18 Jul 2016 20:44:58 +0000 (16:44 -0400)]
Merge pull request #9291 from trociny/wip-15715

rbd-nbd does not properly handle resize notifications

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
9 years agoMerge pull request #9878 from neurodrone/rbd_api_shrink_check_on_resize
Jason Dillaman [Mon, 18 Jul 2016 20:44:15 +0000 (16:44 -0400)]
Merge pull request #9878 from neurodrone/rbd_api_shrink_check_on_resize

librbd: add explicit shrink check while resizing images

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
9 years agoMerge pull request #9955 from ukernel/wip-mds-snap-failover
John Spray [Mon, 18 Jul 2016 20:01:35 +0000 (21:01 +0100)]
Merge pull request #9955 from ukernel/wip-mds-snap-failover

mds: snap failover fixes

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
9 years agoMerge pull request #10283 from ceph/wip-cmake
Ali Maredia [Mon, 18 Jul 2016 17:59:14 +0000 (13:59 -0400)]
Merge pull request #10283 from ceph/wip-cmake

cmake changes

Reviewed-by: Ali Maredia <amaredia@redhat.com>
9 years agobuild/ops: build mount.ceph and mount.fuse.ceph as client binaries 10147/head
Nathan Cutler [Mon, 18 Jul 2016 17:09:54 +0000 (19:09 +0200)]
build/ops: build mount.ceph and mount.fuse.ceph as client binaries

Signed-off-by: Nathan Cutler <ncutler@suse.com>
9 years agoextent alloc functionality for stupid and bitmap allocator 10257/head
Ramesh Chander [Tue, 7 Jun 2016 17:03:49 +0000 (10:03 -0700)]
extent alloc functionality for stupid and bitmap allocator

Signed-off-by: Ramesh Chander <Ramesh.Chander@sandisk.com>
9 years agoos/bluestore: use p2 macros to simplify bit-allocator block alignment
xie xingguo [Tue, 12 Jul 2016 02:33:57 +0000 (10:33 +0800)]
os/bluestore: use p2 macros to simplify bit-allocator block alignment

Mark's comments:

This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Closes #10253

os/bluestore: require block_size to be power of 2 aligned

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: use ISP2 macro for zone/span size checking

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: fix potential uninitialized nid of onode
xie xingguo [Mon, 11 Jul 2016 02:59:27 +0000 (10:59 +0800)]
os/bluestore: fix potential uninitialized nid of onode

The _zero() process may implicitly create a new onode,
thus we shall call _assign_nid() to initialize the nid
properly. And if the onode already has one, _assign_nid()
does nothing.

So it is proper to call _assign_nid() here under any case.

Mark's comments:

This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Closes #10236

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: check against we don't overflow

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: try to reap as many collections as we can

So if there is one collection getting contiguously stucking,
we don't abort at the same point each time.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: make device size of BitFreelistManager is block-size aligned

Otherwise if we try to set past-eof blocks as allocated durint create(),
the call to _xor() will trigger the firing of the following assert:

   assert((length & block_mask) == length);

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: end scope of std::hex properly; convert csum error to EIO
xie xingguo [Sat, 9 Jul 2016 08:32:52 +0000 (16:32 +0800)]
os/bluestore: end scope of std::hex properly; convert csum error to EIO

Mark's comments:

This passed "ceph_test_objectstore --gtest_filter=*/2".
This PR did not appear to have a significant impact on performance tests.

Closes #10225

os/bluestore: end scope of std::hex properly

To avoid side-effects by accident.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: convert csum error to EIO

The verify_csum() method either returns -1 or -EOPNOTSUPP, which
is not very proper and difficult for user understanding.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: assert lextent is shared

Otherwise we are risking of accessing violation.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: drop duplicated assignment of result code

These two methods never fail actually.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: improve _do_read() a little

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
os/bluestore: assert decoding of shard of key to be successful

Otherwise we are risking of acessing null pointer.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agorpm: move mount.ceph from ceph-base to ceph-common
Nathan Cutler [Mon, 18 Jul 2016 14:16:11 +0000 (16:16 +0200)]
rpm: move mount.ceph from ceph-base to ceph-common

Ceph clients use mount.ceph to mount CephFS filesystems, and
ceph-base is not expected to be installed on client systems.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
9 years agorpm: create mount.ceph symlink in /sbin (SUSE only)
Nathan Cutler [Wed, 6 Jul 2016 08:13:03 +0000 (10:13 +0200)]
rpm: create mount.ceph symlink in /sbin (SUSE only)

Fixes: http://tracker.ceph.com/issues/16598
Signed-off-by: Nathan Cutler <ncutler@suse.com>
9 years agoceph_volume_client: version on-disk metadata 9864/head
Ramana Raja [Thu, 7 Jul 2016 11:45:13 +0000 (17:15 +0530)]
ceph_volume_client: version on-disk metadata

Version on-disk metadata with two attributes,
'compat version', the minimum CephFSVolume Client
version that can decode the metadata, and
'version', the version that encoded the metadata.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: add versioning
Ramana Raja [Wed, 6 Jul 2016 10:03:06 +0000 (15:33 +0530)]
ceph_volume_client: add versioning

Add class attributes to CephFSVolumeClient to version
its capabilities.

'version' attribute stores the current version number
of CephFSVolumeClient.

'compat_version' attribute stores the earliest version
number of CephFSVolumeClient that the current version is
compatible with.

Fixes: http://tracker.ceph.com/issues/15406
Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: disallow tenants to share auth IDs
Ramana Raja [Thu, 23 Jun 2016 17:52:12 +0000 (23:22 +0530)]
ceph_volume_client: disallow tenants to share auth IDs

Restrict an auth ID to a single OpenStack tenant to enforce
strong tenant isolation of shares.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: cleanup auth meta files
Ramana Raja [Thu, 23 Jun 2016 11:41:33 +0000 (17:11 +0530)]
ceph_volume_client: cleanup auth meta files

Remove auth meta files on last rule for an auth ID deletion

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: fix log messages
Ramana Raja [Thu, 23 Jun 2016 11:25:30 +0000 (16:55 +0530)]
ceph_volume_client: fix log messages

Log the path of the volume during creation and deletion of volumes.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: create/delete VMeta for create/delete volume
Ramana Raja [Thu, 23 Jun 2016 11:01:23 +0000 (16:31 +0530)]
ceph_volume_client: create/delete VMeta for create/delete volume

Create and delete volume meta files during creation and deletion of
volumes.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoos/bluestore: fix error handling of posix_fadvise() syscall 10327/head
xie xingguo [Mon, 18 Jul 2016 10:07:30 +0000 (18:07 +0800)]
os/bluestore: fix error handling of posix_fadvise() syscall

According to Linux man page:
On success, zero is returned.  On error, an error number is returned.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoceph_volume_client: modify locking of meta files
Ramana Raja [Thu, 23 Jun 2016 10:36:53 +0000 (16:06 +0530)]
ceph_volume_client: modify locking of meta files

File locks are applied on meta files before updating the meta
file contents. These meta files would need to be cleaned up
sometime, which could lead to locks being held on unlinked meta
files. Prevent this by checking whether the file had been deleted
after lock was acquired on it.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agocephfs.pyx: implement python bindings for fstat
Ramana Raja [Thu, 23 Jun 2016 12:09:32 +0000 (17:39 +0530)]
cephfs.pyx: implement python bindings for fstat

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: restrict volume group names
Ramana Raja [Wed, 8 Jun 2016 11:27:01 +0000 (16:57 +0530)]
ceph_volume_client: restrict volume group names

Prevent craftily-named volume groups from colliding with meta files.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: use fsync instead of syncfs
Ramana Raja [Wed, 8 Jun 2016 11:04:56 +0000 (16:34 +0530)]
ceph_volume_client: use fsync instead of syncfs

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: recover from dirty auth and auth meta updates
Ramana Raja [Tue, 7 Jun 2016 19:12:18 +0000 (00:42 +0530)]
ceph_volume_client: recover from dirty auth and auth meta updates

Check dirty flag after locking something and call recover() if we are
opening something dirty (racing with another instance of the driver
restarting after failure) -- only required if someone running multiple
manila-share instances with Ceph loaded.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agoceph_volume_client: modify data layout in meta files
Ramana Raja [Tue, 21 Jun 2016 06:44:56 +0000 (12:14 +0530)]
ceph_volume_client: modify data layout in meta files

Notable changes to data layout in auth meta and volume meta files:

In the auth meta files, add a 'dirty' flag to track the status of auth
updates to a single volume.

In the volume meta file, make the 'dirty' flag track the status of
auth updates for a single ID.

Optimize the recovery of partial auth update changes to auth meta,
volume meta, and the Ceph backend, facilitated by changes in the
data layout in the meta files.

Signed-off-by: Ramana Raja <rraja@redhat.com>
9 years agopybind: ceph_volume_client authentication metadata
John Spray [Wed, 2 Mar 2016 12:30:45 +0000 (12:30 +0000)]
pybind: ceph_volume_client authentication metadata

Store a two-way mapping between auth IDs and volumes.

Enables us to record some metadata on auth ids (which
openstack tenant created it) so that we can avoid exposing
keys to other tenants who try to use the same ceph
auth id.

Enables us to expose the list of which auth ids have access
to a volume, so that Manila's update_access() can be
implemented efficiently.

DNM: see TODOs inline.

Fixes: http://tracker.ceph.com/issues/15615
Signed-off-by: John Spray <john.spray@redhat.com>
9 years agopybind: enable integer flags to libcephfs open
John Spray [Mon, 7 Mar 2016 13:06:41 +0000 (13:06 +0000)]
pybind: enable integer flags to libcephfs open

The 'rw+' style flags are handy and convenient, but
they don't capture all possibilities.  Change to
optionally accept an integer here for advance users
who want to specify arbitrary combinations of
flags.

Signed-off-by: John Spray <john.spray@redhat.com>
9 years agoos/bluestore: trim cache on collection_list() too
xie xingguo [Mon, 18 Jul 2016 08:08:08 +0000 (16:08 +0800)]
os/bluestore: trim cache on collection_list() too

Currently we trim cache on all other read operations
other than this one.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: assert available of stat doesn't underflow
xie xingguo [Mon, 18 Jul 2016 07:49:04 +0000 (15:49 +0800)]
os/bluestore: assert available of stat doesn't underflow

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: en/decode csum_type/csum_chunk_order more efficiently
xie xingguo [Mon, 18 Jul 2016 06:32:28 +0000 (14:32 +0800)]
os/bluestore: en/decode csum_type/csum_chunk_order more efficiently

These two fields are of type uint8_t, so varint encoding/decoding
is unnecessary.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: make csum_type checking more efficient
xie xingguo [Mon, 18 Jul 2016 03:31:43 +0000 (11:31 +0800)]
os/bluestore: make csum_type checking more efficient

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
9 years agoos/bluestore: revert preferred csum behavior
Mark Nelson [Sun, 17 Jul 2016 11:39:41 +0000 (06:39 -0500)]
os/bluestore: revert preferred csum behavior

This passes "ceph_test_objectstore --gtest_filter=*/2".
This restores 4K random read performance to previous levels when objects
are were previously written out using large IOs (4MB in this case):

pre-patch: 26MB/s
post-pated: 610MB/s

Closes #10320

Signed-off-by: Mark Nelson <mnelson@redhat.com>
9 years agoBluestore: Fixed a Bluestore crash
Somnath Roy [Sat, 9 Jul 2016 02:41:46 +0000 (22:41 -0400)]
Bluestore: Fixed a Bluestore crash

A bluestore race condition is been fixed by protecting txc structures
within _txc_state_poc with collection lock.

Mark's comments:

This fixes segfaults during random write tests with bluestore.
This passes "ceph_test_objectstore --gtest_filter=*/2".
This may introduce a small performance regresion, though there is enough
noise in the results to make it inconclusive.

Closes #10220

Signed-off-by: Somnath Roy <somnath.roy@sandisk.com>
9 years agomds: add assertions for standby_daemons invariant 10316/head
Patrick Donnelly [Sat, 16 Jul 2016 03:29:22 +0000 (23:29 -0400)]
mds: add assertions for standby_daemons invariant

These assertions catch state changes of an mds in standby_daemons to a state
other than MDSMap::STATE_STANDBY. Currently this invariant is (sometimes!)
checked in other locations on access of standby_daemons. This commit allows us
catch the violated invariant at the time it occurred.

Related to: http://tracker.ceph.com/issues/16592

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
9 years agoCmake: fix using CMAKE_DL_LIBS instead of dl 10317/head
Willem Jan Withagen [Sat, 16 Jul 2016 12:08:45 +0000 (14:08 +0200)]
Cmake: fix using CMAKE_DL_LIBS instead of dl

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
9 years agocmake: only allow up to 1 hour for a ceph test 10283/head
Kefu Chai [Thu, 14 Jul 2016 07:59:14 +0000 (15:59 +0800)]
cmake: only allow up to 1 hour for a ceph test

quote from
https://cmake.org/cmake/help/v3.0/prop_test/TIMEOUT.html?highlight=timeout

> If it exceeds that the test process will be killed and ctest will move
> to the next test.

this helps us to identify test hang.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: restructure src/CMakeLists.txt in a more hierarchical way
Kefu Chai [Thu, 14 Jul 2016 06:50:31 +0000 (14:50 +0800)]
cmake: restructure src/CMakeLists.txt in a more hierarchical way

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: do not pass --disable-pip-version-check if not supported
Kefu Chai [Thu, 14 Jul 2016 04:29:20 +0000 (12:29 +0800)]
cmake: do not pass --disable-pip-version-check if not supported

on older versions of pip, this option is not supported, and
--disable-pip-version-check is implied with --no-index. so no need to
use them when --no-index is passed to pip.

this partially reverts 395f2c5

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: remove duplicated src from ceph_rgw_jsonparser
Kefu Chai [Wed, 13 Jul 2016 16:27:04 +0000 (00:27 +0800)]
cmake: remove duplicated src from ceph_rgw_jsonparser

they are included by rgw_a as well. and ceph_rgw_jsonparser is linked
against rgw_a.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: link libcommon against $CRYPTO_LIBS
Kefu Chai [Wed, 13 Jul 2016 16:25:43 +0000 (00:25 +0800)]
cmake: link libcommon against $CRYPTO_LIBS

as ceph_crypt.cc is using the symbols in it, and libcommon contains
ceph_crypt.cc.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agorun-make-check.sh: run tests in two steps
Kefu Chai [Wed, 13 Jul 2016 13:44:31 +0000 (21:44 +0800)]
run-make-check.sh: run tests in two steps

this is a workaround of the timeout found in jenkins. currently three
tests are found timeout, and they are labeld with "Racing" and
"LongRunning". so, to workaround this issue, we run the tests in two
phases:

1. run the racing tests with -j1
2. run the non-racing tests with -jN

if we all all tests with -j1, the total test time is 2683.57 sec

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: label some tests with "Racing"
Kefu Chai [Wed, 13 Jul 2016 16:04:58 +0000 (00:04 +0800)]
cmake: label some tests with "Racing"

two tests timesout for unknown reasons, so label them with
"Racing" and "LongRunning" labels.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agomds: use FSMap::insert to add to standby_daemons
Patrick Donnelly [Sat, 16 Jul 2016 03:40:17 +0000 (23:40 -0400)]
mds: use FSMap::insert to add to standby_daemons

This reduces the number of code sites which modify standby_daemons.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
9 years agocmake: no need to depend run-tox-ceph-disk on test
Kefu Chai [Wed, 13 Jul 2016 13:15:32 +0000 (21:15 +0800)]
cmake: no need to depend run-tox-ceph-disk on test

run-tox-ceph-disk and run-tox-ceph-detect-init are already added as
test, so "ctest" and "make {test,check}" will run them without extra
settings.

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agocmake: add a "tests" target to build tests
Kefu Chai [Wed, 13 Jul 2016 13:14:30 +0000 (21:14 +0800)]
cmake: add a "tests" target to build tests

please note "make test" is used by cmake to run tests, so we cannot just
repurpose it to *build* them.

* AddCephTest.cmake: depends on "tests"
* CMakeLists.txt: let "check" depend on "tests"
* src/CMakeLists.txt: update the run-tox tests
* run-make-check.sh: use "make tests" and "ctest" instead of "make check"
* ceph-detect-init/CMakeLists.txt: let "tests" depend on
    "ceph-detect-init"
* ceph-disk/CMakeLists.txt: let "tests" depend on "ceph-disk"

Signed-off-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #10301 from cbodley/wip-rgw-meta-stack-wakeup
Yehuda Sadeh [Sat, 16 Jul 2016 02:19:57 +0000 (19:19 -0700)]
Merge pull request #10301 from cbodley/wip-rgw-meta-stack-wakeup

rgw: RGWMetaSyncCR holds refs to stacks instead of crs

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
9 years agorelease: release notes update for objclass-perms 10313/head
Noah Watkins [Fri, 15 Jul 2016 19:41:18 +0000 (12:41 -0700)]
release: release notes update for objclass-perms

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
9 years agoosd: use static method and simplify return
Noah Watkins [Fri, 15 Jul 2016 19:28:10 +0000 (12:28 -0700)]
osd: use static method and simplify return

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>