Commit Graph

72239 Commits

Author SHA1 Message Date
Yan, Zheng
3977c30337 client: fix UserPerm::gid_in_group()
Fixes: http://tracker.ceph.com/issues/19903
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-05-11 11:42:26 +08:00
Yan, Zheng
bbb3369b50 qa/suites/fs: fix write size calculation in full tests
'max_avail' has already taken full_ratio into account

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-05-11 11:18:22 +08:00
Brad Hubbard
2f3cd60855 common: Remove redundant includes
Fixes: http://tracker.ceph.com/issues/19883 (Partially)

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2017-05-11 11:59:08 +10:00
Patrick Donnelly
b6ba30ba57
mds: delay export until dir is stable
This catches an assertion failure due to exports on unjournaled directories:

    2017-05-10 12:45:18.193640 7eff65a04700  7 mds.0.migrator export_dir [dir 10000000003 /a/ [2,head] auth pv=3 v=1 cv=0/0 ap=1+2+2 state=1073742082|complete f()->f(v0 m2017-05-10 12:45:14.977151 1=0+1) n()->n(v0 rc2017-05-10 12:45:14.977151 1=0+1) hs=0+1,ss=0+0 | child=1 authpin=1 0x55ef655de000] to 1
    2017-05-10 12:45:18.193654 7eff65a04700 15 mds.0.18 hit export target 10 @ 2017-05-10 12:45:18.193653
    2017-05-10 12:45:18.193661 7eff65a04700 10 mds.0.cache.dir(10000000003) auth_pin by 0x55ef650cc130 on [dir 10000000003 /a/ [2,head] auth pv=3 v=1 cv=0/0 ap=2+2+2 state=1073742082|complete f()->f(v0 m2017-05-10 12:45:14.977151 1=0+1) n()->n(v0 rc2017-05-10 12:45:14.977151 1=0+1) hs=0+1,ss=0+0 | child=1 authpin=1 0x55ef655de000] count now 2 + 2
    2017-05-10 12:45:18.193701 7eff65a04700  7 mds.0.cache request_start_internal request(mds.0:4) op 5377
    2017-05-10 12:45:18.193708 7eff65a04700  7 mds.0.migrator dispatch_export_dir request(mds.0:4)
    2017-05-10 12:45:18.198281 7eff66205700 20 mgrc operator() 234 counters, of which 0 new
    2017-05-10 12:45:18.198294 7eff66205700 20 mgrc send_report encoded 2006 bytes
    2017-05-10 12:45:18.198298 7eff66205700  1 -- 127.0.0.1:6825/693985647 --> 127.0.0.1:6826/1025 -- mgrreport(+0-0 packed 2006) v2 -- 0x55ef655abe00 con 0
    2017-05-10 12:45:18.198364 7eff6a9ab700 10 _calc_signature seq 14 front_crc_ = 2388339344 middle_crc = 0 data_crc = 0 sig = 5026349537430007662
    2017-05-10 12:45:18.198376 7eff6a9ab700 20 Putting signature in client message(seq # 14): sig = 5026349537430007662
    2017-05-10 12:45:18.198411 7eff65a04700 -1 /home/pdonnell/ceph/src/mds/MDCache.cc: In function 'void MDCache::make_trace(std::vector<CDentry*>&, CInode*)' thread 7eff65a04700 time 2017-05-10 12:45:18.194136
    /home/pdonnell/ceph/src/mds/MDCache.cc: 8225: FAILED assert(parent)

     ceph version 12.0.1-2198-ge757c02 (e757c025fa3270b12fb2fca17cf159fa1bd72747)
     1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x102) [0x55ef5b780f02]
     2: (MDCache::make_trace(std::vector<CDentry*, std::allocator<CDentry*> >&, CInode*)+0x1cb) [0x55ef5b4fa12b]
     3: (Migrator::get_export_lock_set(CDir*, std::set<SimpleLock*, std::less<SimpleLock*>, std::allocator<SimpleLock*> >&)+0x55) [0x55ef5b5e8215]
     4: (Migrator::dispatch_export_dir(boost::intrusive_ptr<MDRequestImpl>&, int)+0xa74) [0x55ef5b5f72d4]
     5: (Migrator::export_dir(CDir*, int)+0x9ca) [0x55ef5b5ea75a]
     6: (MDBalancer::handle_export_pins()+0x7b4) [0x55ef5b61ab24]
     7: (MDBalancer::tick()+0x1e8) [0x55ef5b61b748]
     8: (MDSRankDispatcher::tick()+0x5f1) [0x55ef5b44bdb1]
     9: (Context::complete(int)+0x9) [0x55ef5b43bcc9]
     10: (SafeTimer::timer_thread()+0x452) [0x55ef5b77dd52]
     11: (SafeTimerThread::entry()+0xd) [0x55ef5b77f15d]
     12: (()+0x76ba) [0x7eff6d4bb6ba]
     13: (clone()+0x6d) [0x7eff6c52782d]

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2017-05-10 17:35:44 -04:00
Kefu Chai
5e3f837222 byteorder: refactor ceph_le{16,32,64} using template
to improve the readablity and easier for debugging.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:12:30 +08:00
Kefu Chai
b7a194eb65 byteorder: use gcc intrinsics for byteswap
* use gcc intrinsics for byteswap
* use template to wrap them.
* add the modeline for emacs/vim
* update the caller of the mswab/swab accordingly

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:12:30 +08:00
Kefu Chai
c44cdc27d5 radosstriper: do not use GCC extension to initialize struct members
it's obsolete since GCC 2.5 and is not portable. see
https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:12:30 +08:00
Kefu Chai
ba2a94c1dc byteorder: remove the cruft to detect endianness
Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:12:30 +08:00
Kefu Chai
833705e885 common/sctp_crc32: include acconfig.h for the detecting endianness
so byteorder.h can be a pure c++ header.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:12:30 +08:00
Kefu Chai
e0347b39fb cmake: use cmake module to detect endianness
Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 23:11:13 +08:00
Patrick Donnelly
02c41f683d
qa: add health warning test for insufficient standbys
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2017-05-10 11:05:09 -04:00
Patrick Donnelly
a4cb10900d
qa: turn off spurious standby health warning
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2017-05-10 10:21:28 -04:00
Jason Dillaman
2a616ddbc3 Merge pull request #15030 from chardan/jfw-wip-halflife_atomic_t-fix-compare_exchange_weak
tools: change compare_exchange_weak to compare_exchange_strong

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-05-10 10:04:45 -04:00
Jason Dillaman
fd0fdcfde2 Merge pull request #14975 from runsisi/wip-io-logging
librbd: cleanup logging code under librbd/io

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-05-10 10:00:56 -04:00
Sage Weil
bd71ca396a Merge pull request #14905 from johnzzpcrystal/aio
test/fsx:  Remove the dead code associated with aio backend

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-05-10 08:16:13 -05:00
Sage Weil
511e86636e Merge pull request #14911 from ovh/bp-small-enc-eradication
os/bluestore: use denc for varint encoding

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-10 08:15:16 -05:00
Sage Weil
99aeb527f8 Merge pull request #14957 from ovh/bp-crc-cache-miss-counter
buffer, osd: add missing crc cache miss perf counter

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-10 08:14:27 -05:00
Sage Weil
58f20ff595 Merge pull request #14996 from xiexingguo/wip-fix-dump_basic
mon/PGMap.cc: fix "osd_epochs" section of dump_basic

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-10 08:14:09 -05:00
Sage Weil
696f061670 Merge pull request #15003 from badone/wip-redundant-headers
common: Remove redundant includes

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-10 08:13:50 -05:00
Sage Weil
1fc5690bcd Merge pull request #15013 from TsaiJin/wip-pg-lock-cleanup
osd/PG.cc: unify the call of checking whether lock is held

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-05-10 08:12:48 -05:00
Sage Weil
9af1a1eba1 Merge pull request #14937 from SpandanKumarSahu/bug#17453
mgr: remove non-existent MDS daemons from FSMap

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-10 07:21:02 -05:00
runsisi
0bb74024f1 librbd: cleanup logging code under librbd/io
Signed-off-by: runsisi <runsisi@zte.com.cn>
2017-05-10 19:48:37 +08:00
Jesse Williamson
e573245cf4 tools: change compare_exchange_weak to compare_exchange_strong
On non x86 platforms without a dedicated compare-exchange instruction, std::compare_exchange_weak()
could fail.

