Commit Graph

78806 Commits

Author SHA1 Message Date
John Spray
f43859d4dc mgr/dashboard: handle null in format_number
Fixes: http://tracker.ceph.com/issues/21570
Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-27 14:33:58 +01:00
John Spray
409b8923a2 mgr/dashboard: remove ceph.com ref to favicon
We have a local copy referenced in the very next line.

Signed-off-by: John Spray <john.spray@redhat.com>
2017-09-27 14:30:07 +01:00
Yan, Zheng
e515e84f69 mds: open purge queue when transitioning out of standby replay
MDS opens the purge queue when it starts standby replay. This is
wrong because purge queue may change during standby replay.

Fixes: http://tracker.ceph.com/issues/19593
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-09-27 21:07:36 +08:00
Yan, Zheng
82c1f5fcfd mds: always re-probe mds log when standby replay done
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
2017-09-27 21:07:24 +08:00
Jason Dillaman
bc96c53d94 rbd-mirror: ensure forced-failover cannot result in sync state
If the local image already exists and the local image isn't
registered in the remote journal, it should be assumed that
it's already in the replaying state so it can verify the
ancestry to detect split-brains.

Fixes: http://tracker.ceph.com/issues/21559
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-09-27 08:19:21 -04:00
Jason Dillaman
e3b5831257 rbd-mirror: forced-promotion should interrupt replay delay to shut down
Fixes: http://tracker.ceph.com/issues/21559
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2017-09-27 08:19:20 -04:00
xie xingguo
076e94d0ca osd/osd_types: kill osd_peer_stat_t
Which currently has no more consumers.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-27 18:57:36 +08:00
Matt Boyle
3bae00a033 doc: Fix typos in placement-groups.rst
Signed-off-by: Matt Boyle <matt.boyle@gmail.com>
2017-09-27 11:11:23 +01:00
Jos Collin
4483bc7c61 Merge pull request #17988 from wumingqiao/wip-rados-update
include/rados: fix typo in librados.h

Reviewed-by: Jos Collin <jcollin@redhat.com>
2017-09-27 09:07:29 +00:00
xie xingguo
db20328b45 osd/PrimaryLogPG: kick off recovery on backoffing a degraded object
As we are now blocking frontend ops from accessing that very object!

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-27 16:58:19 +08:00
wumingqiao
99d79afe6e include/rados: fix typo in librados.h
opeprate -> operate

Signed-off-by: wumingqiao <wumingqiao@inspur.com>
2017-09-27 16:31:14 +08:00
Kefu Chai
671a4106b3 doc: fix hyper link to radosgw/config-ref
Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-27 11:13:35 +08:00
Zac Medico
18cbba4d2d osd/PGPool::update: optimize with subset_of
Replace expensive inverval_set intersection_of and operator==
calls with a single subset_of call. I borrowed this idea from
Piotr Dałek's "osd/PGPool: don't use intermediate interval set"
patch. The following benchmark program demonstrates a 38%
performance increase:

#include <iostream>
#include <chrono>
#include "include/interval_set.h"

#define NANOSECONDS(d) \
    std::chrono::duration_cast<std::chrono::nanoseconds>(d).count()

typedef uint64_t snapid_t;
typedef std::chrono::steady_clock::duration duration;

duration PGPool_update_old(const interval_set<snapid_t> &rs) {
  std::chrono::steady_clock::time_point start, end;
  interval_set<snapid_t> newly_removed_snaps, cached_removed_snaps;

  // initialize state
  cached_removed_snaps = rs;

  // start timed simulation
  start = std::chrono::steady_clock::now();

  {
    newly_removed_snaps = cached_removed_snaps;
    interval_set<snapid_t> intersection;
    intersection.intersection_of(newly_removed_snaps, cached_removed_snaps);

    assert(intersection == cached_removed_snaps);
    cached_removed_snaps.swap(newly_removed_snaps);
    newly_removed_snaps = cached_removed_snaps;
    newly_removed_snaps.subtract(intersection);
  }

  // end timed simulation
  end = std::chrono::steady_clock::now();

  return end - start;
}

