Thomas Mueller [Thu, 29 Jul 2010 15:58:17 +0000 (15:58 +0000)]
debian/ceph.logrotate: enhance postrotate for "service" util
[ The following text is in the "UTF-8" character set. ]
[ Your display is set for the "iso-8859-1" character set. ]
[ Some characters may be displayed incorrectly. ]
Thomas Mueller [Thu, 29 Jul 2010 13:02:07 +0000 (15:02 +0200)]
debian: ceph-cfuse: move ceph from Recommends to Suggests
on a standalone fuse client ceph serverside is not needed. if it's
"Recommended" the default behaviour is to install it too. Move it to "Suggests"
that it's not installed by default if one installs just ceph-fuse.
from debian policy:
Suggests:
This is used to declare that one package may be more useful with one or more
others. Using this field tells the packaging system and the user that the listed
packages are related to this one and can perhaps enhance its usefulness, but
that installing this one without them is perfectly reasonable.
Sage Weil [Wed, 28 Jul 2010 19:47:21 +0000 (12:47 -0700)]
osd: drop broken (and useless) PG::merge_log assert
The assert should be olog.backlog, not log.backlog. But it's the same
condition as the if guard that's 3 lines up, making it pretty useless.
Just drop it.
mds: handle this log replay error better:
Log it to the central log so it gets noticed, and
delete the "wrong inode" instead of just unlinking it, to prevent later crashiness.
Sage Weil [Tue, 27 Jul 2010 19:53:20 +0000 (12:53 -0700)]
mds: fix uninitialized LeaseStat for null lease
./include/encoding.h: In member function void
Locker::issue_client_lease(CDentry*, client_t, ceph::bufferlist&, utime_t,
Session*):
./include/encoding.h:80: warning: e.LeaseStat::duration_ms may be used
uninitialized in this function
Before, we would provide "have" and a bool "onetime" flag. The struct was
also screwed up with an extra __le64. Then have=0 was a special case
that meant "give me the latest".
The problem is this is ambiguous between the usual "give me everything
since X" and "give me your latest", because you might actually have 0 and
want 1..current.
Changes protocol and cleans up the struct:
- now "start" and "flags", where only 1 flag (ONETIME) is defined
- clean up sub_want_* methods throughout
- fix all sub_want callers to ask for _start_ (not have) epoch, or 0 for
any/latest
- add a feature bit; talks old clients w/o that bit
Sage Weil [Fri, 23 Jul 2010 19:57:52 +0000 (12:57 -0700)]
osd: make assemble_backlog more tolerant of races
The assemble_backlog is merging data generated while racing with online
updates. It needs to tolerate races with things like delete. For example,
- generate_backlog identifies object A
- client deletes+logs A
- assemble_backlog sees A deletion entry.
We may want to merge the backlog entry in this case.
Sage Weil [Fri, 23 Jul 2010 22:14:43 +0000 (15:14 -0700)]
mds: fix lease issue mask
We define 1 to be the only lease "mask" we currently support (for dentry)
and divorce ourselves from the CEPH_LOCK namespace for this purpose. We
did this in c8d7c970e864e9f130b7c44b29c322771067026e, but screwed up the
issue function. Fix the caller, and pay attention to @mask here.
Sage Weil [Thu, 22 Jul 2010 22:55:23 +0000 (15:55 -0700)]
osd: simplify heartbeat checks
- Only check heartbeats when we have heartbeat_lock and osdmap rdlocked,
and thus _know_ heartbeat info and map are in sync. Drop unnecessary
consistency checks.
- Check heartbeats in tick(), since the heartbeat thread may miss it if
it's unlucky.
Sage Weil [Fri, 23 Jul 2010 18:45:26 +0000 (11:45 -0700)]
osd: zero ondisklog pointers when starting pg deletion
This fixes a problem where the osd stops part way through pg cleanup. It
seens the old ondisklog bounds, but then fails to load the log, and crashes
on startup.
We just need to zero the ondisklog bounds when we zero the log.
Sage Weil [Thu, 22 Jul 2010 19:01:11 +0000 (12:01 -0700)]
mds: be careful obeying REQRDLOCK
Only do a simple_sync() if we are stable, auth, and not already sync. The
client request can race with other state changes, so be careful. The
client will also retry on any state change, so we can safely ignore if
things don't look quite right.
Sage Weil [Tue, 20 Jul 2010 22:59:11 +0000 (15:59 -0700)]
mds: initialize snaprealm created, current_parent_since on creation
Need to initialize created and current_parent_since on new snaprealms
when they are created, or else we get incorrect results from the likes of
SnapRealm::get_snap_info() (e.g., parent snaps from before we were
created).
Sage Weil [Tue, 20 Jul 2010 20:23:51 +0000 (13:23 -0700)]
osd: clear failure_queue when marked down
This prevents bleed through of failures (due to not getting hearbeats, due
to us being marked down) so they don't get sent after we are marked back
up again.
This fixes one possible source of up/down flapping...