Signed-off-by: Jesse Williamson <jwilliamson@suse.de>
2017-05-10 04:04:25 -07:00
xie xingguo
27e546a32f os/bluestore: pre-calculate number of ghost buffers to evict
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-05-10 19:01:49 +08:00
Yan, Zheng
9778b81bb8 qa/suites/fs: reserve more space for mds in full tests
Fixes: http://tracker.ceph.com/issues/19891
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-05-10 17:04:18 +08:00
Loic Dachary
accceddb17 Merge pull request #15016 from dachary/wip-19888-ceph-disk
ceph-disk: separate ceph-osd --check-needs-* logs

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2017-05-10 10:04:17 +02:00
lu.shasha
4ce64a190b rgw: when create_bucket use the same num_shards with info.num_shards
pr #14388 only fix the num_shards in BucketInfo, "init_bucket_index" function still use local num_shards

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

Signed-off-by: Shasha Lu <lu.shasha@eisoo.com>
2017-05-10 10:42:20 +08:00
Kefu Chai
8bbafd2859 libradosstriper: do not assign garbage to returned value
if `rc` is not zero, the returned `ssize` is either garbage or
undefined. this silences warning from clang analyzer:

Assigned value is garbage or undefined

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 10:31:57 +08:00
Kefu Chai
f314bce374 test/messenger/simple*: throw when fails to malloc
silences the warning of "Null pointer passed as an argument to a
'nonnull' parameter" from clang analyzer.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-05-10 10:31:57 +08:00
Yan, Zheng
2c25c99cb4 pybind: fix open flags calculation
(O_WRONLY | O_RDWR) is invaild open flags

