]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
12 years agomon: upgrade auth database on leader
Sage Weil [Wed, 5 Jun 2013 14:55:46 +0000 (07:55 -0700)]
mon: upgrade auth database on leader

If we are the leader, and the auth database has not yet been upgraded,
do so.  The upgrade consists of translating old-style (pre-v0.64) caps
to new-style caps (e.g., 'allow profile bootstrap-osd').  This happens
once and the conversion takes the form of a normal paxos transaction.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoauth: CephxKeyServer: add secrets_{begin,end}() getters
Joao Eduardo Luis [Wed, 5 Jun 2013 01:06:51 +0000 (02:06 +0100)]
auth: CephxKeyServer: add secrets_{begin,end}() getters

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agomon: AuthMonitor: remove dead code to avoid confusion
Joao Eduardo Luis [Tue, 4 Jun 2013 23:13:32 +0000 (00:13 +0100)]
mon: AuthMonitor: remove dead code to avoid confusion

AuthMonitor::election_finished() does nothing.

PaxosService::election_finished() is the one being handled.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agoceph: Remove connect/command timeouts; too risky for now
Dan Mick [Tue, 4 Jun 2013 23:39:13 +0000 (16:39 -0700)]
ceph: Remove connect/command timeouts; too risky for now
Keep 10s timeout when connecting for help descriptions, however

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agomessages/MMonProbe: remove unused fields
Sage Weil [Tue, 4 Jun 2013 05:01:29 +0000 (22:01 -0700)]
messages/MMonProbe: remove unused fields

These fields are no longer used. We already bumped the mon internal
protocol in 5d7dd5ab67922b10351c3c7f57865d2c3e6815ac, so we can safely
change these.

Fixes: #4809
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph: cleanup: accept --conf *and* -c; suppress stderr if no outs
Dan Mick [Tue, 4 Jun 2013 20:13:15 +0000 (13:13 -0700)]
ceph: cleanup: accept --conf *and* -c; suppress stderr if no outs

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agolibrados, rados.py: add rados_create2/init2
Dan Mick [Tue, 4 Jun 2013 20:13:02 +0000 (13:13 -0700)]
librados, rados.py: add rados_create2/init2

librados clients, particularly the ceph tool, need to be able
to specify a full 'name'; rados_create enforced 'client.<param>'
with no workaround.  New interface.  Python Rados().__init__ selects
appropriate create function depending on whether name or id is
supplied.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoMerge remote-tracking branch 'origin/master' into wip-ceph-cli
Dan Mick [Tue, 4 Jun 2013 20:12:08 +0000 (13:12 -0700)]
Merge remote-tracking branch 'origin/master' into wip-ceph-cli

Conflicts:
src/mon/OSDMonitor.cc
src/osd/OSD.cc
src/osd/ReplicatedPG.cc

12 years agomon: fix POOL_OP_AUID_CHANGE
Sage Weil [Tue, 4 Jun 2013 01:19:29 +0000 (18:19 -0700)]
mon: fix POOL_OP_AUID_CHANGE

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agotest/librados: remove "set_auid" pool tests
Dan Mick [Tue, 4 Jun 2013 01:34:21 +0000 (18:34 -0700)]
test/librados: remove "set_auid" pool tests

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoAdd ceph_test_rados_api_cmd to the ceph-test package
Dan Mick [Mon, 3 Jun 2013 20:23:57 +0000 (13:23 -0700)]
Add ceph_test_rados_api_cmd to the ceph-test package

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: backward-compatibility hack: blank line before JSON output
Dan Mick [Mon, 3 Jun 2013 19:32:14 +0000 (12:32 -0700)]
ceph: backward-compatibility hack: blank line before JSON output

