summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mount.fuse.ceph: Fix ambiguous shebangBrad Hubbard2019-01-103-1/+3
| | | | | | | | | | The ambiguous shebang now produces an error in rawhide and halts the build. In f29 this was a warning. Add python3 as a dependency for ceph-fuse. Fixes: http://tracker.ceph.com/issues/37787 Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
* Merge pull request #25732 from liewegas/wip-37776Kefu Chai2019-01-011-0/+1
|\ | | | | | | | | qa/workunits/rados/test_health_warnings: prevent out osds Reviewed-by: Kefu Chai <kchai@redhat.com>
| * qa/workunits/rados/test_health_warnings: prevent out osdsSage Weil2018-12-311-0/+1
| | | | | | | | | | Fixes: http://tracker.ceph.com/issues/37776 Signed-off-by: Sage Weil <sage@redhat.com>
* | Merge pull request #25726 from tchaikov/wip-37751Kefu Chai2019-01-011-10/+22
|\ \ | | | | | | | | | | | | osd: unlock osd_lock when tweaking osd settings Reviewed-by: Sage Weil <sage@redhat.com>
| * | osd: unlock osd_lock when tweaking osd settingsKefu Chai2018-12-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unlock osd_lock when serving "debug kick_recovery_wq" command we need to unlock osd_lock temporarily when updating the osd settings, otherwise we will run into assert failure. because OSD::handle_conf_change() acquires the osd_lock which is not a recursive lock. Fixes: http://tracker.ceph.com/issues/37751 Signed-off-by: Kefu Chai <kchai@redhat.com>
| * | osd: use unlock_guard for unlock osd temporarilyKefu Chai2018-12-301-10/+21
| |/ | | | | | | | | | | | | | | | | | | | | | | | | when OSD::do_command() gets called, osd_lock is acquired. but when serving some of these commands, we need to call methods which also acquire the osd_lock by themselves. for instance, OSD::handle_conf_change() gets called by cct->_conf.apply_changes(). to allow them to do so, we unlock osd_lock before calling those methods, and re-lock it after done with them. unlock_guard is introduced to unlock and re-lock the lock in a RAII style. Signed-off-by: Kefu Chai <kchai@redhat.com>
* | Merge pull request #25733 from tchaikov/wip-37719-workaroundKefu Chai2019-01-012-5/+5
|\ \ | | | | | | | | | | | | librbd: workaround an ICE of GCC Reviewed-by: Sage Weil <sage@redhat.com>
| * | crimson: workaround an ICE of GCCKefu Chai2019-01-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this change works around the FTBFS on arm64: /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/crimson/common/config_proxy.h:74:13: internal compiler error: in tsubst_decomp_names, at cp/pt.c:16537 for (auto& [obs, keys] : rev_obs) { ^~~ Please submit a full bug report, with preprocessed source if appropriate. it seems that this issue is a dup of https://bugzilla.redhat.com/show_bug.cgi?id=1639019 . Signed-off-by: Kefu Chai <kchai@redhat.com>
| * | librbd: workaround an ICE of GCCKefu Chai2019-01-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC is somehow annoyed at seeing the combination of decltype and initializer_list in this place. i tried to remove the `if` clause, and only left the `else` block, GCC was happy with that change. i also tried to pass an empty `{}` to `decltype(reply.lockers)`, and GCC was also happy with that. so i guess there are multiple factors taking effect in this problem. probably any of them could be the last straw that breaks GCC. but we cannot have a minimal reproducer for this issue here without more efforts. and `reply.lockers` is empty after `reply` is constructed, so it would be simpler if we just add the locker info to it instead of assigning a newly constructed `map` to it. Fixes: http://tracker.ceph.com/issues/37719 Signed-off-by: Kefu Chai <kchai@redhat.com>
* | | Merge pull request #25640 from joscollin/wip-mon-parseKefu Chai2019-01-011-8/+5
|\ \ \ | |/ / |/| | | | | | | | mon,osd: avoid str copy in parse Reviewed-by: Kefu Chai <kchai@redhat.com>
| * | mon: avoid str copy in parseJos Collin2018-12-291-8/+5
| | | | | | | | | | | | | | | | | | | | | Avoids the input string copy. It doesn't make any difference when the input string is copied. Signed-off-by: Jos Collin <jcollin@redhat.com>
* | | Merge pull request #25534 from trociny/wip-36244Kefu Chai2019-01-011-4/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | mgr: fix crash due to multiple sessions from daemons with same name Reviewed-by: Tim Serong <tserong@suse.com> Reviewed-by: Boris Ranto <branto@redhat.com> Reviewed-by: Ricardo Dias <rdias@suse.com> Reviewed-by: Kefu Chai <kchai@redhat.com>
| * | | mgr: fix crash due to multiple sessions from daemons with same nameMykola Golub2018-12-191-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't assume perf counter instances are stable. If there are multiple sessions from daemons reporting the same name (e.g. rgws), the instances are cleared in DaemonServer::handle_open. If the daemons have different counter names (for counters like "objecter-0x55b6f4f1a630.op_active") it will throw out_of_range in DaemonPerfCounters::update when accessing the instance removed by another session. The regression was introduced when adding avgcount support. Fixes: https://tracker.ceph.com/issues/36244 Signed-off-by: Mykola Golub <mgolub@suse.com>
* | | | Merge PR #25597 into masterSage Weil2019-01-0120-161/+681
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/pull/25597/head: mgr/hello: define some module options pybind/mgr/mgr_module: normalize defaults to str when type is missing mgr/telegraf: specify option types mgr/telemetry: specify option types mgr/zabbix: specify option types mgr/localpool: document options and specify in native types mgr/devicehealth: document options and specify in native types mgr/balancer: document and specify options common/options: make runtime vs not runtime explicit, not type-dependent mon/MgrMonitor: mark module options with FLAG_MGR mon/MgrMonitor: make find_module_option handle localized option names pybind/mgr/mgr_module: set values as string mgr: return options as appropriate python type mgr/PythonCompat: python 3 cludges pybind/mgr/mgr_module: make use of defined default value mgr/PyModule: populate ModuleOptions and expose to mon mon/ConfigMonitor: unify module options with built-in options mon/MgrMonitor: populate options mon/MgrMap: define ModuleOptions and include in map common/options: expand type helpers and make them static common/options: pin enums to values Reviewed-by: Tim Serong <tserong@suse.com> Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
| * | | | mgr/hello: define some module optionsSage Weil2018-12-211-3/+21
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | pybind/mgr/mgr_module: normalize defaults to str when type is missingSage Weil2018-12-211-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the module doesn't specify a type for the option, it is probably an older module. Make sure that the default value we provide is normalized to a string, just in case the module declares something like { 'name': 'my_option', 'default': True, } where the default is *not* a string, but an user-set value coming from the config infrastructure would be a string. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/telegraf: specify option typesSage Weil2018-12-211-0/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/telemetry: specify option typesSage Weil2018-12-211-0/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/zabbix: specify option typesSage Weil2018-12-211-0/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/localpool: document options and specify in native typesSage Weil2018-12-211-11/+46
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/devicehealth: document options and specify in native typesSage Weil2018-12-211-12/+36
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/balancer: document and specify optionsSage Weil2018-12-211-31/+103
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | common/options: make runtime vs not runtime explicit, not type-dependentSage Weil2018-12-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For built-in types, we have a kludge that non-string types all appear to be runtime-updateable. There's no such distinction for module options. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mon/MgrMonitor: mark module options with FLAG_MGRSage Weil2018-12-212-2/+4
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mon/MgrMonitor: make find_module_option handle localized option namesSage Weil2018-12-212-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we get "mgr/$module/$instance/$option", normalize it to "mgr/$module/$option" before looking it up. That's because a 'mgr/dashboard/x/server_port' in our database is really the 'mgr/dashboard/server_port' option. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | pybind/mgr/mgr_module: set values as stringSage Weil2018-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C++ code expects a string, and stores everything as a string, so just pass it in that way. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr: return options as appropriate python typeSage Weil2018-12-216-5/+42
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/PythonCompat: python 3 cludgesSage Weil2018-12-211-0/+10
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | pybind/mgr/mgr_module: make use of defined default valueSage Weil2018-12-212-10/+25
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mgr/PyModule: populate ModuleOptions and expose to monSage Weil2018-12-193-17/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Populate the ModuleOptions from MODULE_OPTIONS fields and pass it to the mon for inclusion in the MgrMap. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mon/ConfigMonitor: unify module options with built-in optionsSage Weil2018-12-191-60/+65
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mon/MgrMonitor: populate optionsSage Weil2018-12-193-2/+64
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | mon/MgrMap: define ModuleOptions and include in mapSage Weil2018-12-191-1/+99
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | common/options: expand type helpers and make them staticSage Weil2018-12-181-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - make str_to_type and type_to_str symmetric - keep the variant that provides C++ types, even though there are no users Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | common/options: pin enums to valuesSage Weil2018-12-181-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case we encode these Signed-off-by: Sage Weil <sage@redhat.com>
* | | | | Merge PR #25652 into masterSage Weil2019-01-014-2/+31
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/pull/25652/head: osd/OSDMap: disallow new upmaps on pgs that are pending merge osd/PG: align past_intervals and last_epoch_clean for fabricated merge target Reviewed-by: Neha Ojha <nojha@redhat.com>
| * | | | | osd/OSDMap: disallow new upmaps on pgs that are pending mergeSage Weil2018-12-211-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's critical that we keep the source and target PGs mapped to the same place. Prevent new pg_upmaps on merge source or target PGs. Signed-off-by: Sage Weil <sage@redhat.com>
| * | | | | osd/PG: align past_intervals and last_epoch_clean for fabricated merge targetSage Weil2018-12-203-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we are fabricating a merge target, we have to construct a meaningful pg_history_t and PastIntervals. We do this with pieces of the source PG and the last_epoch_clean and last_epoch_started values from the pg_pool_t. This usually works, except when - source and target become clean, and we decrement pg_num - OSD mapping changes (for source and target) - source repeers, but target does not - OSD with source only tries to merge In this case, the source will have a past_intervals start that is later than the last_epoch_clean implied in the pg_pool_t. This situation is harmless because we do not allow the actual mappings of source and target to diverge during the merge window, so if the source's past intervals was adjusted we can still use it. Avoid logging errors by adjusting the start epoch backwards. Fixes: http://tracker.ceph.com/issues/37511 Signed-off-by: Sage Weil <sage@redhat.com>
* | | | | | Merge PR #25730 into masterSage Weil2019-01-019-48/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/pull/25730/head: Revert "os/objectstore: add new op OP_CREATE for create a new object." Reviewed-by: Sage Weil <sage@redhat.com>
| * | | | | | Revert "os/objectstore: add new op OP_CREATE for create a new object."Kefu Chai2018-12-319-48/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 22f73ba62eb1fe337622ea2aefdcd829f8def851. Fixes: http://tracker.ceph.com/issues/37774 Signed-off-by: Kefu Chai <kchai@redhat.com>
* | | | | | | Merge PR #25670 into masterSage Weil2019-01-011-1/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/pull/25670/head: os/bluestore: KernelDevice::read() does the EIO mapping now. Reviewed-by: Sage Weil <sage@redhat.com>
| * | | | | | | os/bluestore: KernelDevice::read() does the EIO mapping now.Radoslaw Zarzynski2018-12-211-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: http://tracker.ceph.com/issues/36455 Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
* | | | | | | | Merge PR #25408 into masterSage Weil2018-12-313-27/+40
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/pull/25408/head: mgr/hello: Make use of `HandleCommandResult`. Reviewed-by: Sage Weil <sage@redhat.com>
| * | | | | | | | mgr/hello: Make use of `HandleCommandResult`.Sebastian Wagner2018-12-213-27/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
* | | | | | | | | Merge pull request #25437 from Aran85/fix-objecter-resetKefu Chai2018-12-311-1/+4
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | objecter: avoid race when reset down osd's session Reviewed-by: Josh Durgin <jdurgin@redhat.com>
| * | | | | | | | | objecter: avoid race when reset down osd's sessionZengran Zhang2018-12-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | consider the sequence step of follow: thread A: objecter handle new osdmap which says osd.X down thread B: objecter reset session of osd.X,then reopen session thread A: close seesion of osd.X because he is down in such circumstance, we will hit failure on assert(is_up(osd)) the backtrace is: 1. ceph::__ceph_assert_fail(char const*, char const*, int, char const*) () 2. OSDMap::get_inst(int) const [clone .part.224] () 3. Objecter::_reopen_session(Objecter::OSDSession*) () 4. Objecter::ms_handle_reset(Connection*) () Fixes: https://tracker.ceph.com/issues/24601 Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
* | | | | | | | | | Merge pull request #21138 from zouaiguo/fix_mgr_restful_osd_errorKefu Chai2018-12-313-26/+39
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | mgr/restful: fix py got exception when get osd info Reviewed-by: Kefu Chai <kchai@redhat.com>
| * | | | | | | | | mgr/restful: fix py got exception when get osd infozouaiguo2018-11-293-26/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when we create pool by device class, then get osd info by restful, such as https://192.7.7.36:8003/osd browser display error, and found excetion in /var/log/ceph/ceph-mgr****.log 2018-03-30 16:07:52.756560 7feef9f17700 0 mgr[restful] Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/pecan/core.py", line 570, in __call__ self.handle_request(req, resp) File "/usr/lib/python2.7/site-packages/pecan/core.py", line 508, in handle_request result = controller(*args, **kwargs) File "/usr/lib64/ceph/mgr/restful/decorators.py", line 33, in decorated return f(*args, **kwargs) File "/usr/lib64/ceph/mgr/restful/api/osd.py", line 130, in get return module.instance.get_osds(pool_id) File "/usr/lib64/ceph/mgr/restful/module.py", line 543, in get_osds pools_map = self.get_osd_pools() File "/usr/lib64/ceph/mgr/restful/module.py", line 516, in get_osd_pools pool_osds = common.crush_rule_osds(self.get('osd_map_tree')['nodes'], rule) File "/usr/lib64/ceph/mgr/restful/common.py", line 149, in crush_rule_osds osds |= _gather_osds(nodes_by_id[step['item']], rule['steps'][i + 1:]) KeyError: -8L buckets in osd_map_crush has more infomation than nodes in osd_map_tree so we can use buckets instead op nodes to get rule osds Signed-off-by: zouaiguo <zou.aiguo@zte.com.cn>
* | | | | | | | | | Merge pull request #22385 from majianpeng/touch-omit-kvdbKefu Chai2018-12-319-10/+48
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | os/objectstore: add a new op OP_CREATE. Reviewed-by: Sage Weil <sage@redhat.com>
| * | | | | | | | | | os/objectstore: add new op OP_CREATE for create a new object.Jianpeng Ma2018-11-199-10/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For OP_CREATE in bluestore mean node didn't exist, so skip search form kvdb. Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>