| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
hobject_t conversion
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
|
| |
Fix error handling in init()
Cleanup read_superblock() by moving unrelated code into init()
Move init() feature upgrade right after compatibility checking
Remove redundant whoami check
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hobjects
Add ghobject_t to hboject.h header
Add constants NO_SHARD/NO_GEN and change gen_t/shard_t
Convert other headers from hobject_t to ghobject_t
Mostly straight hobject_t to ghobject_t for src/os cc files
Fix tools and tests and enable ceph-dencoder
Add filename generation and parsing including unittest addition
Get ceph-filestore-dump to build
Add gen/shard to DBObjectMap::ghobject_key() and update test case
Add CEPH_FS_FEATURE_INCOMPAT_SHARDS new FileStore feature
Add CEPH_OSD_FEATURE_INCOMPAT_SHARDS new osd feature
Fixes: #5862
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
| |
New func merge() adds missing features from specified CompatSet
Add merge testing to unittest
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OSD
New CEPH_OSD_FEATURE_INCOMPAT_SHARDS
FileStore
NEW CEPH_FS_FEATURE_INCOMPAT_SHARDS
Add FSSuperblock with feature CompatSet in it
Store sharded_objects state using CompatSet
Add set_allow_sharded_objects() and get_allow_sharded_objects() to FileStore/ObjectStore
Add read_superblock()/write_superblock() internal filestore functions
ceph_filestore_dump
Add OSDsuperblock to export format
Use CompatSet from OSD code itself in filestore-dump tool
Always check compatibility of OSD features with on-disk features
On import verify compatibility of on-disk features with export data
Bump super_ver due to export format change
Backport: dumpling, cuttlefish
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
| |
Use working version of CompatSet::unsupported() to improve log output
Backport: dumpling, cuttlefish
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FeatureSet insert/remove
Use 64-bit arithmetic to allow features past 31
Allow feature 63 by fixing assert in insert
CompatSet::unsupported() bugs
Ignore feature 0 which became illegal
Use 64-bit arithmetic when computing mask
Use id in insert() and to get correct feature name
Use the right map to get name for diff.ro_compat
Caused by 80979bbe92409e6f098566e18be6ed59ad9d111a
Caused by 470796b5456592ee5179bbd44b72910a2d7f6aca
Backport: dumpling, cuttlefish
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
| |
Caused by 341fb208aa32117f58ed4ce623f4b152f64ac72e
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
|
|
|
|
| |
Version available as argument, so use instead of constant
Caused by dab238b0fb76b76a8843f4e59319b0f0e4f966a2
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|
|
|
| |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|\
| |
| | |
erasure code plugin test
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* TestErasureCodePluginExample.cc is renamed to TestErasureCodePlugin.cc
because it's not limited to the example which is really used to
support tests rather than being tested.
* Bugous plugins are added to exhibit failures and enable the unit tests
to check they are handled as expected
ErasureCodePluginFailToInitialize : the entry point returns != 0
ErasureCodePluginFailToRegister : the plugin registry is not updated
ErasureCodePluginMissingEntryPoint : the shared library has no entry
point
* It would be difficult to prove that the mutex protecting against
multiple loads actually does what it is expected to because of the
lack of thread introspection functions such as : tell me if this
thread is waiting on this mutex. A simpler approach is chosen : create
a thread that blocks forever when loading ( that's what the delay in
the example plugin is for ) and then check that the lock has indeed
been acquired. Since this mutex is merely about making sure that only
one thread at a time runs this sequence of code, it's probably enough.
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The bool loading data member of ErasureCodePluginRegistry is
set to true when a plugin is being loaded, to provide an observable side
effect for test purposes.
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* minimum_to_decode and minimum_to_decode_with_cost are replaced with
meaningfull examples instead of placeholders
* encode and decode are commented and hard coded constants are replaced
by defines for readability
* run against valgrind
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Andreas-Joachim Peters suggests to reduce copies to the minimum. When
possible the output arguments will just point to the input
argument. This must be documented as any side effect on the input
argument may modify the output argument
* Fix typos
* Fix may/could/must/should to better reflect what's mandatory and
what's not.
* Reword the explanation of minimum_to_decode_with_cost to not suggest
an implementation. This will need to be revisited anyway, when the
semantic of the cost is defined.
* Explain chunk size constraints
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|\ \
| | |
| | | |
erasure code example cleanup
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* minimum_to_decode and minimum_to_decode_with_cost are replaced with
meaningfull examples instead of placeholders
* encode and decode are commented and hard coded constants are replaced
by defines for readability
* run against valgrind
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Andreas-Joachim Peters suggests to reduce copies to the minimum. When
possible the output arguments will just point to the input
argument. This must be documented as any side effect on the input
argument may modify the output argument
* Fix typos
* Fix may/could/must/should to better reflect what's mandatory and
what's not.
* Reword the explanation of minimum_to_decode_with_cost to not suggest
an implementation. This will need to be revisited anyway, when the
semantic of the cost is defined.
* Explain chunk size constraints
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
code_env: use feature test for PR_GET_NAME support
Reviewed-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Function `get_process_name` has platform specific dependencies. Check
for Linux prctl function and correct command flag.
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
automake: fixup am_common_flags to avoid re-definitions
Reviewed-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
AM_COMMON_FLAGS included both CPP and C[XX] flags. This can cause
re-definition errors like this:
make[4]: Nothing to be done for `all-am'.
CXX cls/version/cls_version_client.o
<command-line>: warning: "__STDC_FORMAT_MACROS" redefined
because the macro definition appears in both AM_CXXFLAGS and
AM_CPPFLAGS.
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Prevent copy_from against yourself, and fix issues with the testing framework around it
Reviewed-by: Greg Farnum <greg@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fix the copy_from operation to not remove the objects from the in_use list
until after the entire operation is complete. In particular, the racing
read was completing and removing the dest oid from the in-use list before
the copy-from completed. This keeps the model in sync with what the OSD
is actually doing.
If another new read started up, it would grab the previous value from the
model and expect to see that, but would instead see the updated value.
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In particular, we need to allow all in-flight ops to be COPY_FROM.
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Return EINVAL if we try to COPY_FROM ourselves.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\ \ \ \ \ |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
perfglue/heapprofiler: expect cmd name when handling command instead of 'heap <cmd>'
This was broken by the cli rework.
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Must have been forgotten during the cli rework.
Backport: dumpling
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The heap profiler doesn't care, nor should it, what our command name is.
It only cares about the commands it handles.
Backport: dumpling
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
We used to pass 'heap' as the first element of the cmd vector when
handling commands. We haven't been doing so for a while now, so we
needed to fix this.
Not expecting 'heap' also makes sense, considering that what we need to
know when we reach this function is what command we should handle, and
we should not care what the caller calls us when handling his business.
Fixes: #6361
Backport: dumpling
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fixes: #6293
Signed-off-by: Dan Mick <dan.mick@inktank.com>
(cherry picked from commit 16ebb25f7cdb8e92c618a333c505c16edb16c95c)
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fixes: #6176
Backport: dumpling
We take different code paths in copy_obj, make sure we close the handle
when we exit the function. Move the call to finish_get_obj() out of
copy_obj_data() as we don't create the handle there, so that should
makes code less confusing and less prone to errors.
Also, note that RGWRados::get_obj() also calls finish_get_obj(). For
everything to work in concert we need to pass a pointer to the handle
and not the handle itself. Therefore we needed to also change the call
to copy_obj_data().
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
replace list::size() with map::size(), which should have
a constant time complexity.
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This code was originally used in a token cache, now
as a generic infrastructure rename token fields.
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
push_back() expects char *, whereas append can append a single char.
Appending a NULL char to push_back is cast as a NULL pointer which is
bad.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| |/ / / /
|/| | | |
| | | | |
| | | | |
| | | | | |
Otherwise client.admin will be privilege-less and the admin can't
access the cluster.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
mon/OSDMonitor: make busy creating pgs message more explicit
Reviewed-by: Dan Mick <dan.mick@inktank.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixes: #6287
Signed-off-by: Sage Weil <sage@inktank.com>
|