Many JSON commands (osd dump, et. al.) used to print a status
line first before the actual output; this has been fixed, but there
are scripts/tools/etc. that expect it.  A simple compatibility hack
is to output a blank line, which won't confuse properly-written
JSON parsers, but will allow the tools-with-workarounds to continue
to work.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agolibrados cmd tests: mon_status comes to stdout, not stderr
Dan Mick [Mon, 3 Jun 2013 19:30:28 +0000 (12:30 -0700)]
librados cmd tests: mon_status comes to stdout, not stderr

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agolibrados: fix unsigned vs. signed warning
Dan Mick [Sun, 2 Jun 2013 22:12:16 +0000 (15:12 -0700)]
librados: fix unsigned vs. signed warning

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: refactor help so it can be called after cluster connection
Dan Mick [Fri, 31 May 2013 23:50:51 +0000 (16:50 -0700)]
ceph: refactor help so it can be called after cluster connection

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agomon: better debugging of caps messages/values
Sage Weil [Sat, 1 Jun 2013 00:48:04 +0000 (17:48 -0700)]
mon: better debugging of caps messages/values

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonCap: fix setting of text in parse()
Sage Weil [Sat, 1 Jun 2013 00:45:21 +0000 (17:45 -0700)]
mon/MonCap: fix setting of text in parse()

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonCap: set text in set_allow_all()
Sage Weil [Sat, 1 Jun 2013 00:18:12 +0000 (17:18 -0700)]
mon/MonCap: set text in set_allow_all()

This will let the cap encode/decode to the same value.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph: various cleanups
Dan Mick [Fri, 31 May 2013 04:58:46 +0000 (21:58 -0700)]
ceph: various cleanups
 - make base class valid() do useful work
 - remove valid from CephPoolname; pool need not exist for create
 - add --user as alias for --id
 - remove vestige of special --keyring handing
 - be sure childargs is an empty list rather than None
 - remove -- from childargs if present (to stop interpreting -- args)
 - handle connection timeout cleanly

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoPGMonitor: fix pg dump and dump_stuck
Dan Mick [Fri, 31 May 2013 04:54:41 +0000 (21:54 -0700)]
PGMonitor: fix pg dump and dump_stuck

dump needed to default to format plain, not json
dump_stuck was not doing format = plain correctly (coredumping)

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agocmdparse, mon: add cmd_vartype_stringify for _allowed_command
Dan Mick [Tue, 4 Jun 2013 04:06:34 +0000 (21:06 -0700)]
cmdparse, mon: add cmd_vartype_stringify for _allowed_command

cmd_vartype are not all strings, and need a type-variant function
to turn them into strings for authorization against caps.  Use
boost::apply_visitor to get this behavior.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agocmdparse: add handle_bad_get(), ceph:: qualifiers, cmdmap_t
Dan Mick [Tue, 4 Jun 2013 04:05:12 +0000 (21:05 -0700)]
cmdparse: add handle_bad_get(), ceph:: qualifiers, cmdmap_t

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: remove global declarations, declare verbose and cluster near top
Dan Mick [Thu, 30 May 2013 23:47:48 +0000 (16:47 -0700)]
ceph: remove global declarations, declare verbose and cluster near top

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: use conf_parse_argv to deal with nonspecial Ceph args
Dan Mick [Fri, 31 May 2013 00:03:13 +0000 (17:03 -0700)]
ceph: use conf_parse_argv to deal with nonspecial Ceph args

This means parsing argv only once now, so pass arg lists to
new_style_command().  A little cleanup/commenting too.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agolibrados, rados.py: add conf_parse_argv_remainder()
Dan Mick [Thu, 30 May 2013 23:32:30 +0000 (16:32 -0700)]
librados, rados.py: add conf_parse_argv_remainder()

New parsing function to extract any known arguments from a vector
and return any unknowns; useful for ceph CLI to allow librados
first dibs on arguments so it doesn't have to reproduce the
argument recognition

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: make ceph -w output 'ceph status' first
Dan Mick [Thu, 30 May 2013 00:36:28 +0000 (17:36 -0700)]
ceph: make ceph -w output 'ceph status' first

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agomon: include cluster fsid/uuid in status output
Sage Weil [Wed, 29 May 2013 23:36:34 +0000 (16:36 -0700)]
mon: include cluster fsid/uuid in status output

Implements: #5147
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonCap: allow osd, mds to write to cluster log
Sage Weil [Wed, 29 May 2013 22:29:55 +0000 (15:29 -0700)]
mon/MonCap: allow osd, mds to write to cluster log

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoceph: move admin-daemon command before connect()
Dan Mick [Wed, 29 May 2013 02:07:54 +0000 (19:07 -0700)]
ceph: move admin-daemon command before connect()

