Commit Graph

33031 Commits

Author SHA1 Message Date
Sage Weil
124a663a0b doc/release-notes: a bit of prose about firefly
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-22 08:27:35 -07:00
Sage Weil
6230146238 Merge pull request #1651 from enovance/wip-brag
Few bug fixes in ceph-brag

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-21 20:49:43 -07:00
Sage Weil
025ab9f47b doc/release-notes: v0.80
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-21 18:20:56 -07:00
Josh Durgin
c80f128c12 Merge pull request #1707 from ceph/wip-rbd-test
rbd: fix tests for cache pools

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-04-21 16:53:35 -07:00
Sage Weil
a80e66f932 qa/workunit/rbd/import_export.sh: skip list-objects tests with tiering
Listing objects isn't reliable with cache pools; skip that part of the
test if we see that rbd has tiering enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-21 16:47:10 -07:00
Sage Weil
9d64ac6608 qa/workunit/rbd/copy.sh: do not delete/recreate rbd pool
Among other things, it breaks when tiering is enabled.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-21 16:26:23 -07:00
John Wilkins
c3833d7c41 doc: Fixed syntax to include 'pool'.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2014-04-21 15:43:23 -07:00
Samuel Just
f44e2c82e1 Merge pull request #1703 from ceph/wip-7942
Wip 7942

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-21 15:13:22 -07:00
Samuel Just
95394b60b8 ReplicatedPG::do_op: check for blocked snapset obj
Otherwise, we might use an invalid snapset in find_object_context.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 15:11:15 -07:00
Samuel Just
8259d87493 ReplicatedPG: in trim, grab w locks on obc and snapset_obc
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 15:11:12 -07:00
Samuel Just
0d5a539358 ReplicatedPG: if we get ENOENT on clone, remove clone from snapset
Fixes: #7916
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 15:11:04 -07:00
Samuel Just
f3df50188b ReplicatedPG: do not create whiteout clones
First, make_writeable treats whiteout heads like snapdir for
cloning purposes.  Second, to ensure that we send the correct
deletes on flush to the backing pool, we instead use oi.snaps
on any clone we are flushing to infer the snaps during which
head did not exist and send a delete as appropriate prior to
the copy_from.

Normally, we'd have a problem if the delete and the copy_from
completed, but an interval change intervened before the dirty
flag was cleared since we'd end up re-deleting the object.
To avoid that, we use the CEPH_OSD_FLAG_ORDERSNAP flag.

Additionally, we will use the correct snap_seq on the delete
or flush as appropriate to ensure that the previous clone
gets created with the same clone id as in the cache pool.

Fixes: #7942
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 15:11:04 -07:00
Samuel Just
caa63565dd ReplicatedPG,rados: add CEPH_OSD_[COPY_FROM]_MAP_SNAP_TO_CLONE
When promoting a clone, we want to use the provided snapid to specify
specify the clone id directly.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 15:11:01 -07:00
Sage Weil
bd39ecd610 Merge pull request #1705 from ceph/wip-8124
Wip 8124

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-21 14:28:43 -07:00
Sage Weil
2cb0bac697 qa/workunits/cephtool/test.sh: make set pg_num test non-racy
Loop while the pool is creating.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2014-04-21 14:18:21 -07:00
Samuel Just
506dce845b ReplicatedPG: do not use shard for hit_set object names
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
f7e7588025 ReplicatedPG::agent_load_hit_sets: take ondisk_read_lock
Otherwise, the hit_set might be not yet written due to a recently
completed recovery.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
16eccdd313 PG,PGLog: update hit_set during peering
Fixes: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
5821cc7e55 osd/: propogate hit_set history with repop
We don't actually send the whole info on each repop, just the log
entries, updated stats, and a few other bits.  For hit_set ops, we need
to also communicate the new hit_set history status atomically with the
log entries and the transaction.  Thus, we add a channel for an optional
pg_hit_set_history_t field in PGBackend::submit_transaction interface
and associated messages and implementations to update the hit_set info
field along with the log entries.

This also means that hit_set_(persist|trim) update an
updated_hit_set_history field on the OpContext instead of directly
modifying the info field.

Fixes: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
7bb2011542 encoding: use unqualified name for encode/decode in boost::optional encoding
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
e4a048c42a ECMsgTypes::ECSubWrite: fix at_version indentation
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:53:04 -07:00
Samuel Just
ddf1e986dc osd: track the number of hit_set archive objects in a pg
Also, use this value in agent_choose_mode instead of the max
number.

