Commit Graph

19988 Commits

Author SHA1 Message Date
Sage Weil
0d9b558f5c debian: arch linux-any
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-27 20:25:13 -07:00
Laszlo Boszormenyi (GCS)
89492329d1 debian: build with libnss instead of crypto++
Signed-off-by: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
2012-06-27 20:25:13 -07:00
Sage Weil
9d7f048073 doc/config-cluster/authentication: keyring default locations, simplify key management
- keyrings have new default locations that everyone should use.
- the user key setup is vastly simplified if you use the
  'ceph auth get-or-create' command.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-27 17:49:23 -07:00
Joao Eduardo Luis
16d55651e8 mon: MonmapMonitor: Use default port when the specified on 'add' is zero
Fixes a bug triggered by using the ceph tool to 'mon add' with a port set
to zero. We now default to the monitor's default port (6789) instead, and
we will fail if that port is already assigned to some other monitor.

Fixes: bug #2661

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2012-06-27 16:20:47 -07:00
Samuel Just
17f433aa56 OSD: disconnect_session_watches: handle race with watch disconnect
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Tested-by: Stefan Priebe <s.priebe@profihost.ag>
2012-06-27 07:10:32 -07:00
Greg Farnum
840ae24449 mon: don't tick the PaxosServices if we are currently slurping.
They aren't prepared to deal with the on-disk state being inconsistent.

Signed-off-by: Greg Farnum <greg@inktank.com>
2012-06-25 14:45:06 -07:00
Sage Weil
ef6beec992 objecter: do not feed session to op_submit()
The linger_send() method was doing this, but it is problematic because the
new Op doesn't get its pgid or acting vector set correctly.  The result is
that the request goes to the right OSD, but has the wrong pgid, and makes
the OSD complain about misdirected requests and drop it on the floor.  It
didn't affect the test results because we weren't testing whether the
watch was working in that case.

Instead, we'll just recalculate and get the same value the parent linger
op did.  Which is fine, and goes through all the usual code paths so
nothing is missed.

Also, increment num_homeless_ops before we recalc_op_target(), so that we
don't (harmlessly, but confusingly) underflow.

Fixes: #2022
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-25 14:44:30 -07:00
Samuel Just
4e45d60f6e ObjectStore::Transaction: initialize pool_override in all constructors
use_pool_override and pool_override weren't initialized in these two
constructors.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-24 13:33:36 -07:00
Samuel Just
9fcc3dee9a osd_types.cc: remove hobject_t decode asserts
These asserts were useful for ensuring that pool is passed
in in the correct places, but they prevent the encoder
testing from working.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-21 17:10:30 -07:00
Sage Weil
80649d08b9 mon: note that monmap may be reencoded later
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:30 -07:00
Sage Weil
77d836c5b8 mon: encoding new monmap using quorum feature set
It is probably unlikely that someone will expand the mon cluster with a
mixed feature set, but we know the quorum features here, so we should use
them.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:30 -07:00
Sage Weil
de5b323659 mon: conditionally encode mon features for remote mon
The only time we encode these is when forwarding messages.  Encoding using
the destination's feature set.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:30 -07:00
Sage Weil
c399d903dd mon: conditionally encode PGMap[::Incremental] with quorum features
This allows a mon cluster to transition to the new encoding during a
rolling upgrade.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:30 -07:00
Sage Weil
0aaf7334a9 mon: conditionally encode auth incremental with quorum feature bits
If the quorum does not yet all have the MONENC feature, stick to the old
encoding.

It might be more polite to require a super-quorum before switching over,
and take note so that thereafter we can stick to the new encoding, but
that has more moving parts and I'm not sure it's worth the complexity.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:29 -07:00
Sage Weil
06288a9d10 mon: track intersection of quorum member features
When we form a quorum, also note the intersection of the quorum members'
feature bits.  This will inform decisions about what encodings we use.

