Yehuda Sadeh
5c43a394d8
kclient: fix oops in case written size doesn't match request
2008-12-03 10:10:55 -08:00
Yehuda Sadeh
7dfb905f31
kclient: some logs revision
2008-12-02 16:18:54 -08:00
Sage Weil
4a6bd48a26
osd: don't forget about skipped clones during recover_primary
...
Only advance requested_to if we haven't skipped any items.
2008-12-02 14:29:25 -08:00
Sage Weil
674942e14e
always print snapids in hex
2008-12-02 14:29:25 -08:00
Sage Weil
1876ca5ad4
mds: pick_inode_snap should consider follows==0 valid
...
I suspect a larger audit of 'follows' semantics may be necessary..
but this fixes the bug I was seeing with:
echo asdf > a
mkdir .snap/1
echo qwer > b
mkdir .snap/2
echo zxcv > a
mkdir .snap/3
sync
cat .snap/1/a # empty
ll .snap/* # hangs
2008-12-02 13:50:15 -08:00
Yehuda Sadeh
a31778ffd8
kclient: initialize some protocol fields
2008-12-02 13:37:34 -08:00
Sage Weil
431dc5cbdb
osd: log stats for push and pull bytes
2008-12-02 12:03:55 -08:00
Sage Weil
f99e0814f8
mds: avoid overlapping release attempts
...
If the first release attempt is waiting for the log to flush, we
should avoid sending any RELEASED ack until all releases have
flushed. That is, only the last release will ack. Keep a counter
in Capability to do this.
Otherwise, we may close out a capability from under a release
that is flushing, and our seq # will be meaningless later in
_finish_release_cap() when we're trying to decide what to do.
2008-12-02 11:45:37 -08:00
Sage Weil
19cdd84c99
kclient: avoid queueing cap_snap when nothing is dirty or writing
...
Save ourselves the trouble when there is nothing to flush
2008-12-02 11:09:16 -08:00
Sage Weil
de347b1333
osd: send old_version to replicas
...
Otherwise CLONE entries in the PG log on replicas have 0'0 for
prior_version, and everything goes to hell.
2008-12-02 10:49:22 -08:00
Sage Weil
055b5104a0
osd: always get old_version; include in debug output
2008-12-02 10:43:36 -08:00
Sage Weil
1d5011b7ea
osd: show prior_version in log dump, output recovery_primary debug output
2008-12-02 10:00:18 -08:00
Sage Weil
488b01636c
mds: suspend instead of suicide on beacon timeout
...
If we don't hear from the monitor, suspend doing any useful work instead
of just committing suicide. If the monitor comes back and hasn't killed
us off, then we're fine. If we've been marked as failed, we will shut
down as before.
2008-12-01 21:13:34 -08:00
Sage Weil
fdbf05daf4
filestore: show return codes in debug output
2008-12-01 16:55:40 -08:00
Sage Weil
e13951dc20
object: print snapid in hex
2008-12-01 16:53:16 -08:00
Yehuda Sadeh
e7e39f0491
kclient: no page cache for write without wrbuf cap
2008-12-01 16:00:35 -08:00
Yehuda Sadeh
c37f7ba304
Merge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable
2008-12-01 15:51:58 -08:00
Yehuda Sadeh
d731ff0bfd
kclient: sync writes use page cache
2008-12-01 15:50:36 -08:00
Sage Weil
aa7efb6f8e
kclient: clean out old BACKOFF bit flag, comments
2008-12-01 15:48:46 -08:00
Sage Weil
7c5e8cca4f
osdmaptool: print new osd_info fields
...
down_at, last_clean interval, etc.
2008-12-01 15:48:46 -08:00
Sage Weil
881c680aee
osd: make pg log dump obey debug levels
2008-12-01 15:43:39 -08:00
Sage Weil
7ae60b49ce
osd: rebuild past intervals when needed; tolerate partial info
...
Tolerate missing past_intervals attr.
Also, if only some past intervals are missing, rebuild them all; don't
assume that if any are there then all are there.
2008-12-01 15:43:38 -08:00
Sage Weil
e8158d1e3a
osd: send and process heartbeats in separate thread, channel
...
Use a separate dispatch thread to process heartbeats. Use a
separate thread to send them. This ensures something slow
(e.g. a map update) does not make an osd appear to be down.
This also means a spearate entity_addr for heartbeats, which puts
them over a separate TCP stream.
2008-12-01 15:43:29 -08:00
Sage Weil
5ab62f5e86
mds: do not purge until leases expire
2008-12-01 14:03:05 -08:00
Sage Weil
6eb3bfd9e1
lockdep: lockdep_dump_locks()
...
Handy for dumping held locks in gdb w/ 'p lockdep_dump_lock()'
2008-12-01 14:03:04 -08:00
Sage Weil
7b680b87eb
rwlock: try_get_read, try_get_write
2008-12-01 14:03:04 -08:00
Sage Weil
ca4e754b21
osd: optionally avoid zeroing trimmed log on disk
...
This is a half-hearted attempt to keep old PG log content around. It'll
still be lost if a PG moves to another node or the entire log is written
to disk for some other reason.
2008-12-01 14:03:04 -08:00
Yehuda Sadeh
c813af3c14
kclient: fix bad check
2008-12-01 12:36:37 -08:00
Yehuda Sadeh
ab728c0cf7
kclient: slient down some log message
2008-12-01 11:39:00 -08:00
Sage Weil
fa980835a6
osd: skip peer_info on down osds
...
We don't clean old/down OSDs out of peer_info map, since we may not
restart peering when strays go up/down. That's fine... just make sure
we ignore them later.
2008-11-30 20:42:44 -08:00
Sage Weil
867cfe9782
osd: remove bad PG::put() assertion
2008-11-30 20:41:50 -08:00
Sage Weil
91fe2a9172
osd: fix lock inversion on workqueue shutdown
...
Simplify PG get/put vs lock/unlock. Since we are reference counting with
an atomic_t, we don't need to re-use PG::lock to protect the reference
count.
2008-11-30 13:06:37 -08:00
Sage Weil
4aa2fe27f5
todo
2008-11-27 08:34:56 -08:00
Sage Weil
a2005b0f0f
workqueue: deliberately leak string with lock name
...
Lockdep assumes strings are statically allocated.
2008-11-27 08:34:56 -08:00
Ariela
d77f355613
Merge branch 'unstable' of ssh://yehudasa@ceph.newdream.net/git/ceph into unstable
2008-11-26 17:17:05 -08:00
Ariela
6107617a83
wireshark: update for win32
2008-11-26 17:16:43 -08:00
Sage Weil
bde1d81f23
osd: fix bad sub_op_push assertion; only write data we need
...
We adjust the pushed buffer so that we only write the portions
of it that we can't clone.
2008-11-26 16:44:30 -08:00
Sage Weil
98b05e2194
objectcacher: only call flushed callback if there are also no dirty buffers
...
Otherwise we call the flushed_callback too soon.
2008-11-26 16:42:01 -08:00
Sage Weil
54fd735649
mds: fix up loner_cap whenever we manually change filelock state
...
This is kind of a pain.
2008-11-26 16:32:29 -08:00
Sage Weil
ff05b936e0
osd: clean up touch() calls to use exists bool
...
We only need to touch of the head object itself doesn't exist.
Do so far all ops. This works cleanly despite any op munging
above.
2008-11-26 14:35:56 -08:00
Sage Weil
93626228c8
objectstore: fix touch()
...
Wrong opcode meant skewed args, and all kinds of badness.
2008-11-26 14:35:02 -08:00
Sage Weil
8f74075836
mon: instruct individual pgs to scrub
...
Factor out pg parsing into pg_t.
2008-11-26 13:50:33 -08:00
Sage Weil
4d0508774f
osd: debug write_info a bit, clean up Transaction cruft
2008-11-26 13:42:17 -08:00
Sage Weil
4efcfe3f00
osd: initiate scrub via monitor message
2008-11-26 13:41:14 -08:00
Sage Weil
cb8d181ab2
objecter: scan_pgs even on original full map
...
We may have queued ops before getting _any_ map; those still need to
be kicked.
2008-11-26 12:39:36 -08:00
Sage Weil
86aa86a622
osd: ensure target osd is still up when sending MPGRemoves
2008-11-26 12:18:10 -08:00
Sage Weil
1199270319
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.
2008-11-26 11:23:15 -08:00
Sage Weil
43cf7707f0
osd: (re)set degraded flag on activate
...
This ensures the bit is properly set on newly created PGs..
2008-11-26 10:55:54 -08:00
Sage Weil
681e6d13eb
timer: discard unfired events on shutdown
...
Mostly this just cleans up valgrind leak check output.
2008-11-26 10:55:14 -08:00
Sage Weil
65f81fb3c8
client: fix use-after-free
...
put_node at the end.
2008-11-26 10:44:48 -08:00