Fixes: http://tracker.ceph.com/issues/19890
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-05-10 09:46:59 +08:00
Sage Weil
bfcd2fffe1 Merge pull request #14854 from ceph/wip-reduce-smoke
qa/suites: Reduce fs combination tests for smoke, use bluestore

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-09 12:38:21 -05:00
Sage Weil
623c04ebbe Merge pull request #14959 from liewegas/wip-crush-compat
mon,osd: add require_min_compat_client setting to enforce and clarify client compatibility

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2017-05-09 11:42:30 -05:00
Sage Weil
48648c4e56 test/cli: fix cli tests
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:34:15 -05:00
Sage Weil
f08de01c58 mon/OSDMonitor: 'osd set-require-min-compat-client ...'
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:56 -05:00
Sage Weil
a17e320098 qa/releases/luminous: set require_min_compat_client after upgrade
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:56 -05:00
Sage Weil
1de9c90776 qa/suites: set initial require_min_compat_client
For cases where we are selecting crush tunables beyond the default
min of hammer.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:56 -05:00
Sage Weil
ef1ef284ac osd/OSDMap: add CRUSH_CHOOSEARGS feature bit
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:56 -05:00
Sage Weil
04b9e9f1a3 crush/CrushWrapper: has_[incompat_]chooseargs()
We'll use this for feature bit compat checks with clients and osds.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
9fccc7ac72 include/ceph_features: rename OSDMAP_REMAP -> OSDMAP_PG_UPMAP
Missed this with the remap -> upmap rename a few weeks back.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
5274db81dc mon/OSDMonitor: prevent injection of crush map violating require_min_compat_client
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
7c35fd09cd mon/OSDMonitor: drop allow_pg_upmap option; use require_min_compat_client instead
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
f3fa3c0158 mon/OSDMonitor: switch primary-{affinity,temp} checks to require_min_compat_client
If require_min_compat_client is set (we've finished luminous upgrade), use
that to enforce primary_temp and primary_affinity settings.  Otherwise,
use the legacy config option.

Drop the assert in update_from_paxos.

After luminous we can remove the config options entirely.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
c025323bf4 mon/OSDMonitor: set OSDMap require_min_compat_client on upgrade
Fill in this field once require_luminous is set.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
38c756dbd3 crush: move default tunables up to hammer
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:55 -05:00
Sage Weil
481411e995 mon/OSDMonitor: default require_min_compat_client to hammer for new clusters
Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:54 -05:00
Sage Weil
a1c6646823 osd/OSDmap: add require_min_compat_client field
This is a persistent record of the compatibility for old clients that
we will enforce.  Once set, the mon will eventually prevent newer features
of the OSDMap or CRUSH maps from being used if they violate this
requirement.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:32:54 -05:00
Sage Weil
e02a8e2e1f osd/OSDMap: get_min_compat_client()
Calculate the oldest client we allow to connect.  Provide both a release
name (e.g., firefly) and a version string (e.g., "0.80").

Signed-off-by: Sage Weil <sage@redhat.com>
2017-05-09 11:04:57 -05:00
Jason Dillaman
58b6520707 common/bit_vector: utilize deep-copy during data decode
BlueStore utilizes an in-memory cache of bufferlists. If the bit vector
directly manipulates the shallow-copied bufferlist, it can corrupt
the CRC.

Fixes: http://tracker.ceph.com/issues/19863
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-05-09 11:31:52 -04:00
Nathan Cutler
46d52c51e0 Merge pull request #15015 from smithfarm/wip-sphinx
build/ops: rpm: fix python-Sphinx package name for SUSE

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2017-05-09 17:17:23 +02:00
Sage Weil
7a4dfe8949 Merge pull request #14952 from tchaikov/wip-19813
mgr: do the shutdown in the right order

Reviewed-by: Sage Weil <sage@redhat.com>
2017-05-09 10:01:12 -05:00