This is an imperfect strategy because the quorum may change, and we may
have a mon with old code join in and not understand what is going on.
However, it does ensure that a majority of the members run new code, so in
the absence of other failures we can make progress.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:29 -07:00
Sage Weil
2355b233ea mon: conditionally encode old monmap when peer lacks feature
This allows a rolling upgrade from 0.47.2 to 0.48.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-21 17:10:29 -07:00
Samuel Just
2fe9816305 OSD,PG,ObjectStore: handle messages with old hobject_t encoding
Messages that embed an hobject_t need to have the pool field fixed
on messages from old peers.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-21 17:10:29 -07:00
Sage Weil
448f5b02b1 logrotate: reload all upstart instances
upstart doesn't let you wildcard all instances of a given job, so we
slog through initctl list output, and reload any running daemons.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Tommi Virtanen <tv@inktank.com>
2012-06-21 12:43:00 -07:00
Sage Weil
a85a15fef4 Merge remote-tracking branch 'gh/stable' into next 2012-06-21 08:20:17 -07:00
Sage Weil
c467d9d1b2 v0.47.3 2012-06-20 10:57:41 -07:00
Sage Weil
17dcf60510 filestore: disable 'filestore fiemap' by default
We've seen this failing on both btrfs (Guido) and XFS (Oliver).  This works
around #2535.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-20 10:02:36 -07:00
Samuel Just
88c7629e04 OSD: clear_temp: split delete into many transactions
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2012-06-19 17:34:20 -07:00
Yehuda Sadeh
145d1c146b rgw: set s->header_ended before flushing formatter
otherwise we don't account the formatter in s->bytes_sent.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-06-19 13:26:02 -07:00
Yehuda Sadeh
8a4e2a116b rgw: log user and not bucket owner for service operations
For operations that are done on the service (e.g., list buckets)
we need to log the user that did the operation, and not the bucket
owner.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-06-19 13:26:00 -07:00
Yehuda Sadeh
282e2260f9 rgw: initalize s->enable_usage_log
Missing initialization, we ended up not logging every operation.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-06-19 13:25:58 -07:00
Sage Weil
f3f144adf1 osd: use derr (instead of cerr) for convertfs
This will appear in the log *and* stderr (if we're running in the
foreground).

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-19 10:12:40 -07:00
Sage Weil
74658dfa2f osd: close stderr on daemonize
This spams stderr in an ugly way.  Users should look at the logs.

In particular, filestore upgrades spam the console, which is unpleasant.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-19 10:11:01 -07:00
Samuel Just
4ec9633653 PG: improve find_best_info
07f853db39 is actually too conservative,
it suffices to find any info with a last_update of at least the least
last_update from the last period to go active.  An info from a previous
interval is acceptable if the last interval never reported a commited
operation and thus still has the same last_update.

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2012-06-19 10:49:48 -07:00
Samuel Just
0d8970fc81 PG: reg_last_pg_scrub on pg resurrection
This may solve the unreg_last_pg_scrub assert.

see #2453.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-18 14:33:50 -07:00
Samuel Just
b0e66b70cb ceph_osd: move auto-upgrade to after fork
Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-18 14:33:33 -07:00
Sage Weil
37e56e0123 filestore: make disk format upgrade warning less scary, more informative
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Sam Just <sam.just@inktank.com>
2012-06-18 14:07:20 -07:00
Sage Weil
030a2e3bf4 mon: include quorum in ceph status
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-18 14:02:29 -07:00
Sage Weil
2fc2cf03b3 mon: gracefully handle slow 'ceph -w' clients
If we are sending log updates to a client (ceph -w), and they are far
enough behind to drop behind first_committed, include a friendly message
in their stream but continue.

Drop useless return value from _create_sub_incremental().  Assert that we
can read the state file.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-18 14:00:06 -07:00
Samuel Just
51fcef2465 PG: best_info must have a last_epoch_started as high as any other info
We disregard incomplete infos during find_best_info, but we can't an
info with a last_epoch_started less that of the incomplete info.

This should avoid cases like #2462.  In that case, it appears that
a peer with empty info/log was chosen as authoritative even though
there was a non-empty incomplete peer.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2012-06-18 11:18:30 -07:00
Laszlo Boszormenyi (GCS)
95ac5baed4 debian: fix python-ceph depends
Signed-off-by: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
2012-06-17 13:21:24 -07:00
Laszlo Boszormenyi (GCS)
d7fe0e3fe4 debian: update homepage url
Signed-off-by: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
2012-06-17 13:21:19 -07:00
Sage Weil
82cb3d61ff filestore: fix 'omap' collection skipping
The if/else if/... structure was skipping this test if the file system
didn't support d_type.

