rgw: set meta object in extra flag when initializing it

As part of the fix for 8452 we moved the meta object initialization.
Missed moving the extra flag initialization that is needed. This breaks
setups where there's a separate extra pool (needed in ec backends).

Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Remove SequencerPosition from KeyValueStore

Now KeyValueStore expects kv backend to ensure consistency and there is unusable
for KeyValueStore to store a SequencerPosition.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Fix write operation on a deleted object in the same transaction

If the following op happened:
touch obj
delete obj
write obj

KeyValueStore will fail at "write" operation.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add test for objectstore

Add remove then write object in a transaction.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
rgw: cache decoded user info

Instead of accessing the raw user info data, cache the decoded
structure.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: cache bucket info

This is really a partial implementation, so should only be used for
testing.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: an infrastructure for hooking into the raw cache

Extend the RGWCache so that we can chain other caches to it so that when
data is invalidated it notifies them.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: user info uses cache chaining

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: bucket info uses cache chaining

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: chain binfo_cache to multiple cache entries

Need to chain it to both the entry point and to the instance.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: chain to multiple cache entries in one call

This ensures that chained cache entries that depend on more than one raw
cache entry (bucket info cache depends on both the bucket entry point
and on the bucket info object), are chained and created atomically.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
erasure-code: pool create must not create profiles

If a non existent profile is provided as an argument to osd pool create,
it must exit on error and not create the profile as a side effect.

http://tracker.ceph.com/issues/8307 refs: #8307

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: OSDMonitor::get_erasure_code is a const

If it is not, the non const version of OSDMap::get_erasure_code_profile
is called and a profile is created as a side effect, which is not
intended.

http://tracker.ceph.com/issues/8307 refs: #8307

Signed-off-by: Loic Dachary <loic@dachary.org>
erasure-code: consistent argument parsing for profiles

Remove the = from the goodchars of the erasure_code_profile argument of
osd pool create so that it is consistent with the goodchars of osd
erasure-code-profile set / rm.

Signed-off-by: Loic Dachary <loic@dachary.org>
osd: improve osd pool create error message readability

Add std::endl to separate independent error messages related to erasure
code.

Signed-off-by: Loic Dachary <loic@dachary.org>
tests: prevent kill race condition

When trying to kill a daemon, keep its pid in a variable instead of
retrieving it from the pidfile multiple times. It prevents the following
race condition:

  * try to kill ceph-mon
  * ceph-mon is in the process of dying and removed its pidfile
  * try to kill ceph-mon fails because the pidfile is not found
  * another ceph-mon is spawned and fails to bind the port
    because the previous ceph-mon is still holding it

Signed-off-by: Loic Dachary <loic@dachary.org>
osd: remove non const get_erasure_code_profile

It is not used and will unexpectedly create a new entry if selected when
the const version is intended.

Signed-off-by: Loic Dachary <loic@dachary.org>
Merge pull request #1915 from ceph/wip-8452-2

rgw: set meta object in extra flag when initializing it

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Merge pull request #1949 from ceph/wip-7774-3

Wip 7774 3

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
osd: add sanity check/warning on a few key configs

Warn when certain config values are set to bad values.

Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>