]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
12 years agoUse dh_installinit to install upstart job files 463/head
Thomas Bechtold [Sat, 27 Jul 2013 05:24:10 +0000 (07:24 +0200)]
Use dh_installinit to install upstart job files

Signed-off-by: Thomas Bechtold <thomasbechtold@jpberlin.de>
12 years agodoc/release-notes: v0.67-rc1
Sage Weil [Tue, 23 Jul 2013 15:44:37 +0000 (08:44 -0700)]
doc/release-notes: v0.67-rc1

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'next'
Gary Lowell [Tue, 23 Jul 2013 06:23:34 +0000 (23:23 -0700)]
Merge branch 'next'

12 years agoMerge branch 'next' of github.com:ceph/ceph into next
Gary Lowell [Tue, 23 Jul 2013 06:21:33 +0000 (23:21 -0700)]
Merge branch 'next' of github.com:ceph/ceph into next

12 years agoMerge branch 'next'
Gary Lowell [Tue, 23 Jul 2013 06:19:47 +0000 (23:19 -0700)]
Merge branch 'next'

12 years agoqa/workunits/rest/test: cluster_down/up are now idempotent
Sage Weil [Tue, 23 Jul 2013 04:04:01 +0000 (21:04 -0700)]
qa/workunits/rest/test: cluster_down/up are now idempotent

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #459 from ceph/unused-spinlock
Sage Weil [Tue, 23 Jul 2013 04:01:39 +0000 (21:01 -0700)]
Merge pull request #459 from ceph/unused-spinlock

log: remove unused lock

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agolog: remove unused lock 459/head
Noah Watkins [Sun, 21 Jul 2013 01:41:39 +0000 (18:41 -0700)]
log: remove unused lock

m_lock is initialized and destroyed, but never used.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
12 years agoMerge remote-tracking branch 'gh/next'
Sage Weil [Tue, 23 Jul 2013 01:46:23 +0000 (18:46 -0700)]
Merge remote-tracking branch 'gh/next'

Conflicts:
PendingReleaseNotes

12 years agoMerge pull request #457 from ceph/wip-paxos
Sage Weil [Tue, 23 Jul 2013 01:28:54 +0000 (18:28 -0700)]
Merge pull request #457 from ceph/wip-paxos

paxos fixes

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoosd/ReplicatedPG: drop repop refs in ~SnapTrimmer
Sage Weil [Tue, 23 Jul 2013 00:19:31 +0000 (17:19 -0700)]
osd/ReplicatedPG: drop repop refs in ~SnapTrimmer

This fixes a leak on shutdown.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoFileStore: disable fd cacher and wbthrottle during replay
Samuel Just [Mon, 22 Jul 2013 19:41:40 +0000 (12:41 -0700)]
FileStore: disable fd cacher and wbthrottle during replay

The fd cache only works correctly when there is at most 1
inode per hobject_t.  This condition is frequently violated
during replay.

Fixes: #5699
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoPGLog::merge_log, unidex() only works from tail, we index() below anyway
Samuel Just [Mon, 22 Jul 2013 20:46:26 +0000 (13:46 -0700)]
PGLog::merge_log, unidex() only works from tail, we index() below anyway

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoPGLog::rewind_divergent_log: unindex only works from tail, index() instead
Samuel Just [Mon, 22 Jul 2013 20:46:10 +0000 (13:46 -0700)]
PGLog::rewind_divergent_log: unindex only works from tail, index() instead

Fixes: #5714
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agosrc/test/osd/TestPGLog.cc: check that the object remains in log.objects
Samuel Just [Mon, 22 Jul 2013 20:44:24 +0000 (13:44 -0700)]
src/test/osd/TestPGLog.cc: check that the object remains in log.objects

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agorgw: swift, in create bucket set location_constraints
Yehuda Sadeh [Mon, 22 Jul 2013 20:36:30 +0000 (13:36 -0700)]
rgw: swift, in create bucket set location_constraints