duration PGPool_update_new(const interval_set<snapid_t> &rs) {
  std::chrono::steady_clock::time_point start, end;
  interval_set<snapid_t> newly_removed_snaps, cached_removed_snaps;

  // initialize state
  cached_removed_snaps = rs;

  // start timed simulation
  start = std::chrono::steady_clock::now();

  {
    newly_removed_snaps = cached_removed_snaps;

    assert(cached_removed_snaps.subset_of(newly_removed_snaps));
    interval_set<snapid_t> removed_snaps = newly_removed_snaps;
    newly_removed_snaps.subtract(cached_removed_snaps);
    cached_removed_snaps.swap(removed_snaps);
  }

  // end timed simulation
  end = std::chrono::steady_clock::now();

  return end - start;
}

int main(int argc, char *argv[])
{
  assert(argc == 3);
  const int sample_count = std::stoi(argv[1]);
  const int interval_count = std::stoi(argv[2]);
  const int interval_distance = 4;
  const int interval_size = 2;
  const int max_offset = interval_count * interval_distance;
  interval_set<snapid_t> removed_snaps;

  for (int i = 0; i < max_offset; i += interval_distance)
    removed_snaps.insert(i, interval_size);

  duration old_delta(0), new_delta(0);

  for (int i = 0; i < sample_count; ++i) {
    old_delta += PGPool_update_old(removed_snaps);
    new_delta += PGPool_update_new(removed_snaps);
  }

  float ratio = float(NANOSECONDS(old_delta)) / NANOSECONDS(new_delta);

  std::cout << ratio << std::endl;
}

Suggested-by: Piotr Dałek <piotr.dalek@corp.ovh.com>
Signed-off-by: Zac Medico <zmedico@gmail.com>
2017-09-26 18:33:15 -07:00
Zac Medico
5c3775815a inverval_set: optimize subset_of with sequential search
Optimize subset_of to use sequential search when it
performs better than the lower_bound method, for set
size ratios smaller than 10. This is analogous to
intersection_of behavior since commit 825470fcf9.

The subset_of method can be used in some cases as a
less-expensive alternative to the intersection_of
method, since subset_of can return early if any element
of the smaller set is not contained in the larger set,
and intersection_of has the added burden of storing
the intersecting elements.

Signed-off-by: Zac Medico <zmedico@gmail.com>
2017-09-26 17:33:35 -07:00
Alexandre Marangone
40825daece rbdmap: fix umount when multiple mounts use the same RBD
When a Kubernetes Pod consumes a RBD it is mounted two
times on the same host. When the host shutdown umount will
fail leading to a hung system

Signed-off-by: Alexandre Marangone <amarango@redhat.com>
2017-09-26 16:19:25 -07:00
Yuri Weinstein
85f3227885 Merge pull request #17063 from bspark8/wip-dynamic-cli-info-f
osd: use dmclock library client_info_f function dynamically

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
2017-09-26 16:02:19 -07:00
Yuri Weinstein
cf1bcf5b3b Merge pull request #17335 from Carudy/cxw
crush: safe check for 'ceph osd crush swap-bucket'

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 16:01:14 -07:00
Yuri Weinstein
4d50fb56b8 Merge pull request #17410 from zmedico/PGPool-update-optimize-removed_snaps-comparison-when-possible
PGPool::update: optimize removed_snaps comparison when possible

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
2017-09-26 15:59:59 -07:00
Adam C. Emerson
0d8c52a906 common/options.h: Do not use linked lists of pointers
Especially since we're just pushing things in from the end. The linked
list has more overhead, is slower, and adds no capability.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2017-09-26 18:37:31 -04:00
Sage Weil
36c178feb0 Merge pull request #17980 from liewegas/wip-boost-url
make-dist,cmake: move boost tarball location to download.ceph.com