Allow admin-daemon commands to work even if we can't connect()

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoceph: finish changing bestsigs to bestcmds
Dan Mick [Wed, 29 May 2013 02:07:14 +0000 (19:07 -0700)]
ceph: finish changing bestsigs to bestcmds

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agocephtool/test.sh: fix "expect failure"
Dan Mick [Fri, 31 May 2013 04:50:02 +0000 (21:50 -0700)]
cephtool/test.sh: fix "expect failure"

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoMDSMonitor, cmdparse: increase resiliency of bad cmd_getval()
Dan Mick [Wed, 29 May 2013 01:38:16 +0000 (18:38 -0700)]
MDSMonitor, cmdparse: increase resiliency of bad cmd_getval()

MDSMonitor: check for and handle bad maxmds get
cmdparse.h: Use gcc demangler to print bad boost::variant typenames,
add backtrace in case of bad boost::variant get

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agomessages/MClientCapRelease: fix string output
Sage Weil [Fri, 31 May 2013 16:20:50 +0000 (09:20 -0700)]
messages/MClientCapRelease: fix string output

Use the vector size, not what is in the header, which is not yet filled in
for outgoing messages.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #337 from dalgaaf/wip-da-CID-medium.v2
Sage Weil [Sun, 2 Jun 2013 22:52:23 +0000 (15:52 -0700)]
Merge pull request #337 from dalgaaf/wip-da-CID-medium.v2

Fix several medium impact CID issues V2

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/next'
Sage Weil [Sun, 2 Jun 2013 21:48:04 +0000 (14:48 -0700)]
Merge remote-tracking branch 'gh/next'

12 years agomon: fix uninitialized fields in MMonHealth
Sage Weil [Sat, 1 Jun 2013 04:16:54 +0000 (21:16 -0700)]
mon: fix uninitialized fields in MMonHealth

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: start lease timer from peon_init()
Sage Weil [Sat, 1 Jun 2013 00:09:19 +0000 (17:09 -0700)]
mon: start lease timer from peon_init()

In the scenario:

 - leader wins, peons lose
 - leader sees it is too far behind on paxos and bootstraps
 - leader tries to sync with someone, waits for a quorum of the others
 - peons sit around forever waiting

The problem is that they never time out because paxos never issues a lease,
which is the normal timeout that lets them detect a leader failure.

Avoid this by starting the lease timeout as soon as we lose the election.
The timeout callback just does a bootstrap and does not rely on any other
state.

I see one possible danger here: there may be some "normal" cases where the
leader takes a long time to issue its first lease that we currently
tolerate, but won't with this new check in place.  I hope that raising
the lease interval/timeout or reducing the allowed paxos drift will make
that a non-issue.  If it is problematic, we will need a separate explicit
"i am alive" from the leader while it is getting ready to issue the lease
to prevent a live-lock.

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agomon: discard messages from disconnected clients
Sage Weil [Fri, 31 May 2013 05:52:21 +0000 (22:52 -0700)]
mon: discard messages from disconnected clients

If the client is not connected, discard the message.  They will
reconnect and resend anyway, so there is no point in processing it
twice (now and later).

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agomon/Paxos: adjust trimming defaults up; rename options
Sage Weil [Thu, 30 May 2013 22:59:49 +0000 (15:59 -0700)]
mon/Paxos: adjust trimming defaults up; rename options

- trim more at a time (by an order of magnitude)
- rename fields to paxos_trim_{min,max}; only trim when there are min items
  that are trimmable, and trim at most max items at a time.
- adjust the paxos_service_trim_{min,max} values up by a factor of 2.

Since we are compacting every time we trim, adjusting these up mean less
frequent compactions and less overall work for the monitor.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoOSD: *inodes_hard_limit must be less than the fd limit
Samuel Just [Fri, 31 May 2013 22:11:02 +0000 (15:11 -0700)]
OSD: *inodes_hard_limit must be less than the fd limit

Also add a comment explaining that.

Fixes: #5224
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoOSD: tell them they died if they don't exist as well
Samuel Just [Fri, 31 May 2013 21:59:27 +0000 (14:59 -0700)]
OSD: tell them they died if they don't exist as well

OSDMap::get_down_at() asserts that the osd exists.

Fixes: #5223
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'wip-osd-leaks' into next
Sage Weil [Fri, 31 May 2013 21:48:51 +0000 (14:48 -0700)]
Merge branch 'wip-osd-leaks' into next

Reviewed-by: David Zafman <david.zafman@inktank.com>
12 years agoosd: fix msg leak on shutdown in ms_dispatch
Sage Weil [Fri, 31 May 2013 21:46:54 +0000 (14:46 -0700)]
osd: fix msg leak on shutdown in ms_dispatch