Fixes: #2598
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-17 13:20:59 -07:00
Sage Weil
e3b6957dd0 run-cli-test: use new pip incantation
http://www.pip-installer.org/en/latest/news.html#id1

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-17 11:15:32 -07:00
Sage Weil
3d4ba4319c cls_rbd: do not pass snapid_t to vargs
On squeeze,

warning: cls_rbd.cc:534: cannot pass objects of non-POD type ‘struct snapid_t’ through ‘...’; call will abort at runtime

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-17 09:07:41 -07:00
Sage Weil
5efaa8d779 msg: fix buffer overflow in ipv6 addr parsing
Noticed because of failing i386 unit tests for long addrs; x86_64 passed
fine.  Sigh.  FTR, the failing address was

	2001:0db8:85a3:0000:0000:8a2e:0370:7334

Sadly the full length addrs don't turn it up on x86_64, still, nor does
valgrind notice.  But, this fixes it on i386.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-16 20:09:04 -07:00
Sage Weil
f8a196fb7d cls_rbd: drop useless snapshot metadata helpers
Now that cls_rbd_snap is encodable, we don't need these helpers; get_key()
will suffice.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-16 07:34:00 -07:00
Sage Weil
b08d7ba972 cls_rbd: use encode macros for on-disk snap metadata
This will let us version this encoding later when we add new information
and features, like a per-snap parent.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-16 07:33:43 -07:00
Sage Weil
1e899d08e6 filejournal: make less noise about open failures
The callers report errors and pass up errors, so do not spam stderr with
this.  Fixes the confusion that sparked #2595.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-15 14:48:22 -07:00
Yehuda Sadeh
b415fd219e rgw: obj copy respects -metadata-directive
Fixes #2542. The old behavior just merged src object attrs
and provided attributes. The new (and correct) behavior looks
at the x-[amz|rgw|...]-metadata-directive and either copies
the source attrs, or replaces them with the provided attrs.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2012-06-15 13:44:09 -07:00
Sage Weil
b5de839808 osd: optional verify that sparse_read holes are zero-filled
This should help us track down/verify #2535.  It seems to happen on several
different systems, but we haven't figured out which ones yet.

This detects the bug, but does not attempt to correct it.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-15 11:54:19 -07:00
Sage Weil
1156f9435d buffer: add list and ptr is_zero() method
Simple helper to check if a buffer is all zeros.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-15 11:54:17 -07:00
Sage Weil
9d4ce4bce6 filestore: disable 'filestore fiemap' by default
We've seen this failing on both btrfs (Guido) and XFS (Oliver).  This works
around #2535.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-15 10:00:54 -07:00
Sage Weil
01f480393c Merge branch 'wip-radosgw-upstart' 2012-06-14 15:17:03 -07:00
Sage Weil
b44092f557 radosgw: stop startup timer on failed start
This fixes crashes like

    -1> 2012-06-14 15:04:31.733009 7f544e18c780 -1 Couldn't init storage provider (RADOS)
     0> 2012-06-14 15:04:31.734110 7f544e18c780 -1 common/Timer.cc: In function 'SafeTimer::~SafeTimer()' thread 7f544e18c780 time 2012-06-14 15:04:31.733020
common/Timer.cc: 57: FAILED assert(thread == __null)

 ceph version 0.47.2-481-g6f30f1f (commit:6f30f1fcdecd6c9390d4678c754dadd305165e3e)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x80) [0x5399a0]
 2: (SafeTimer::~SafeTimer()+0x39) [0x533e77]
 3: (main()+0x6f5) [0x51bc9d]
 4: (__libc_start_main()+0xfd) [0x7f544b38eead]
 5: /home/sage/src/ceph/src/.libs/lt-radosgw() [0x4f9e09]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-14 15:09:16 -07:00
Sage Weil
6f30f1fcde upstart: make id charset include - _ and .
Signed-off-by: Sage Weil <sage@inktank.com>
2012-06-14 15:04:07 -07:00