actually cython or python3-cython's dependencies should take care of it.
but we should at least get it right on our side if we check it.
Signed-off-by: Kefu Chai <kchai@redhat.com>
use might have multiple python3 installed, some of them has/have all
dependencies installed and is good enough for building Ceph. we should
not always use the latest python installed in the system and complain that
there is missing dependencies, even if user has installed all the
python3 dependencies for the older python3.
put in other words, if user only installs cython module for python3.4, but
she has both python3.6 and python3.4 in her system. we should not force
her to uninstall python3.6 for installing Ceph.
this change also aligns with MGR_PYTHON_VERSION. i am not applying the
same change to WITH_PYTHON2, because python2 is already stablized. and distros
are not likely to release new python2 releases.
Signed-off-by: Kefu Chai <kchai@redhat.com>
However this is not a very complete solution since the broken object
info may still get lost if we switch primaries or simply power off nodes.
I think a better idea would be also adding these kind of broken objects
back into replica's own missing set simultaneously, e.g., like we handling
primary reading errors.
But for now I am not sure if that should be a concern?
Fixes: http://tracker.ceph.com/issues/39101
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
This captures any non-global_init users who created their cct but haven't
started up the log thread yet. As long as common_init_finish() happens
after we have all of our config options (from the mon config or whatever),
we will log (or not log) to the right location(s).
Fixes a regression in cd6a5b9c40
Signed-off-by: Sage Weil <sage@redhat.com>
Erasing each element is unnecessarily slower than just doing a clear after any
necessary iteration.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Direct upgrades from Luminous to Octopus are not supported. These snap format
upgrade tests are now only going to be run in the mimic/nautilus branches.
Fixes: http://tracker.ceph.com/issues/39020
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
* refs/pull/27291/head:
qa/suites/upgrade/nautilus-x-singleton: upgrade mgrs early
qa/suites/upgrade/mimic-x-singleton: upgrade mgrs later
qa/suites: add upgrade/nautilus-x-singleton and symlink from rados/upgrade
qa/suites: move rados/upgrade/mimic-x-singleton to upgrade/ and symlink
Reviewed-by: Sage Weil <sage@redhat.com>
Optionally learn our address based on what our peer (usually the mon) thinks we are
connecting from, as opposed to what our local socket used for the outbound connection.
This enables us to detect what our NATed address is (as a client) in those environments.
Default to true to match the v1 behavior. This is a net change in
behavior for v2.
Signed-off-by: Sage Weil <sage@redhat.com>
- Mappings (actually an Enum) created for actions (buttons and other UI elements) and URLs: ActionLabels and URLVerbs.
- An alternative would be to fix/improve the current i18n-polyfill, which only works with literal strings (not even with 'const enums' which become literals after Typescript transpiling).
- Additionally having a predefined file with some strings to translate (actions, verbs, etc) could improve on the 1st of the 2-stage i18n process (as extraction tool has a lot of limitations).
- A corresponding ActionLabelsI18n service with translated labels (it's a service as I haven't found the way to either translate no-const strings (ngx-translate/AST parser failure) or get a static translator).
- This services could/should be extended to cover all strings that are defined in static/globally scoped objects before any I18n provider has been initialized.
- Breadcrumbs are not translated (neither were they before this change). This part remains untackled: using 'proxy' static objects and performing live translation could deal with the issue.
- New URLBuilder service created (following a established pattern in the Java/.NET world) . This should avoid the need of messing with literal URLs and string composition/parsing, and while the front-end is not meant to be consumed by anyone, Angular does not provide any other way for the app to navigate between components, so the URLs are a de-facto interface contract. Unlike this approach is not flawless, it's easier to enforce, while issues coming from free-from strings are really hard to catch.
- This could be further improved by using a router registry/dynamic routing. Most of the routes are trivial.
- As a side effect of these changes, routing module has been refactored and some routes moved to their specific modules (pool, rbd, rgw), via loadChildren and routes.forChild() magic. Now the above mentioned components are lazy-loaded/pre-loaded (it means right after the main code is loaded). This should also decrease the loading time (though probably this is not biggest time eater here).
- As now modules can be loaded multiple times, not only from App module by means of lazy loading, but also from other ones (as PoolModule loads BlockModule to get QoS widgets in Pool windows), now lazy loaded modules include 2 NgModules (one with imports: RouterModule.forChild(routes), meant for lazy-loading, and another without routes).
- Caveat: Some parts might not be (fully) translated (NFS, iSCSI, mirroring), as there's been ongoing work on them and it's hard to keep up with the new code.
These changes will be a waste of time if the new code does not take benefit from/adheres to it, so I'm still figuring out how to spread this (nothing really fancy to demo). Maybe adding some checks/harnessing to enforce the new naming convention (ideas greatly welcome here).
Fixes: http://tracker.ceph.com/issues/37337
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Some old clusters have an empty created timestamp. This is mostly
harmless, but it is confusing/wrong, and it does currently break the
telemetry module with errors like
ValueError: time data '0.000000' does not match format '%Y-%m-%d %H:%M:%S.%f'
from 'ceph telemetry show'.
If we detect an empty created stamp, look at old monmap and use the oldest
modified stamp we can find.
Fixes: http://tracker.ceph.com/issues/39085
Signed-off-by: Sage Weil <sage@redhat.com>
Allow cluster logging to a file to be disabled via a boolean. Default
to true to avoid any change in behavior.
Signed-off-by: Sage Weil <sage@redhat.com>
strncpy() does not ensure that the dest str is nul terminated, so we
need to add the nul terminator here. another option is strlcpy(), but it
need to link against libbsd if glibc is used.
this change also silences warning like
In function ‘char* strncpy(char*, const char*, size_t)’,
inlined from ‘virtual void
ObjectOperation::C_ObjectOperation_decodewatchers::finish(int)’ at
../src/osdc/Objecter.h:534:15:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: warning:
‘char* __builtin_strncpy(char*, const char*, long unsigned int)’
specified bound 256 equals destination size [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos
(__dest));
|
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Kefu Chai <kchai@redhat.com>
Actually, we may only wanna let the objects with real big number of omap to
use delete range. if not, we find too many tombstones will have side-effects
on performance of kv.
refer: https://github.com/facebook/rocksdb/wiki/DeleteRange-Implementation
Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
The old naming is confusing, e.g., it actually indicates we should tear
down the underlying connection which has no read/write activities
at both sides (namely connection is idle) for over 15 minutes.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>