Reported-by: David Zafman <david.zafman@inktank.com>
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: reset heartbeat peers during shutdown
Sage Weil [Fri, 31 May 2013 05:12:04 +0000 (22:12 -0700)]
osd: reset heartbeat peers during shutdown

This fixes a leak of the Connection's and related structures.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon/MonClient: fix leak of MMonGetVersionReply
Sage Weil [Fri, 31 May 2013 05:04:48 +0000 (22:04 -0700)]
mon/MonClient: fix leak of MMonGetVersionReply

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: fix leak of MOSDMarkMeDown
Sage Weil [Fri, 31 May 2013 05:02:07 +0000 (22:02 -0700)]
osd: fix leak of MOSDMarkMeDown

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #338 from alram/next
Sage Weil [Fri, 31 May 2013 19:47:24 +0000 (12:47 -0700)]
Merge pull request #338 from alram/next

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoupstart: handle upper case in cluster name and id 338/head
Alexandre Marangone [Fri, 31 May 2013 19:33:11 +0000 (12:33 -0700)]
upstart: handle upper case in cluster name and id

Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
12 years agodoc: Added Java example for setting protocol to HTTP.
John Wilkins [Fri, 31 May 2013 18:15:20 +0000 (11:15 -0700)]
doc: Added Java example for setting protocol to HTTP.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Text of diagram for osd_throttles.
John Wilkins [Fri, 31 May 2013 18:14:29 +0000 (11:14 -0700)]
doc: Text of diagram for osd_throttles.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Omitted text diagram, and used literal include to text file.
John Wilkins [Fri, 31 May 2013 18:14:04 +0000 (11:14 -0700)]
doc: Omitted text diagram, and used literal include to text file.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoPGLog: only add entry to caller_ops in add() if reqid_is_indexed()
Samuel Just [Fri, 31 May 2013 18:08:47 +0000 (11:08 -0700)]
PGLog: only add entry to caller_ops in add() if reqid_is_indexed()

Fixes: #5216
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoPG: don't write out pg map epoch every handle_activate_map
Samuel Just [Mon, 15 Apr 2013 23:33:48 +0000 (16:33 -0700)]
PG: don't write out pg map epoch every handle_activate_map

We don't actually need to write out the pg map epoch on every
activate_map as long as:
a) the osd does not trim past the oldest pg map persisted
b) the pg does update the persisted map epoch from time
to time.

To that end, we now keep a reference to the last map persisted.
The OSD already does not trim past the oldest live OSDMapRef.
Second, handle_activate_map will trim if the difference between
the current map and the last_persisted_map is large enough.

Fixes: #4731
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
(cherry picked from commit 2c5a9f0e178843e7ed514708bab137def840ab89)

Conflicts:

src/common/config_opts.h
src/osd/PG.cc
- last_persisted_osdmap_ref gets set in the non-static
  PG::write_info

Conflicts:

src/osd/PG.cc

12 years ago.gitignore: add directory from coverity tools 337/head
Danny Al-Gaaf [Wed, 29 May 2013 14:25:50 +0000 (16:25 +0200)]
.gitignore: add directory from coverity tools

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Server.cc: fix dereference after null check
Danny Al-Gaaf [Fri, 31 May 2013 17:07:45 +0000 (19:07 +0200)]
mds/Server.cc: fix dereference after null check

CID 716927 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "diri->snaprealm" to function
  "SnapRealm::resolve_snapname(std::string const &

Make sure not to dereference diri->snaprealm.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Server.cc: fix dereference after null check
Danny Al-Gaaf [Wed, 29 May 2013 14:13:47 +0000 (16:13 +0200)]
mds/Server.cc: fix dereference after null check

CID 716926 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing "mdr" to function
  "Server::apply_allocated_inos(MDRequest *)", which dereferences
  null "mdr->session".

Add assert for 'mdr' and assert for session in apply_allocated_inos().

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Server.cc: fix dereference after null check
Danny Al-Gaaf [Wed, 29 May 2013 13:51:48 +0000 (15:51 +0200)]
mds/Server.cc: fix dereference after null check

Add assert to fix:

CID 716925 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "straydn" to function
  "CDentry::get_dir() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Migrator.cc: fix dereference after null check