Reviewed-by: Jeff Layton <jlayton@redhat.com>
2017-09-26 17:07:03 -05:00
Sage Weil
19987549e0 make-dist,cmake: move boost tarball location to download.ceph.com
Sourceforge is down.  Also, we can hammer our servers instead of
theirs.

Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-26 17:22:36 -04:00
amitkuma
b9ff4510aa include,messages,rbd: Initialize counter,group_pool
Fixes the coverity issues:

** 1396182 Uninitialized scalar field
CID 1396182 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member counter is not initialized
in this constructor nor in any functions that it calls.

** 1396194 Uninitialized scalar field
CID 1396194 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member group_pool is not initialized
in this constructor nor in any functions that it calls

Signed-off-by: Amit Kumar <amitkuma@redhat.com>
2017-09-26 23:32:42 +05:30
Matt Benjamin
bf99f4d86b Merge pull request #17589 from myENA/feature/20883-adminapi_sync_stats_master
rgw: admin api - add ability to sync user stats from admin api
2017-09-26 12:45:24 -04:00
Matt Benjamin
fcc014cdb0 Merge pull request #17433 from C2python/check_action
rgw: Return Error if Bucket Policy Contians Undefined Action
2017-09-26 12:40:08 -04:00
Jason Dillaman
2360bfca75 Merge pull request #17969 from ceph/rbd-mirror-reboot
systemd: rbd-mirror does not start on reboot

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-09-26 12:10:16 -04:00
Ilya Dryomov
2f70787c74 qa/suites/krbd: exclude shared/298
Non-trivial lockdep false positive, discussion at

  https://www.spinics.net/lists/linux-xfs/msg10778.html

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2017-09-26 16:33:35 +02:00
xie xingguo
ef0c60fe08 os/bluestore/BlueFS: check device id before using hint
As we might be allocating space from different devices (though
the chance is rare).

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-26 21:45:54 +08:00
xie xingguo
80e14271db os/bluestore/BlueFS: drop redundant merge logic of pextents
As Allocator will handle it automatically and efficiently!

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-26 21:45:54 +08:00
xie xingguo
6228d5ee22 os/bluestore/BlueFS: kill block_total
As block_all will suffice for the same purpose.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2017-09-26 21:45:54 +08:00
Sage Weil
62bbfc1b4d Merge pull request #17929 from renhwztetecs/renhw-wip-mgrmon-command_descs_prefix
mon/mgr: sync "mgr_command_descs","osd_metadata" and "mgr_metadata" prefixes to new mons

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 08:38:14 -05:00
Sage Weil
0227c91649 Merge pull request #17932 from jcsp/wip-21197
mgr: store declared_types in MgrSession

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-26 08:36:24 -05:00
Sage Weil
03137272eb Merge pull request #17933 from jcsp/wip-17737
mgr: fix crashable DaemonStateIndex::get calls

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 08:35:52 -05:00
Sage Weil
e2aef59dd7 Merge pull request #17944 from thmour/tmour_upmap
osd/OSDMap: upmap should respect the osd reweights

Reviewed-by: Sage Weil <sage@redhat.com>
2017-09-26 08:35:07 -05:00
Matt Benjamin
637eead62f Merge pull request #17880 from amitkumar50/cov-rgw-9
rgw: Error check on return of read_line()
2017-09-26 08:29:09 -04:00
Sébastien Han
e6cd9570ba rbd-mirorr: does not start on reboot
The current systemd unit file misses 'PartOf=ceph-rbd-mirror.target',
which results in the unit not starting after reboot.
If you have ceph-rbd-mirror@rbd-mirror.ceph-rbd-mirror0, it won't start
after reboot even if enabled.
Adding 'PartOf=ceph-rbd-mirror.target' will enable
ceph-rbd-mirror.target when ceph-rbd-mirror@rbd-mirror.ceph-rbd-mirror0
gets enabled.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-26 14:05:37 +02:00
John Spray
99b15792a3 Merge pull request #17961 from tchaikov/wip-doc-local-pool-in-toc
doc/mgr: add "local pool" plugin to toc