Related: #8124
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:52:58 -07:00
Samuel Just
1fb90c94b3 ReplicatedPG::hit_set_persist: clean up degraded check
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-21 10:46:11 -07:00
Sage Weil
7a61cdbfd5 buffer: adjust #include order
The pthread.h include is somehow clobbering things, although it is not
clear how.  :(

Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-18 17:33:52 -07:00
Samuel Just
74f4d57347 Merge pull request #1696 from ceph/wip-8097
buffer: use Mutex instead of Spinlock for raw crcs

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-18 15:12:09 -07:00
Sage Weil
0234bcfca7 Merge pull request #1697 from ceph/wip-num_objects_omap
osd_types::object_stat_sum_t: fix add/sub for num_objects_omap

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-18 14:24:06 -07:00
Sage Weil
e087eae868 Merge pull request #1695 from ceph/wip-8153
Revert "ReplicatedPG::get_snapset_context: assert snap obj is not missin...

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-18 14:09:37 -07:00
Samuel Just
f9e9365fda Revert "ReplicatedPG::get_snapset_context: assert snap obj is not missing"
This breaks mark_lost_unfound_revert.

This reverts commit 0d2177a180.
2014-04-18 13:59:22 -07:00
Sage Weil
dec77c3407 Merge pull request #1693 from ceph/wip-7997
mon: fix get_version race (more)

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-04-18 13:54:30 -07:00
Greg Farnum
82edda23aa test: handle the create-pg delay when testing cache split syntax
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-18 13:41:00 -07:00
Sage Weil
d07ce84148 Merge pull request #1692 from ceph/wip-7784
mon: OSDMonitor: HEALTH_WARN on 'mon osd down out interval == 0'

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-18 11:47:59 -07:00
Joao Eduardo Luis
b2112d5087 mon: OSDMonitor: HEALTH_WARN on 'mon osd down out interval == 0'
A 'status' or 'health' request will return a HEALTH_WARN whenever the
monitor handling the request has the option set to zero.

Fixes: 7784

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-04-18 19:15:52 +01:00
Sage Weil
09985d25a8 mon: wait for PaxosService readable in handle_get_version
We were waiting for the election to finish, but we need to *also* wait for
paxos to recover.  Being a peon or leader is not sufficient and we may
return a map that is still old.

Fixes: #7997
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-18 11:12:23 -07:00
Sage Weil
7251983d8e Merge pull request #1676 from ceph/wip-8092
Wip 8092

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 21:21:59 -07:00
Sage Weil
375e4ee8e8 Merge pull request #1678 from ceph/wip-8108
osd: OSDMap: have osdmap json dump print valid boolean instead of string

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 21:19:33 -07:00
Gregory Farnum
2dd2b11f1f Merge pull request #1683 from ceph/wip-mds-op-prio
mds: dynamically adjust priority of committing dirfrags

Reviewed-by: Greg Farnum <greg@inktank.com>
2014-04-17 17:53:40 -07:00
Sage Weil
dea701125d Merge pull request #1689 from ceph/wip-8091
Wip 8091

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 14:51:18 -07:00
Samuel Just
7e697b1bc2 ReplicatedPG::recover_replicas: do not recover clones while snap obj is missing
Otherwise, we cannot safely read the snapset for the clone.

Fixes: #8091
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-17 14:46:34 -07:00
Samuel Just
3ad51c8ed3 osd_types::object_stat_sum_t: fix add/sub for num_objects_omap
Introduced in a130a4452e
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-04-17 13:31:09 -07:00
Samuel Just
79e7db7505 Merge pull request #1688 from ceph/wip-8048
osd/ReplicatedPG: check clones for degraded

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-04-17 13:18:21 -07:00
Sage Weil
ac014510ff Merge pull request #1685 from ceph/wip-8132
mon: set leader commands prior to first election

Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
2014-04-17 13:18:01 -07:00
Sage Weil
3d0e80acd9 osd/ReplicatedPG: check clones for degraded
We check whether the head is degraded, and we check whether a clone is
unreadable, but in the case where we have a cache op on a degraded object,
we don't check.  That leads to an assert when the repop hits the replica
and the object is in the peer's missing set.

Fix this by adding a check on the clone when write_ordered is true.  Note
that checking write_ordered is better than whether it is a cache op because
we want to preserve write ordering even for reads that are flagged by the
client.

Fixes: #8048
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-17 13:11:54 -07:00
Sage Weil
224a0f5749 Merge pull request #1674 from ceph/wip-8086
ReplicatedPG::agent_work: skip hitset objects before getting object cont...

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 12:49:58 -07:00
Yehuda Sadeh
26f4d5b061 Merge pull request #1687 from ceph/wip-8130
osdc/Objecter: fix osd target for newly-homeless op

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2014-04-17 10:50:40 -07:00
Sage Weil
93c0515fd9 osdc/Objecter: fix osd target for newly-homeless op
If we recalculate the mapping and find that there is no primary, we need
to set the 'osd' field to -1.  Otherwise, the caller will try to resend
to a dead session with bad results.

This was introduced in the refactor 860d72770c.

Fixes: #8130
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-17 10:48:26 -07:00
Sage Weil
fe71a12d78 Merge pull request #1684 from onlyjob/debian
spelling corrections

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 10:07:40 -07:00
Sage Weil
b0338ca361 Merge pull request #1671 from ceph/wip-7699
mds: Fix respawn (add path resolution)

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 10:05:22 -07:00
Sage Weil
3a794d5fe1 Merge pull request #1677 from ceph/wip-poolset-noblock
mon: Don't block on EAGAIN from `osd pool set`

Reviewed-by: Sage Weil <sage@inktank.com>
2014-04-17 10:03:26 -07:00
Sage Weil
881680ee93 mon: set leader commands prior to first election
If we have just started and receive a command, we currently will reply with
EINVAL because the leader commands are empty.  Note that this race is very
difficult to reach because the (old) peon needs to forward a command to
the mon while it still thinks it has quorum, and the message needs to get
sent after the leader mon has restarted and reset its connection but before
it has declared a new election.

To fix this, we should assume at startup time that our commands are
valid.  If it is an internal command that does not require quorum, that
is fine.  If it does require quorum, we will retry the command after the
election completes and we will revalidate the command then.

Fixes: #8132
Signed-off-by: Sage Weil <sage@inktank.com>
2014-04-17 09:33:44 -07:00
John Spray
40e8dbbb6b mon: EBUSY instead of EAGAIN when pgs creating
In 69321bf, EAGAIN changed behaviour to block indefinitely
rather than returning to user.  Change the return for
`osd pool set` operations that are blocked by creating PGs
to return EBUSY instead of EAGAIN, so that they are excepted
from this blocking behaviour.

Signed-off-by: John Spray <john.spray@inktank.com>
2014-04-17 15:28:22 +01:00