For swift we're setting the location constraint to be the
current region we're in when creating a bucket.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agorgw: translate swift request to s3 when forwarding
Yehuda Sadeh [Mon, 22 Jul 2013 20:33:33 +0000 (13:33 -0700)]
rgw: translate swift request to s3 when forwarding

When forwarding a swift request to a different region, we
need to use the effective uri, and not just send the one
we got since we use S3 authentication for the forwarded
requests. This is achieved through a new using 'effective_uri'
param on the request info (which in swift ponts to the
plain bucket/object uri without the swift/v1 prefix(.
Also, rename the old req_state::effective_uri to relative_uri
in order to prevent confusion.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-5624-b' into next
Sage Weil [Mon, 22 Jul 2013 21:47:18 +0000 (14:47 -0700)]
Merge remote-tracking branch 'gh/wip-5624-b' into next

Reviewed-by: David Zafman <david.zafman@inktank.com>
12 years agoMerge pull request #458 from ceph/wip-5693
Gregory Farnum [Mon, 22 Jul 2013 21:37:29 +0000 (14:37 -0700)]
Merge pull request #458 from ceph/wip-5693

Wip 5693
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoPendingReleaseNotes: update about new rgw copy obj response 458/head
Yehuda Sadeh [Mon, 22 Jul 2013 21:27:01 +0000 (14:27 -0700)]
PendingReleaseNotes: update about new rgw copy obj response

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: add some comments
Yehuda Sadeh [Mon, 22 Jul 2013 21:26:54 +0000 (14:26 -0700)]
rgw: add some comments

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: dump progress through swift object copy
Yehuda Sadeh [Sat, 20 Jul 2013 04:35:47 +0000 (21:35 -0700)]
rgw: dump progress through swift object copy

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: send data back when copying object
Yehuda Sadeh [Sat, 20 Jul 2013 04:11:53 +0000 (21:11 -0700)]
rgw: send data back when copying object

Currently doing it only when copying between regions. This is
needed so that the operation doesn't time out (as it can take
a long time and the web server may just hang on us since we're
not sending any data).
This is configurable and can be disabled. Currently only implemented
for S3.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agomon/Paxos: add failure injection points 457/head
Sage Weil [Sun, 21 Jul 2013 15:57:38 +0000 (08:57 -0700)]
mon/Paxos: add failure injection points

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: fix pn for uncommitted value during collect/last phase
Sage Weil [Sun, 21 Jul 2013 15:48:18 +0000 (08:48 -0700)]
mon/Paxos: fix pn for uncommitted value during collect/last phase

During the collect/last exchange, peers share any uncommitted values
with the leader.  They are supposed to also share the pn under which
that value was accepted, but were instead using the just-accepted pn
value.  This effectively meant that we *always* took the uncommitted
value; if there were multiples, which one we accepted depended on what
order the LAST messages arrived, not which pn the values were generated
under.

The specific failure sequence I observed:

 - collect
  - learned uncommitted value for 262 from myself
  - send collect with pn 901
 - got last with pn 901 (incorrect) for 200 (old) from peer
  - discard our own value, remember the other
 - finish collect phase
  - ignore old uncommitted value

Fix this by storing a pending_v and pending_pn value whenever we accept
a value.  Use this to send an appropriate pn value in the LAST reply
so that the leader can make it's decision about which uncommitted value
to accept based on accurate information.  Also use it when we learn
the uncommitted value from ourselves.

We could probably be more clever about storing less information here,
for example by omitting pending_v and clearing pending_pn at the
appropriate point, but that would be more fragile.  Similarly, we could
store a pn for *every* commit if we wanted to lay some groundwork for
having multiple uncommitted proposals in flight, but I don't want to
speculate about what is necessary or sufficient for a correct solution
there.

Fixes: #5698
Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: debug ignored uncommitted values
Sage Weil [Sun, 21 Jul 2013 15:12:46 +0000 (08:12 -0700)]
mon/Paxos: debug ignored uncommitted values

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: only learn uncommitted value if it is in the future
Sage Weil [Sun, 21 Jul 2013 15:11:22 +0000 (08:11 -0700)]
mon/Paxos: only learn uncommitted value if it is in the future

If an older peer sends an uncommitted value, make sure we only take it
if it is in the future, and at least as new as any current uncommitted
value.

(Prior to the previous patch, peers could send values from long-past
rounds.  The pn values are also bogus.)

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: only share uncommitted value if it is next
Sage Weil [Mon, 22 Jul 2013 21:13:23 +0000 (14:13 -0700)]
mon/Paxos: only share uncommitted value if it is next

We may have an uncommitted value from our perspective (it is our lc + 1)
when the collector has a much larger lc (because we have been out for
the last few rounds).  Only share an uncommitted value if it is in fact
the next value.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/Paxos: accepted_pn_from has no semantic meaning
Sage Weil [Sun, 21 Jul 2013 14:58:41 +0000 (07:58 -0700)]
mon/Paxos: accepted_pn_from has no semantic meaning

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph-monstore-tool: dump paxos transactions
Sage Weil [Sun, 21 Jul 2013 14:57:23 +0000 (07:57 -0700)]
ceph-monstore-tool: dump paxos transactions

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph.in: reject --admin-daemon so it can't do harm
Dan Mick [Mon, 22 Jul 2013 18:31:09 +0000 (11:31 -0700)]
ceph.in: reject --admin-daemon so it can't do harm

Fixes: #3944
Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agov0.67-rc1 v0.67-rc1
Gary Lowell [Mon, 22 Jul 2013 18:57:27 +0000 (11:57 -0700)]
v0.67-rc1

12 years agoFileJournal: fix posix_fallocate error handling
Noah Watkins [Sun, 21 Jul 2013 17:54:00 +0000 (10:54 -0700)]
FileJournal: fix posix_fallocate error handling

From the man page for posix_fallocate:

    posix_fallocate() returns zero on success, or an error
    number on failure.  Note that errno is not set.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoOSD::_make_pg: use createmap, not osdmap
Samuel Just [Mon, 22 Jul 2013 18:08:04 +0000 (11:08 -0700)]
OSD::_make_pg: use createmap, not osdmap

The osd lock is not held at this point, we must use
the createmap passed in.

Fixes: #5656
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agosrc/*: make Context::finish private and switch all users to use complete
Samuel Just [Sat, 20 Jul 2013 00:35:43 +0000 (17:35 -0700)]
src/*: make Context::finish private and switch all users to use complete

Signed-off-by: Samuel Just <sam.just@inktank.com>
Fixes: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'upstream/next'
Samuel Just [Mon, 22 Jul 2013 17:32:47 +0000 (10:32 -0700)]
Merge remote-tracking branch 'upstream/next'

12 years agoOSD::RemoveWQ: do not apply_transaction while blocking _try_resurrect_pg
Samuel Just [Fri, 19 Jul 2013 22:56:52 +0000 (15:56 -0700)]
OSD::RemoveWQ: do not apply_transaction while blocking _try_resurrect_pg

Some callbacks take the osd lock, so we need to avoid blocking an
osd lock holding thread while waiting on a filestore callback.
Instead, just queue the transaction, and allow _try_resurrect_pg
to cancel us while we are waiting for the transaction to go through
(CLEARING_WAITING).

Fixes: #5672
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoFileStore: use complete() instead of finish() and delete
Samuel Just [Sat, 20 Jul 2013 00:35:22 +0000 (17:35 -0700)]
FileStore: use complete() instead of finish() and delete

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoFinisher: use complete() not finish() and delete
Samuel Just [Sat, 20 Jul 2013 00:34:53 +0000 (17:34 -0700)]
Finisher: use complete() not finish() and delete

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agocommon/Cond.h: add a simpler C_SaferCond Context
Samuel Just [Fri, 19 Jul 2013 22:55:08 +0000 (15:55 -0700)]
common/Cond.h: add a simpler C_SaferCond Context

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agorgw: read attributes when reading bucket entry point
Yehuda Sadeh [Sat, 20 Jul 2013 05:54:46 +0000 (22:54 -0700)]
rgw: read attributes when reading bucket entry point

Fixes: #5691
We need to also read the attributes, as bucket might be a legacy
bucket and might have all bucket instance info in that object.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Tested-by: Faidon Liambotis <faidon@wikimedia.org>
12 years agoceph.spec.in: Obsolete ceph-libs
Gary Lowell [Wed, 3 Jul 2013 18:28:28 +0000 (11:28 -0700)]
ceph.spec.in:  Obsolete ceph-libs

Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-mon-caps' into next
Sage Weil [Mon, 22 Jul 2013 16:27:35 +0000 (09:27 -0700)]
Merge remote-tracking branch 'gh/wip-mon-caps' into next

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoMerge pull request #453 from dalgaaf/wip-da-SCA-cppcheck-7
Sage Weil [Mon, 22 Jul 2013 04:42:07 +0000 (21:42 -0700)]
Merge pull request #453 from dalgaaf/wip-da-SCA-cppcheck-7

Fix SCA and CID issues

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #451 from dalgaaf/wip-da-SCA-cppcheck-6-v2
Sage Weil [Mon, 22 Jul 2013 04:40:22 +0000 (21:40 -0700)]
Merge pull request #451 from dalgaaf/wip-da-SCA-cppcheck-6-v2

Fix some issues from SCA - v2 - against ceph:next

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agofuse: fix fuse_getgroups detection
Noah Watkins [Sat, 20 Jul 2013 18:10:24 +0000 (11:10 -0700)]
fuse: fix fuse_getgroups detection

The ac_check_func fails because -lfuse is not in LIBS. This also enables
code that wasn't being compiled, and fixes compiler errors that
resulted.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agodoc: Fixed formatting errors.
John Wilkins [Sat, 20 Jul 2013 20:10:54 +0000 (13:10 -0700)]
doc: Fixed formatting errors.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated RPM documentation with additional details.
John Wilkins [Sat, 20 Jul 2013 19:26:14 +0000 (12:26 -0700)]
doc: Updated RPM documentation with additional details.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agocls_replica_log_types.h: pass const std::list<> by reference 453/head
Danny Al-Gaaf [Sat, 20 Jul 2013 18:14:20 +0000 (20:14 +0200)]
cls_replica_log_types.h: pass const std::list<> by reference

Pass  const std::list<> parameter by refrence to
cls_replica_log_progress_marker().

From cppcheck:
 [src/cls/replica_log/cls_replica_log_types.h:64]: (performance)
  Function parameter 'b' should be passed by reference.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomon/PGMonitor.cc: reduce scope of local 'num_slow_osds' variable
Danny Al-Gaaf [Sat, 20 Jul 2013 18:00:13 +0000 (20:00 +0200)]
mon/PGMonitor.cc: reduce scope of local 'num_slow_osds' variable

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agorgw/rgw_bucket.cc: use static_cast<>() instead of C-Style cast
Danny Al-Gaaf [Sat, 20 Jul 2013 17:51:10 +0000 (19:51 +0200)]
rgw/rgw_bucket.cc: use static_cast<>() instead of C-Style cast

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agotest_cls_version.cc: don't free object twice, free the right one
Danny Al-Gaaf [Sat, 20 Jul 2013 17:36:32 +0000 (19:36 +0200)]
test_cls_version.cc: don't free object twice, free the right one

Object 'librados::ObjectWriteOperation *op' is freed twice in the TEST
test_version_inc_read. Free instead 'librados::ObjectReadOperation *rop'

Related cppcheck warning:
 [src/test/cls_version/test_cls_version.cc:79]: (error) Memory
  pointed to by 'op' is freed twice.

This should also fix:

CID 1049247 (#1 of 1): Use after free (USE_AFTER_FREE)
  deref_arg: Calling "librados::ObjectWriteOperation::~ObjectWriteOperation()"
  dereferences freed pointer "op". (The dereference happens because this is
  a virtual function call.)
CID 1049218 (#4 of 4): Resource leak (RESOURCE_LEAK)
  leaked_storage: Variable "rop" going out of scope leaks the storage it
  points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agorgw/rgw_metadata.cc: use static_cast<>() instead of C-Style cast
Danny Al-Gaaf [Sat, 20 Jul 2013 17:13:15 +0000 (19:13 +0200)]
rgw/rgw_metadata.cc: use static_cast<>() instead of C-Style cast

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agorgw: change RGWOp::name() to return string instead of char*
Danny Al-Gaaf [Sat, 20 Jul 2013 17:00:50 +0000 (19:00 +0200)]
rgw: change RGWOp::name() to return string instead of char*

Return 'const string' instead of 'const char *' from RGWOp::name() to
avoid the usage of std::string:c_str() to return 'const char *' in
some cases in rgw_rest_replica_log.h.

Returning result of c_str() from a function is dangerous since the
result gets (may) invalid after the related string object gets
destroyed or out of scope (which is the case with return). So you
may end up with garbage in this case.

Related warning from cppcheck:
 [src/rgw/rgw_rest_replica_log.h:39]: (error) Dangerous usage of
  c_str(). The value returned by c_str() is invalid after this call.
 [src/rgw/rgw_rest_replica_log.h:59]: (error) Dangerous usage of
  c_str(). The value returned by c_str() is invalid after this call.
 [src/rgw/rgw_rest_replica_log.h:79]: (error) Dangerous usage of
  c_str(). The value returned by c_str() is invalid after this call

This should also fix:

CID 1049250 (#1 of 1): Wrapper object use after free (WRAPPER_ESCAPE)
  escape: The internal representation of "s" escapes, but is destroyed
  when it exits scope.
CID 1049251 (#1 of 1): Wrapper object use after free (WRAPPER_ESCAPE)
  escape: The internal representation of "s" escapes, but is destroyed
  when it exits scope.
CID 1049252 (#1 of 1): Wrapper object use after free (WRAPPER_ESCAPE)
  escape: The internal representation of "s" escapes, but is destroyed
  when it exits scope.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomon, mds, osd: add early SIGTERM injection
Sage Weil [Sat, 20 Jul 2013 15:49:48 +0000 (08:49 -0700)]
mon, mds, osd: add early SIGTERM injection

This makes it easy to identify problems with (early) shutdown with a
loop like

 while [ ! -e core ] ; do ./ceph-mds -i a -c ceph.conf -f ; done

and a vstart cluster.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: put g_ceph_context on shutdown
Sage Weil [Sat, 20 Jul 2013 15:47:51 +0000 (08:47 -0700)]
mds: put g_ceph_context on shutdown

This makes us shut down lots of threads.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: shutdown: remove sessions under mon->lock
Sage Weil [Sat, 20 Jul 2013 15:47:20 +0000 (08:47 -0700)]
mon: shutdown: remove sessions under mon->lock

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: reorder suicide/shutdown a bit
Sage Weil [Sat, 20 Jul 2013 15:46:57 +0000 (08:46 -0700)]
mds: reorder suicide/shutdown a bit

* shutdown msgr last
* stop timer quickly, in case there are other events

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomds: install signal handlers after init
Sage Weil [Sat, 20 Jul 2013 15:37:44 +0000 (08:37 -0700)]
mds: install signal handlers after init

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: install signal handlers after init
Sage Weil [Sat, 20 Jul 2013 15:37:26 +0000 (08:37 -0700)]
mon: install signal handlers after init

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: do not assume we have an osdmap in prepare_to_stop
Sage Weil [Sat, 20 Jul 2013 15:11:43 +0000 (08:11 -0700)]
osd: do not assume we have an osdmap in prepare_to_stop

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: install async signal handlers after init()
Sage Weil [Sat, 20 Jul 2013 15:10:42 +0000 (08:10 -0700)]
osd: install async signal handlers after init()

The orderly shutdown in OSD assumes init() has completed.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoqa/workunits/mon/caps.sh: clean up users; rename 450/head
Sage Weil [Sat, 20 Jul 2013 04:50:06 +0000 (21:50 -0700)]
qa/workunits/mon/caps.sh: clean up users; rename

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonCap: simplify rwx match logic
Sage Weil [Sat, 20 Jul 2013 04:48:26 +0000 (21:48 -0700)]
mon/MonCap: simplify rwx match logic

Make this a positive check instead of double negative.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: fix command caps check
Sage Weil [Sat, 20 Jul 2013 04:44:26 +0000 (21:44 -0700)]
mon: fix command caps check

We must require something or else the caps check is going to pass in
a degenerate sense.  Use X for commands.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #449 from trhoden/rbd_child_doc
Josh Durgin [Sat, 20 Jul 2013 04:28:42 +0000 (21:28 -0700)]
Merge pull request #449 from trhoden/rbd_child_doc

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoqa: workunits: mon: test mon caps permissions
Joao Eduardo Luis [Sat, 20 Jul 2013 03:30:59 +0000 (04:30 +0100)]
qa: workunits: mon: test mon caps permissions

set env var TEST_EXIT_ON_ERROR=0 to obtain all errors instead of exiting
with return 1 on first error found.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-swift' into next
Sage Weil [Sat, 20 Jul 2013 04:08:18 +0000 (21:08 -0700)]
Merge remote-tracking branch 'gh/wip-swift' into next

Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoMerge pull request #432 from kri5/wip-radosgw-config-doc
Sage Weil [Sat, 20 Jul 2013 01:27:54 +0000 (18:27 -0700)]
Merge pull request #432 from kri5/wip-radosgw-config-doc

doc: Modifies keyring path in radosgw config page.

12 years agomon/PaxosService: update on_active() docs to clarify calling rules
Sage Weil [Fri, 19 Jul 2013 23:59:15 +0000 (16:59 -0700)]
mon/PaxosService: update on_active() docs to clarify calling rules

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/OSDMonitor: discard failure waiters, info on shutdown
Sage Weil [Fri, 19 Jul 2013 23:55:03 +0000 (16:55 -0700)]
mon/OSDMonitor: discard failure waiters, info on shutdown

This would prevent a leak, if we didn't assert before that in the
failure_reporter_t dtor.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: OSDMonitor: only thrash and propose if we are the leader
Sage Weil [Fri, 19 Jul 2013 23:36:01 +0000 (16:36 -0700)]
mon: OSDMonitor: only thrash and propose if we are the leader

'thrash_map' is only set if we are the leader, so we would thrash and
propose the pending value if we are the leader.  However, we should keep
the 'is_leader()' check not only for clarity's sake (an unfamiliar reader
may cry OMGBUG, prompting to a patch much like this), but also because
we may lose a subsequent election and become a peon instead, while still
holding a 'thrash_map' value > 0 -- and we really don't want to propose
while being a peon.

[This is a rebased version of 5eac38797d9eb5a59fcff1d81571cff7a2f10e66,
complete with the typo fix in d656aed599ee754646e16386ce5a4ab0117f2d6e.]

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agomon/OSDMonitor: do not wait for readable in send_latest()
Sage Weil [Fri, 19 Jul 2013 23:35:02 +0000 (16:35 -0700)]
mon/OSDMonitor: do not wait for readable in send_latest()

send_latest() checks for readable and, if untrue, will wait before sending
out the latest OSDMap.  This is completely unnecessary; I think it is a
hold-over from when we have independent paxos states.  An audit of all
callers confirms that everyone would be happy with whatever is committed,
even if we are in the process of committing an even newer version.

Effectively, everyone waits *above* this layer in the usual PaxosService
traps for whether we are readable or not.  This means that waiting_for_map
and send_to_waiting() go away entirely, which is nice.

This addresses, among other things: send_to_waiting() is called from
update_from_paxos(), which can be called when we are not readable due to
the paxos commit/finish timing changes in f1ce8d7c955a24 and
c711203c0d4b.  If no subsequent update happens, those waiters never get
their maps.

Instead, we send them immediately--we know they are committed and old
history is as good as future history.

Fixes: #5643
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoRevert "mon/OSDMonitor: send_to_waiting() in on_active()"
Sage Weil [Fri, 19 Jul 2013 23:39:47 +0000 (16:39 -0700)]
Revert "mon/OSDMonitor: send_to_waiting() in on_active()"

This reverts commit f06a124a7fa0717ef8c523408b31d814df57caca.

On peons, on_active() is only called when we *first* become active after an
election.  Only on the leader is it called after each commit/update.  This
makes this change cause other problems (broken subscriptions on peons, in
particular).  We possibly should fix that, but there is also a simpler fix
for the original problem we were trying to solve.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoRevert "mon: OSDMonitor: only thrash and propose if we are the leader"
Sage Weil [Fri, 19 Jul 2013 23:23:04 +0000 (16:23 -0700)]
Revert "mon: OSDMonitor: only thrash and propose if we are the leader"

This reverts commit 5eac38797d9eb5a59fcff1d81571cff7a2f10e66.

12 years agoRevert "mon/OSDMonitor: fix typo"
Sage Weil [Fri, 19 Jul 2013 23:22:48 +0000 (16:22 -0700)]
Revert "mon/OSDMonitor: fix typo"

This reverts commit d656aed599ee754646e16386ce5a4ab0117f2d6e.

12 years agoceph_rest_api.py: remove unused imports
Dan Mick [Thu, 18 Jul 2013 23:33:43 +0000 (16:33 -0700)]
ceph_rest_api.py: remove unused imports

Fixes: #5684
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoceph.in: better error message when daemon command returns nothing
Dan Mick [Wed, 17 Jul 2013 05:14:15 +0000 (22:14 -0700)]
ceph.in: better error message when daemon command returns nothing

Fixes: #5683
signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agomon: improve osdmap subscription debug output
Sage Weil [Fri, 19 Jul 2013 21:50:03 +0000 (14:50 -0700)]
mon: improve osdmap subscription debug output

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-stats' into next
Sage Weil [Fri, 19 Jul 2013 21:49:25 +0000 (14:49 -0700)]
Merge remote-tracking branch 'gh/wip-stats' into next

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoMerge branch 'wip-rgw-next-2' into next
Greg Farnum [Fri, 19 Jul 2013 20:25:48 +0000 (13:25 -0700)]
Merge branch 'wip-rgw-next-2' into next

Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agorgw: remove extra unused param from RGWRados::get_attr()
Yehuda Sadeh [Fri, 19 Jul 2013 20:06:53 +0000 (13:06 -0700)]
rgw: remove extra unused param from RGWRados::get_attr()

No user for the extra obj_version param.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agocls_rgw: quiet down verbose log message
Yehuda Sadeh [Fri, 19 Jul 2013 18:19:05 +0000 (11:19 -0700)]
cls_rgw: quiet down verbose log message

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: replace logic that compares regions
Yehuda Sadeh [Fri, 19 Jul 2013 16:44:43 +0000 (09:44 -0700)]
rgw: replace logic that compares regions

The logic was a bit broken. Basically, we want to make sure
that region names are the same. However, if region name is not
set then we need to check whether it's the master region. This
can happen in upgrade cases where originally we didn't have
a region name set.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw-admin: link / unlink should report errors
Yehuda Sadeh [Wed, 17 Jul 2013 23:14:02 +0000 (16:14 -0700)]
rgw-admin: link / unlink should report errors

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: fix time parsing in replica log
Yehuda Sadeh [Fri, 19 Jul 2013 04:50:51 +0000 (21:50 -0700)]
rgw: fix time parsing in replica log

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: bucket entry point object ver fixes
Yehuda Sadeh [Fri, 19 Jul 2013 00:40:52 +0000 (17:40 -0700)]
rgw: bucket entry point object ver fixes

Multiple fixes:
 - sync master, secondary entry point ver on creation
 - use correct entry point version when removing entry point
 - check correct version on bucket removal

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: remove s->objv_tracker
Yehuda Sadeh [Thu, 18 Jul 2013 20:07:55 +0000 (13:07 -0700)]
rgw: remove s->objv_tracker

was never initialized correctly anyway. It was only supposed to
be used for buckets, but it was never initialized in that case.
Using s->bucket_info.objv_tracker instead.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: forward delete bucket request to master after removal
Yehuda Sadeh [Thu, 18 Jul 2013 18:16:15 +0000 (11:16 -0700)]
rgw: forward delete bucket request to master after removal

We can only forward the bucket removal to the master if it was
successfully removed locally.
The master region has no knowledge about whether the
bucket can be removed or not, e.g., there are still objects in the
bucket. If we send it to the master first, then it'll happily remove it
even though it might fail in the end.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: adjust error for bucket removal on secondary region
Yehuda Sadeh [Thu, 18 Jul 2013 17:48:39 +0000 (10:48 -0700)]
rgw: adjust error for bucket removal on secondary region

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: forward x_amz_meta headers when forwarding a request
Yehuda Sadeh [Thu, 18 Jul 2013 00:20:30 +0000 (17:20 -0700)]
rgw: forward x_amz_meta headers when forwarding a request

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agorgw: fix bucket re-creation on secondary region
Yehuda Sadeh [Wed, 17 Jul 2013 23:34:50 +0000 (16:34 -0700)]
rgw: fix bucket re-creation on secondary region

We had a problem with bucket recreation, where we identified
that bucket has already existed, but missed the fact that it's
the same bucket, so removal of the bucket index was wrong.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agomon/MonClient: fix small leak
Sage Weil [Thu, 18 Jul 2013 23:58:50 +0000 (16:58 -0700)]
mon/MonClient: fix small leak

We need to delete the version_req_d here.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsgr: mark addr-based [lazy_]send_message and get_connection deprecated
Sage Weil [Thu, 18 Jul 2013 22:05:22 +0000 (15:05 -0700)]
msgr: mark addr-based [lazy_]send_message and get_connection deprecated

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoclient: mark_down by con
Sage Weil [Thu, 18 Jul 2013 21:50:32 +0000 (14:50 -0700)]
client: mark_down by con

We have the con handy; use it.  This avoids generate a spurious RESET
event, which we do not need or do anything useful with.  Note that in this
case we are not attaching anything to the Connection priv field.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: mark_down session by con, not addr
Sage Weil [Thu, 18 Jul 2013 21:46:57 +0000 (14:46 -0700)]
mon: mark_down session by con, not addr

We have the ConnectionRef here; use it.  This avoids generating a spurious
RESET event for the connection.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: break con <-> session ref cycle in mon even if shutting down
Sage Weil [Thu, 18 Jul 2013 21:44:17 +0000 (14:44 -0700)]
mon: break con <-> session ref cycle in mon even if shutting down

If we get a reset during shutdown, we should still break the cycle to avoid
tripping the valgrind leak detection.  Note that we are touching no
internal Monitor state here and the locking has not changed.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsg/SimpleMessenger: remove duplicated interface docs
Sage Weil [Thu, 18 Jul 2013 18:28:09 +0000 (11:28 -0700)]
msg/SimpleMessenger: remove duplicated interface docs

Document these in the interface, not the implementation; having two copies
clutters the header and invites them to get out of sync.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsgr: update docs for mark_down, mark_down_all semantics
Sage Weil [Thu, 18 Jul 2013 17:53:04 +0000 (10:53 -0700)]
msgr: update docs for mark_down, mark_down_all semantics

* RESET events
* note that the reset detection only happens if it is enabled in the
  policy.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsgr: generate reset event on mark_down to addr (not con)
Sage Weil [Wed, 17 Jul 2013 05:43:26 +0000 (22:43 -0700)]
msgr: generate reset event on mark_down to addr (not con)

If the caller is marking down an addr, they presumably don't have the
Connection* handy, so we should generate a reset event to help them
clean up con <-> session ref cycles.

Signed-off-by: Sage Weil <sage@inktank.com>