Reviewed-by: John Spray <john.spray@redhat.com>
2017-09-26 11:31:09 +01:00
Kefu Chai
dca1306347 Merge pull request #17949 from asomers/nproc_freebsd
do_{cmake,freebsd}: Don't invoke nproc(1) on FreeBSD

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 17:45:56 +08:00
Kefu Chai
d4da5e2063 Merge pull request #17940 from jcsp/wip-21534
mon: update get_store_prefixes implementations

Reviewed-by: Joao Eduardo Luis <joao@suse.de>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 17:09:54 +08:00
Jos Collin
fdbbe8a32c test: silence warnings from -Wsign-compare
Fixed the warnings:

ceph/src/test/bufferlist.cc:2150:3:   required from here
ceph/src/googletest/googletest/include/gtest/gtest.h:1392:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (lhs == rhs) {

ceph/src/test/bufferlist.cc:2151:3:   required from here
ceph/src/googletest/googletest/include/gtest/gtest.h:1392:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (lhs == rhs) {

Signed-off-by: Jos Collin <jcollin@redhat.com>
2017-09-26 10:24:15 +05:30
Kefu Chai
0b831e7886 doc/mgr: add "local pool" plugin to toc
Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-26 12:10:28 +08:00
Kefu Chai
7682b50699 automake: remove files required by automake
INSTALL, NEWS, README, AUTHORS, and ChangeLog are required by automake,
since we've switched to cmake, remove the empty ones.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-09-26 12:04:59 +08:00
Kefu Chai
0be2b8baf5 Merge pull request #17842 from MahatiC/fix_example
examples: fix link order in librados example Makefile

Reviewed-by: Kefu Chai <kchai@redhat.com>
2017-09-26 11:15:14 +08:00
Jason Dillaman
22149303a5 Merge pull request #17633 from yonghengdexin735/wip-zzz-doc
doc/rbd: add info for rbd group

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-09-25 21:40:32 -04:00
Jason Dillaman
642afd2f5f Merge pull request #17803 from amitkumar50/cov-librbd-5
test: address coverity false positives

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-09-25 21:33:36 -04:00
Jason Dillaman
12d97f232f Merge pull request #17800 from amitkumar50/cov-misc-8
test/librbd: initialize on_finish,locker,force,snap_id

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2017-09-25 21:31:58 -04:00
Alan Somers
d1cbb90daa scripts: fix bash path in shebangs (part 2)
/bin/bash is a Linuxism.  Other operating systems install bash to
different paths.  Use /usr/bin/env in shebangs to find bash.

Signed-off-by: Alan Somers <asomers@gmail.com>
2017-09-25 17:20:40 -06:00
Alan Somers
44c6a47fb6 do_{cmake,freebsd}: Don't invoke nproc(1) on FreeBSD
Use sysctl(8) instead.  Also, there's no longer any need for /bin/bash
on FreeBSD.

Signed-off-by: Alan Somers <asomers@gmail.com>
2017-09-25 16:24:06 -06:00
Sage Weil
e643d5c0fe Merge pull request #17813 from liewegas/wip-21410-note
PendingReleaseNotes: note about upmap mapping change in luminous release notes

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2017-09-25 16:36:36 -05:00
Sage Weil
dda1726bcb PendingReleaseNotes: note about upmap mapping change in luminous release notes
Signed-off-by: Sage Weil <sage@redhat.com>
2017-09-25 17:36:14 -04:00
Matt Benjamin
37c8748054 Merge pull request #17809 from yaozongyou/fix-rgw-file-write-error
rgw_file: fix write error when the write offset overlaps
2017-09-25 14:45:57 -04:00