]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Wed, 26 Nov 2008 20:39:36 +0000 (12:39 -0800)]
objecter: scan_pgs even on original full map
We may have queued ops before getting _any_ map; those still need to
be kicked.
Sage Weil [Wed, 26 Nov 2008 20:18:10 +0000 (12:18 -0800)]
osd: ensure target osd is still up when sending MPGRemoves
Sage Weil [Wed, 26 Nov 2008 19:23:15 +0000 (11:23 -0800)]
osd: move stats into PG::Info (disk format change)
We want the pg stats to propagate along with last_update. Do so
in merge_log.
Also, stop doing delayed stats update on primary; we always update
the in-core copy of Info, and only delay applying the transaction
to disk. At least currently.
Sage Weil [Wed, 26 Nov 2008 18:55:54 +0000 (10:55 -0800)]
osd: (re)set degraded flag on activate
This ensures the bit is properly set on newly created PGs..
Sage Weil [Wed, 26 Nov 2008 18:55:14 +0000 (10:55 -0800)]
timer: discard unfired events on shutdown
Mostly this just cleans up valgrind leak check output.
Sage Weil [Wed, 26 Nov 2008 18:44:48 +0000 (10:44 -0800)]
client: fix use-after-free
put_node at the end.
Sage Weil [Wed, 26 Nov 2008 18:35:23 +0000 (10:35 -0800)]
msgr: discard queued messages when closing pipe
These were leaking whenever we, say, did mark_down().
Sage Weil [Wed, 26 Nov 2008 18:19:08 +0000 (10:19 -0800)]
objectcacher: do callbacks _last_ to avoid a use-after-free
The callback may call back into release_set, so do not assume any pointers
will remain valid after the callback.
Sage Weil [Wed, 26 Nov 2008 17:58:32 +0000 (09:58 -0800)]
mds: initialize CInode::loner_cap when twiddling filelock states after reconnect
loner_cap must either be defined or not defined to match the lock states.
Sage Weil [Wed, 26 Nov 2008 17:57:35 +0000 (09:57 -0800)]
objecter: use full osdmap to get started
Previously we requested and then decoded the full history of incrementals,
a big waste of time during startup.
Sage Weil [Wed, 26 Nov 2008 18:07:54 +0000 (10:07 -0800)]
osd: ensure 0-byte object created by push
Specifically, a zero-length HEAD object whose snapset we care
about.
Sage Weil [Wed, 26 Nov 2008 16:28:11 +0000 (08:28 -0800)]
osd: mark repops aborteds in on_shutdown
Otherwise the op_modify_ondisk() completion gets confused.
Sage Weil [Wed, 26 Nov 2008 01:31:34 +0000 (17:31 -0800)]
dstart: show filestore ops
Sage Weil [Wed, 26 Nov 2008 01:30:15 +0000 (17:30 -0800)]
osd: clear out workqueue queues on shutdown
Sage Weil [Wed, 26 Nov 2008 01:28:00 +0000 (17:28 -0800)]
mon: show both user data and actual disk space used
Sage Weil [Wed, 26 Nov 2008 01:26:56 +0000 (17:26 -0800)]
debug: rotate old courtesy symlinks to .0, .1, etc.
This will make it much easier to find the next-oldest instantiation of
osd foo.
Sage Weil [Tue, 25 Nov 2008 22:43:56 +0000 (14:43 -0800)]
osd: remove bad assertion in op_modify_ondisk
We may not be in waitfor_disk if we are marked failed and
on_osd_failure acked and removed us from the set.
Sage Weil [Tue, 25 Nov 2008 22:00:55 +0000 (14:00 -0800)]
osd: fix clone push when head is correct old version
If the replica's head is the clone source version, our push should instruct
the replica to clone its contents.
Sage Weil [Tue, 25 Nov 2008 21:19:16 +0000 (13:19 -0800)]
mds: remove anchors when destroy stray inodes
purge_stray() is now the sole caller of anchor_destroy, so we can still
avoid any locking considerations.
Sage Weil [Tue, 25 Nov 2008 20:50:00 +0000 (12:50 -0800)]
mds: clean up request write condition, can_forward logic a bit
Sage Weil [Tue, 25 Nov 2008 20:21:20 +0000 (12:21 -0800)]
osd: fix rare memory leak
Sage Weil [Tue, 25 Nov 2008 20:14:26 +0000 (12:14 -0800)]
cmonctl: print summary every 20 lines when in watch mode
Sage Weil [Tue, 25 Nov 2008 19:22:14 +0000 (11:22 -0800)]
osd: fix up recovery pointers a bit
Yehuda Sadeh [Tue, 25 Nov 2008 18:57:37 +0000 (10:57 -0800)]
wireshark: wireshark ceph plugin patch
Sage Weil [Tue, 25 Nov 2008 18:42:36 +0000 (10:42 -0800)]
osd: be a bit more verbose in push_to_replica
Sage Weil [Tue, 25 Nov 2008 18:02:48 +0000 (10:02 -0800)]
osd: lots of fixes
Sage Weil [Tue, 25 Nov 2008 00:41:54 +0000 (16:41 -0800)]
todos
Sage Weil [Tue, 25 Nov 2008 14:45:48 +0000 (06:45 -0800)]
osd: clean up repop code
Sage Weil [Tue, 25 Nov 2008 04:46:16 +0000 (20:46 -0800)]
osd: fix up repop_ack
Sage Weil [Tue, 25 Nov 2008 00:52:23 +0000 (16:52 -0800)]
osd: ack type in osd sub ops
Sage Weil [Tue, 25 Nov 2008 00:35:43 +0000 (16:35 -0800)]
osd: infrastructure for ack vs nvram vs disk osd_op ack types
NVRAM ack not generated, yet. The completion callbacks from the store
need some work first.
Sage Weil [Mon, 24 Nov 2008 22:56:46 +0000 (14:56 -0800)]
os: separate onjournal, ondisk callbacks for apply_transaction
Sage Weil [Mon, 24 Nov 2008 22:06:49 +0000 (14:06 -0800)]
context: all C_Gather to OR instead of AND subs.
That is, call completion when first sub completes.
Sage Weil [Mon, 24 Nov 2008 21:49:17 +0000 (13:49 -0800)]
osd: remove snap collection after it is trimmed
We can still end up with empty collections for existing snaps but no
local objects. However, they'll eventually go away when the snap is
deleted, so who cares.
Sage Weil [Mon, 24 Nov 2008 21:47:54 +0000 (13:47 -0800)]
os: add collection_empty method
Sage Weil [Mon, 24 Nov 2008 20:06:18 +0000 (12:06 -0800)]
todos
Sage Weil [Mon, 24 Nov 2008 20:06:08 +0000 (12:06 -0800)]
osd: reply with EBLACKLISTED if sender is blacklisted
Move reply_op_error helper into OSD.cc.
Sage Weil [Mon, 24 Nov 2008 19:49:10 +0000 (11:49 -0800)]
osd: include a blacklist in the OSDMap
Sage Weil [Mon, 24 Nov 2008 19:39:51 +0000 (11:39 -0800)]
osd: comment
Sage Weil [Mon, 24 Nov 2008 19:39:43 +0000 (11:39 -0800)]
rev wire, disk formats
osdmap encoding changed.
Sage Weil [Mon, 24 Nov 2008 19:34:02 +0000 (11:34 -0800)]
osd: ignore intervals prior to last_epoch_started in build_prior
We may have raised last_epoch_started without trimming past_intervals.
Sage Weil [Mon, 24 Nov 2008 19:30:17 +0000 (11:30 -0800)]
osd: simplify osdmap tracking of osd up/down epochs; fix pg build_prior logic
Use a single struct to track all of our osd up/down info. Include
down_at, the epoch we last marked the osd down.
Fix PG::build_prior to require that the osd was clean through the _entire_
interval in question.
In monitor, adjust new clean interval foward to down_at-1 if the up_from
matches the interval we mounted. That is, if the OSD shut down cleanly,
it obviously remained clean at least until we marked it down in the map.
Sage Weil [Mon, 24 Nov 2008 21:26:11 +0000 (13:26 -0800)]
mds: move filelock to lock state if we can't wrlock but lock is stable
For example, lock may be sync c=1 when we're trying to reset
max_size to 0. We need to make sure the lock will change state
before we wait on WAIT_STABLE.
Sage Weil [Mon, 24 Nov 2008 21:23:53 +0000 (13:23 -0800)]
mds: rejournal using EUpdate instead of EOpen if no caps in check_inode_max_size
Using EOpen on non-open files is imprecise. More importantly, if
it is a snapped inode, the EOpen replay code won't be able to
look up the ino and will throw an assertion.
So, use EUpdate instead to record the new info when necessary.
Sage Weil [Mon, 24 Nov 2008 21:21:15 +0000 (13:21 -0800)]
mds: use vector for EOpen
Sage Weil [Mon, 24 Nov 2008 21:20:52 +0000 (13:20 -0800)]
make assertion output look more like gcc
Sage Weil [Mon, 24 Nov 2008 20:08:49 +0000 (12:08 -0800)]
mds: remove bad assertion
remove_inode should do the asserting, here, as it may do some
cleanup.
Sage Weil [Mon, 24 Nov 2008 18:00:21 +0000 (10:00 -0800)]
osd: use last_clean_interval in build_prior logic
We now mark a PG crashed if any of the OSDs during a given interval
is not either still alive or cleanly shut down during the interval. If
those two conditions are not yet, it may have crashed.
It isn't a perfect set of criteria, since last_clean_interval is only
clean shutdowns of an OSD. We could, for example, track another interval
generated via old osd_up_thru, but the conditions for that are different,
since that requires survival past the end of the interval, not a clean
shutdown during the interval. This should capture the common case, though,
of a clean unmount.
to
Sage Weil [Mon, 24 Nov 2008 17:57:11 +0000 (09:57 -0800)]
osd: track last_clean_interval in osdmap; simplify encoding/decoding a bit
Break osdmap into "base" and "extended" portions, so that clients can
ignore the extended portions completely.
Track last_clean_interval in the osdmap so we know when the osd last
cleanly shut down.
Disk and wire format changes.
Sage Weil [Mon, 24 Nov 2008 17:55:23 +0000 (09:55 -0800)]
osd: track last_clean_interval in superblock
Sage Weil [Mon, 24 Nov 2008 18:27:22 +0000 (10:27 -0800)]
osd: add a few getattr assertions
Ensure we got the snapset attr before we decode it.
Sage Weil [Mon, 24 Nov 2008 18:25:11 +0000 (10:25 -0800)]
osd: log a delete only if the head object is deleted
Whether the head logically exists is not relevant to our logging.
Do not look at snapset.head_exists.
Sage Weil [Mon, 24 Nov 2008 18:17:58 +0000 (10:17 -0800)]
osd: remove bad assertion in pick_read_snap
The clone oid.snap does not necessary correspond to the newest
snap, since snaps may be deleted, or because the snap the snap is
named based on the snap context seq and not the oldest snap it
contains.
Sage Weil [Sun, 23 Nov 2008 18:57:28 +0000 (10:57 -0800)]
mds: remove capless inodes from logsegment open_file lists after reconnect
Inodes get added during replay of EOpen events. We remove capless inodes
after reconnect restores from clients.
We only want inodes with caps on those lists. Add an assertion to
enforce constraint.
Also, remove ourselves explicitly in remove_inode(), since that may happen
during replay when an inode is destroyed.
Sage Weil [Sat, 22 Nov 2008 16:57:19 +0000 (08:57 -0800)]
mds: fix up completed_request handling during journal replay
The completed_requests is handled separately from the session table
itself, in that we may add completed requests to the table even when
we may have loaded newer info. But the handling was a bit wrong.
We make sure we only add completed requests if the session is already
open... and remove the unnecessary trim (if the sessionmap is newer, the
session is already closed, and thus we have no request info).
Sage Weil [Sat, 22 Nov 2008 05:49:11 +0000 (21:49 -0800)]
osd: clean up info setattrs, such that write_info is called once per map update
Use pg dirty flags, and do the final write_info and/or write_log right
before we apply the advance/activate_map transaction.
PG.cc still calls the methods directly in methods that are not in the
advance/activate paths.
Sage Weil [Sat, 22 Nov 2008 04:46:10 +0000 (20:46 -0800)]
filestore: clean up debug output
10 ops
15 commits
20 waits
Sage Weil [Sat, 22 Nov 2008 04:36:38 +0000 (20:36 -0800)]
osd: minor append_log cleanup
Sage Weil [Sat, 22 Nov 2008 04:31:53 +0000 (20:31 -0800)]
filestore: only commit if changes are pending
Avoid needlessly scribbling all over the superblocks.
Sage Weil [Sat, 22 Nov 2008 04:30:00 +0000 (20:30 -0800)]
filestore: fix truncate argument, subsequent Transaction fuggering
Sage Weil [Sat, 22 Nov 2008 00:35:16 +0000 (16:35 -0800)]
dstart: modprobe btrfs
Sage Weil [Fri, 21 Nov 2008 23:01:22 +0000 (15:01 -0800)]
mds: assert ref count is 0 on inode deletion
Sage Weil [Fri, 21 Nov 2008 23:00:55 +0000 (15:00 -0800)]
mds: mark dirty inode clean before dropping
This has the effect of removing the inode from the dirty xlist.
Sage Weil [Fri, 21 Nov 2008 22:58:14 +0000 (14:58 -0800)]
mds: exclude BADREMOTEINO dentriess in readdir
Sage Weil [Fri, 21 Nov 2008 22:58:00 +0000 (14:58 -0800)]
mds: make open_remote_ino terminate if the anchortrace refers to a non-existent ino
Since anchor lookup is racy, we may have to do multiple lookups
(in the case of a concurrent anchor table update). If we don't
find the ino in the anchor, remember the anchor version when we
try again. If we fail again at the same point, and the anchor
has not changed, fail.
Create an open_remote_dentry helper that does this. If we fail,
set the CDentry::STATE_BADREMOTEINO state bit.
Sage Weil [Fri, 21 Nov 2008 22:55:59 +0000 (14:55 -0800)]
mds: fix cdentry states
Also add BADREMOTEINO, which we'll use shortly.
Sage Weil [Fri, 21 Nov 2008 22:34:40 +0000 (14:34 -0800)]
mds: add version to anchor; avoid looping in open_remote_ino
If we do not find the item referenced by teh anchor trace, we
try again, but keep track of the anchor version we ended on. If
we hit a dead end at the same point next time and the anchor
hasn't changed, we give up.
Sage Weil [Fri, 21 Nov 2008 21:30:27 +0000 (13:30 -0800)]
mon: send osdmap to _original_ PGStats source
..not the most recent sender, which may be another monitor.
Sage Weil [Fri, 21 Nov 2008 21:24:40 +0000 (13:24 -0800)]
msgr: fix replace_connection bucket list manipulation
Yehuda Sadeh [Fri, 21 Nov 2008 21:15:35 +0000 (13:15 -0800)]
kclient: increase max data and front sizes to 16MB
Sage Weil [Fri, 21 Nov 2008 21:11:46 +0000 (13:11 -0800)]
kclient: preserve peer_name across connection replacement
Sage Weil [Fri, 21 Nov 2008 20:35:20 +0000 (12:35 -0800)]
osd: factor out add_log_entry into a helper that adjusts pg info accordingly
We want to keep log.top, info.last_update etc. in sync.
Sage Weil [Fri, 21 Nov 2008 20:02:56 +0000 (12:02 -0800)]
osd: use old acting set when noting past intervals
Sage Weil [Fri, 21 Nov 2008 19:56:59 +0000 (11:56 -0800)]
dstart: only clean up old output on mkfs
Sage Weil [Fri, 21 Nov 2008 19:39:37 +0000 (11:39 -0800)]
client: ignore dropped messages
Sage Weil [Fri, 21 Nov 2008 19:21:59 +0000 (11:21 -0800)]
pg: fix build_prior debug output
Sage Weil [Fri, 21 Nov 2008 19:21:46 +0000 (11:21 -0800)]
client: fix ms_handle_failure
Sage Weil [Fri, 21 Nov 2008 19:08:23 +0000 (11:08 -0800)]
osd: only trim past intervals that _fully_ preceed last epoch started
Sage Weil [Fri, 21 Nov 2008 18:52:26 +0000 (10:52 -0800)]
osd: ignore pushes if stray
We need to verify a push is coming from the current primary if we are
any non-primary, including a stray. Fixes bad assertion
osd/ReplicatedPG.cc:2322: FAILED assert in 'void ReplicatedPG::sub_op_push(MOSDSubOp*)': log.complete_to != log.log.end()
Sage Weil [Fri, 21 Nov 2008 18:41:50 +0000 (10:41 -0800)]
mon: send osdmap updates if pg_stats indicates an old map for a long time
Sage Weil [Fri, 21 Nov 2008 18:24:58 +0000 (10:24 -0800)]
osd: fix read_superblock
Sage Weil [Fri, 21 Nov 2008 20:12:58 +0000 (12:12 -0800)]
mds: mark dn clean before removing
This ensures we clean up the xlist_dirty xlist::item.
Yehuda Sadeh [Fri, 21 Nov 2008 19:20:19 +0000 (11:20 -0800)]
kclient: debug info for connections and crc errors
Sage Weil [Fri, 21 Nov 2008 18:23:37 +0000 (10:23 -0800)]
osd: fix read_superblock
Sage Weil [Fri, 21 Nov 2008 17:59:27 +0000 (09:59 -0800)]
dstart: fix crush map typo
Sage Weil [Fri, 21 Nov 2008 18:21:07 +0000 (10:21 -0800)]
osd: fix default crush map rules
Sage Weil [Fri, 21 Nov 2008 17:49:18 +0000 (09:49 -0800)]
crush: introduce crush magic
This is a disk format change.
Sage Weil [Fri, 21 Nov 2008 17:43:31 +0000 (09:43 -0800)]
crush: make recurse_to_leaf slightly less fragile
Sage Weil [Fri, 21 Nov 2008 01:01:18 +0000 (17:01 -0800)]
osd: don't fail assertion on out empty ops list (i.e. no-op)
Sage Weil [Fri, 21 Nov 2008 01:00:36 +0000 (17:00 -0800)]
osd: include magic in osd volumes
Sage Weil [Fri, 21 Nov 2008 01:00:25 +0000 (17:00 -0800)]
osd: get rid of snaptrimming/snaptrimqueue pg states
These aren't helpful, since we only report pg states from the
primary osd, and snaptrimming occurs on replicas as well.
Sage Weil [Fri, 21 Nov 2008 00:59:08 +0000 (16:59 -0800)]
mon: include magic in mondata
Sage Weil [Fri, 21 Nov 2008 00:25:43 +0000 (16:25 -0800)]
osdmap: use chooseleaf in default crush map
Sage Weil [Thu, 20 Nov 2008 23:08:24 +0000 (15:08 -0800)]
osd: fix transaction argument order
The order of evaluation is ambiguous, apparently!
Sage Weil [Thu, 20 Nov 2008 22:47:30 +0000 (14:47 -0800)]
OSD: pg ref count debugging
Sage Weil [Thu, 20 Nov 2008 22:46:15 +0000 (14:46 -0800)]
osd: use map_lock to avoid osdmap update race in _finish_recovery
Sage Weil [Thu, 20 Nov 2008 21:56:36 +0000 (13:56 -0800)]
osd: convert recovery to a work queue
Sage Weil [Thu, 20 Nov 2008 21:56:25 +0000 (13:56 -0800)]
wq: use a single lock
Sage Weil [Thu, 20 Nov 2008 22:40:08 +0000 (14:40 -0800)]
osd: clean up mkfs vs peek_super
Sage Weil [Thu, 20 Nov 2008 22:00:33 +0000 (14:00 -0800)]
osd: fix peek_whoami