Sage Weil [Wed, 4 Aug 2010 16:51:12 +0000 (09:51 -0700)]
osd: fix heartbeat to/from map updates
- always make _inst match _to and _from (don't adjust in note_down_osd)
- only mark down old hb connection in update_heartbeat_peers
- if old peer isn't down, send them a map
- don't print dup new/old messages
Takuya ASADA [Tue, 3 Aug 2010 12:21:10 +0000 (21:21 +0900)]
librados.hpp fix
[ 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. ]
Hi,
I just realized librados.hpp could compile only if "using namespace
std;" is declared before "#include <rados/librados.hpp>", because
"vector" used without std namespace, and I think it's wrong.
It can fix following patch.
Sage Weil [Mon, 2 Aug 2010 23:27:18 +0000 (16:27 -0700)]
mds: fix cap encoding skipping when snaprealm differs
We were avoiding adding a new cap, but _any_ issue is problematic, not just
adds (which we can't really be sure about anyway due to races with client
cap release).
The only thing I've found, is that the *.so files are included in the -devel
rpm. This leads to the fact that the 'find' in cclass doesn't return any
files. I'd suggest the attached change in the script.
Sage Weil [Mon, 2 Aug 2010 19:57:36 +0000 (12:57 -0700)]
osd: avoid most of handle_osd_map if there are no new maps in message
We don't want to take the time to flush things to disk and shut down all
the worker threads if there is nothing new in the osdmap update (as is
usually the case).
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.