Danny Al-Gaaf [Wed, 29 May 2013 13:46:53 +0000 (15:46 +0200)]
mds/Migrator.cc: fix dereference after null check

Add asserts to check for 'dir' to fix:

CID 716924 (#1-5 of 5): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "dir" to function "operator
  <<(std::ostream &, CDir &)", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Migrator.cc: fix dereference after null check
Danny Al-Gaaf [Wed, 29 May 2013 13:37:31 +0000 (15:37 +0200)]
mds/Migrator.cc: fix dereference after null check

Add assert for 'le' to fix:

CID 716923 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "le" to function
  "LogEvent::get_start_off() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/MDCache.cc: fix dereference null return value
Danny Al-Gaaf [Wed, 29 May 2013 13:24:39 +0000 (15:24 +0200)]
mds/MDCache.cc: fix dereference null return value

Add assert to fix:

CID 716994 (#1 of 1): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "dir" when
  calling "CDir::mark_dirty(version_t, LogSegment *)".

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/MDCache.cc: fix dereference null return value
Danny Al-Gaaf [Wed, 29 May 2013 13:14:28 +0000 (15:14 +0200)]
mds/MDCache.cc: fix dereference null return value

CID 716993 (#1 of 2): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "in" when
  calling "operator <<(std::ostream &, CInode &)".

Add assert for 'in'.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/MDCache.cc: fix dereference after null check
Danny Al-Gaaf [Wed, 29 May 2013 13:04:13 +0000 (15:04 +0200)]
mds/MDCache.cc: fix dereference after null check

Add assert for 'parent' before call assert on parent->is_auth().

CID 716922 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "parent" to function
  "MDSCacheObject::is_auth() const", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/MDCache.cc: fix dereference after null check
Danny Al-Gaaf [Fri, 31 May 2013 16:56:21 +0000 (18:56 +0200)]
mds/MDCache.cc: fix dereference after null check

CID 716921 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "dir" to function
  "operator <<(std::ostream &, CDir &)", which dereferences it.

CID 716992 (#1 of 1): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null "dir"
  when calling "MDSCacheObject::is_auth() const".

Add assert for 'dir' before use it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Locker.cc: fix dereference after null check
Danny Al-Gaaf [Fri, 31 May 2013 16:49:30 +0000 (18:49 +0200)]
mds/Locker.cc: fix dereference after null check

CID 716919 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "cap" to function
  "Capability::inc_suppress()", which dereferences it.

Check for 'cap' before use it as in other places of the function.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Locker.cc: fix dereference after null check
Danny Al-Gaaf [Fri, 31 May 2013 16:42:20 +0000 (18:42 +0200)]
mds/Locker.cc: fix dereference after null check

CID 716918 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "in" to function
  "MDSCacheObject::state_test(unsigned int) const", which
  dereferences it.

Add assert for 'in == NULL' before use it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Locker.cc: fix dereference after null check
Danny Al-Gaaf [Fri, 31 May 2013 16:39:43 +0000 (18:39 +0200)]
mds/Locker.cc: fix dereference after null check

CID 716917 (#1 of 1): Dereference after null check (FORWARD_NULL)
  var_deref_model: Passing null pointer "in" to function
  "MDSCacheObject::state_test(unsigned int) const", which
  dereferences it.

Add assert for in == NULL before using it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agobench/dumb_backend.cc: check return value of lseek()
Danny Al-Gaaf [Tue, 28 May 2013 12:41:30 +0000 (14:41 +0200)]
bench/dumb_backend.cc: check return value of lseek()

CID 743395 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)
  check_return: Calling function "lseek(fd, offset, 0)" without checking
   return value. This library function may fail and return an error code.
  unchecked_value: No check of the return value of "lseek(fd, offset, 0)".

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agobench/dumb_backend.cc: check return value of posix_fadvise()
Danny Al-Gaaf [Tue, 28 May 2013 12:26:29 +0000 (14:26 +0200)]
bench/dumb_backend.cc: check return value of posix_fadvise()

CID 743396 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)
  check_return: Calling function "posix_fadvise(fd, offset, bl->length(), 4)"
   without checking return value. This library function may fail and return
   an error code.
  unchecked_value: No check of the return value of
   "posix_fadvise(fd, offset, bl->length(), 4)".

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agosmall_io_bench_fs.cc: check return value of FileStore::mkfs/mount()
Danny Al-Gaaf [Tue, 28 May 2013 12:08:09 +0000 (14:08 +0200)]
small_io_bench_fs.cc: check return value of FileStore::mkfs/mount()

CID 743398 (#1 of 1): Unchecked return value (CHECKED_RETURN)
  check_return: Calling function "FileStore::mount()" without
   checking return value (as is done elsewhere 4 out of 5 times).
  unchecked_value: No check of the return value of "fs.FileStore::mount()"

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Locker.cc: fix explicit null dereferenced
Danny Al-Gaaf [Fri, 31 May 2013 16:28:07 +0000 (18:28 +0200)]
mds/Locker.cc: fix explicit null dereferenced

CID 716916 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
  var_deref_model: Passing null pointer "in" to function
  "CInode::is_head()", which dereferences it.

Add assert.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agomds/Server.cc: fix explicit null dereferenced
Danny Al-Gaaf [Tue, 28 May 2013 10:55:19 +0000 (12:55 +0200)]
mds/Server.cc: fix explicit null dereferenced

CID 716928 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
  var_deref_model: Passing null pointer "session" to function
  "Session::trim_completed_requests(tid_t)", which dereferences it.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agorgw: only append prefetched data if reading from head
Yehuda Sadeh [Thu, 30 May 2013 19:58:11 +0000 (12:58 -0700)]
rgw: only append prefetched data if reading from head

Fixes: #5209
Backport: bobtail, cuttlefish
If the head object wrongfully contains data, but according to the
manifest we don't read from the head, we shouldn't copy the prefetched
data. Also fix the length calculation for that data.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agorgw: don't copy object idtag when copying object
Yehuda Sadeh [Thu, 30 May 2013 16:34:21 +0000 (09:34 -0700)]
rgw: don't copy object idtag when copying object

Fixes: #5204
When copying object we ended up also copying the original
object idtag which overrode the newly generated one. When
refcount put is called with the wrong idtag the count
does't go down.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoMerge branch 'wip-5046'
Samuel Just [Fri, 31 May 2013 05:39:12 +0000 (22:39 -0700)]
Merge branch 'wip-5046'

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agomon: destroy MonitorDBStore before g_ceph_context
Sage Weil [Fri, 31 May 2013 04:43:50 +0000 (21:43 -0700)]
mon: destroy MonitorDBStore before g_ceph_context

Put it on the heap so that we can destroy it before the g_ceph_context
cct that it references.  This fixes a crash like

*** Caught signal (Segmentation fault) **
in thread 4034a80
ceph version 0.63-204-gcf9aa7a (cf9aa7a0037e56eada8b3c1bb59d59d0bfe7bba5)
1: ceph-mon() [0x59932a]
2: (()+0xfcb0) [0x4e41cb0]
3: (Mutex::Lock(bool)+0x1b) [0x6235bb]
4: (PerfCountersCollection::remove(PerfCounters*)+0x27) [0x6a0877]
5: (LevelDBStore::~LevelDBStore()+0x1b) [0x582b2b]
6: (LevelDBStore::~LevelDBStore()+0x9) [0x582da9]
7: (main()+0x1386) [0x48db16]
8: (__libc_start_main()+0xed) [0x658076d]
9: ceph-mon() [0x4909ad]

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: Updated to reflect glossary usage.
John Wilkins [Fri, 31 May 2013 03:28:22 +0000 (20:28 -0700)]
doc: Updated to reflect glossary usage.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated title and syntax to reflect glossary usage.
John Wilkins [Fri, 31 May 2013 03:27:42 +0000 (20:27 -0700)]
doc: Updated title and syntax to reflect glossary usage.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated to reflect glossary usage.
John Wilkins [Fri, 31 May 2013 03:27:01 +0000 (20:27 -0700)]
doc: Updated to reflect glossary usage.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated title to reflect glossary usage.
John Wilkins [Fri, 31 May 2013 03:26:03 +0000 (20:26 -0700)]
doc: Updated title to reflect glossary usage.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated conf with ServerAlias for S3 subdomains.
John Wilkins [Fri, 31 May 2013 03:25:25 +0000 (20:25 -0700)]
doc: Updated conf with ServerAlias for S3 subdomains.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated object storage quick start for S3-style subdomains.
John Wilkins [Fri, 31 May 2013 03:24:55 +0000 (20:24 -0700)]
doc: Updated object storage quick start for S3-style subdomains.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated text with new glossary terms.
John Wilkins [Fri, 31 May 2013 03:22:58 +0000 (20:22 -0700)]
doc: Updated text with new glossary terms.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Removed FAQ from the index.
John Wilkins [Fri, 31 May 2013 03:21:48 +0000 (20:21 -0700)]
doc: Removed FAQ from the index.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Removed FAQ doc. It's now in the wiki.
John Wilkins [Fri, 31 May 2013 03:21:20 +0000 (20:21 -0700)]
doc: Removed FAQ doc. It's now in the wiki.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodebian: guard upstart {start,stop} with -x check
Sage Weil [Fri, 31 May 2013 00:23:36 +0000 (17:23 -0700)]
debian: guard upstart {start,stop} with -x check

Sigh.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'wip-deb-removal' into next
Sage Weil [Fri, 31 May 2013 00:17:43 +0000 (17:17 -0700)]
Merge branch 'wip-deb-removal' into next

Tested by Tamil, Gary.

12 years agorbd/kernel.sh: quit looking for snapshot sysfs entries
Alex Elder [Thu, 30 May 2013 23:10:46 +0000 (18:10 -0500)]
rbd/kernel.sh: quit looking for snapshot sysfs entries

The sysfs entries for snapshots went away a while ago, and this
script used them to verify sizes matched what was expected.

Instead, look at the mapped size of the snapshot in the places
that used to look for the image's snapshot sysfs files.

Also, switch over to using "udevadm settle" rather than a delay to
wait for udev to do its thing.  Insert them at more appropriate
places--right after "rmd map" commands and before and after the
"rbd unmap" calls.

Stop doing the manual refresh calls as well.  The osd will trigger
refreshes whenever the image size or shapshot context changes.

Finally, the cleanup routine is called initially, when there really
isn't expected to be anything to clean up.  Change the rbd commands
to run there conditionally, only if the target of the command
already exists.

Signed-off-by: Alex Elder <elder@inktank.com>
12 years agoMerge pull request #334 from ceph/wip-mon
Sage Weil [Thu, 30 May 2013 23:27:02 +0000 (16:27 -0700)]
Merge pull request #334 from ceph/wip-mon

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
12 years agodebian: add radosgw.postinst
Sage Weil [Thu, 30 May 2013 23:22:54 +0000 (16:22 -0700)]
debian: add radosgw.postinst

Start radosgw-all job.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodebian: invoke-rc.d does not work with upstart jobs
Sage Weil [Thu, 30 May 2013 23:22:40 +0000 (16:22 -0700)]
debian: invoke-rc.d does not work with upstart jobs

Broken by 19c5ac37ef87aeb3d3c30aa35cd61b6f3a8414bf.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agofix test users of LevelDBStore
Sage Weil [Thu, 30 May 2013 22:53:35 +0000 (15:53 -0700)]
fix test users of LevelDBStore

Need to pass in cct.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomove log, ondisklog, missing from PG to PGLog
Loic Dachary [Wed, 22 May 2013 12:14:26 +0000 (14:14 +0200)]
move log, ondisklog, missing from PG to PGLog

PG::log, PG::ondisklog, PG::missing are moved from PG to a new PGLog
class and are made protected data members. It is a preliminary step
before writing unit tests to cover the methods that have side effects
on these data members and define a clean PGLog API. It improves
encapsulation and does not change any of the logic already in
place.

Possible issues :

* an additional reference (PG->PGLog->IndexedLog instead of
  PG->IndexedLog for instance) is introduced : is it optimized ?

* rewriting log.log into pg_log.get_log().log affects the readability
  but should be optimized and have no impact on performances

The guidelines followed for this patch are:

* const access to the data members are preserved, no attempt is made
  to define accessors

* all non const methods are in PGLog, no access to non const methods of
  PGLog::log, PGLog::logondisk and PGLog::missing are provided

* when methods are moved from PG to PGLog the change to their
  implementation is restricted to the minimum.

* the PG::OndiskLog and PG::IndexedLog sub classes are moved
  to PGLog sub classes unmodified and remain public

A const version of the pg_log_t::find_entry method was added.

A const accessor is provided for PGLog::get_log, PGLog::get_missing,
PGLog::get_ondisklog but no non-const accessor.

Arguments are added to most of the methods moved from PG to PGLog so
that they can get access to PG data members such as info or log_oid.

The PGLog method are sorted according to the data member they modify.

//////////////////// missing ////////////////////

* The pg_missing_t::{got,have,need,add,rm} methods are wrapped as
  PGLog::missing_{got,have,need,add,rm}

//////////////////// log ////////////////////

* PGLog::get_tail, PGLog::get_head getters are created

* PGLog::set_tail, PGLog::set_head, PGLog::set_last_requested setters
  are created

* PGLog::index, PGLog::unindex, PGLog::add wrappers,
  PGLog::reset_recovery_pointers are created

* PGLog::clear_info_log replaces PG::clear_info_log

* PGLog::trim replaces PG::trim

//////////////////// log & missing ////////////////////

* PGLog::claim_log is created with code extracted from
  PG::RecoveryState::Stray::react.

* PGLog::split_into is created with code extracted from
  PG::split_into.

* PGLog::recover_got is created with code extracted from
  ReplicatedPG::recover_got.

* PGLog::activate_not_complete is created with code extracted
  from PG::active

* PGLog:proc_replica_log is created with code extracted from
  PG::proc_replica_log

* PGLog:write_log is created with code extracted from
  PG::write_log

* PGLog::merge_old_entry replaces PG::merge_old_entry
  The remove_snap argument is used to collect hobject_t

* PGLog::rewind_divergent_log replaces PG::rewind_divergent_log
  The remove_snap argument is used to collect hobject_t
  A new PG::rewind_divergent_log method is added to call
  remove_snap_mapped_object on each of the remove_snap
  elements

* PGLog::merge_log replaces PG::merge_log
  The remove_snap argument is used to collect hobject_t
  A new PG::merge_log method is added to call
  remove_snap_mapped_object on each of the remove_snap
  elements

* PGLog:write_log is created with code extracted from PG::write_log. A
  non-static version is created for convenience but is a simple
  wrapper.

* PGLog:read_log replaces PG::read_log. A non-static version is
  created for convenience but is a simple wrapper.

* PGLog:read_log_old replaces PG::read_log_old.

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

Signed-off-by: Loic Dachary <loic@dachary.org>
12 years agoos/WBThrottle: remove asserts in clear()
Samuel Just [Thu, 30 May 2013 22:27:27 +0000 (15:27 -0700)]
os/WBThrottle: remove asserts in clear()

cur_ios, etc may not be zero due to an in progress
flush.

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
12 years agoMerge pull request #335 from ceph/wip-5176
Sage Weil [Thu, 30 May 2013 22:04:21 +0000 (15:04 -0700)]
Merge pull request #335 from ceph/wip-5176

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoos/LevelDBStore: add perfcounters 335/head
Sage Weil [Thu, 30 May 2013 21:57:42 +0000 (14:57 -0700)]
os/LevelDBStore: add perfcounters

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: make compaction bounds overlap
Sage Weil [Thu, 30 May 2013 21:36:41 +0000 (14:36 -0700)]
mon: make compaction bounds overlap

When we trim items N to M, compact over range (N-1) to M so that the
items in the queue will share bounds and get merged.  There is no harm in
compacting over a larger range here when the lower bound is a key that
doesn't exist anyway.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoos/LevelDBStore: merge adjacent ranges in compactionqueue
Sage Weil [Thu, 30 May 2013 21:26:42 +0000 (14:26 -0700)]
os/LevelDBStore: merge adjacent ranges in compactionqueue

If we get behind and multiple adjacent ranges end up in the queue, merge
them so that we fire off compaction on larger ranges.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: note openstack changes for Grizzly
Josh Durgin [Thu, 30 May 2013 21:17:35 +0000 (14:17 -0700)]
doc: note openstack changes for Grizzly

These are just for the cinder configuration, nothing else changed.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
12 years agoAdded -r option to usage
Christophe Courtaut [Wed, 29 May 2013 09:07:24 +0000 (11:07 +0200)]
Added -r option to usage

Added the -r option, which starts the radosgw and apache2 to access it
to the usage message.

Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
12 years agoMerge pull request #333 from ceph/wip-5203
Sage Weil [Thu, 30 May 2013 18:42:45 +0000 (11:42 -0700)]
Merge pull request #333 from ceph/wip-5203

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