| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Consider a case where current loner is A and wanted loner is B.
At the top of the function we try to set the loner, but that may fail
because we haven't processed the gathered caps yet for the previous
loner. In the body we do that and potentially drop the old loner, but we
do not try_set_loner() again on the desired loner.
Try after our drop. If it succeeds, loop through the eval's one more time
so that we can issue caps approriately.
This fixes a hang induced by a simple loop like:
while true ; do echo asdf >> mnt.a/foo ; tail mnt.b/foo ; done &
while true ; do ls mnt.a mnt.b ; done
(The second loop may not be necessary.)
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
|
|
|
|
| |
We were either going to MIX or SYNC depending on whether non-loners wanted
to read/write, but it may be that the loner wants to if our logic for
choosing loner vs not longer is based on anything other that just rd|wr
wanted.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
|
|
| |
Observed instance where one client wanted the Fc cap and prevented the
loner from getting RD|WR caps.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
|
| |
...as detected by the previous patch.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
|
|
|
|
| |
Let MonClient and Monitor handle delivery of messages. This puts them in
control and lets them trigger sending of more messages when we have a
bunch queued.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
| |
...and replace code references with conf->subsys.should_gather().
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
|
|
|
| |
- explicitly defined subsystems, and ceph_subsys_FOO enums to go with them
- modular log system with Entry object
- separate gather level and log level
- drop lots of DoutStreambuf hackery
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
This will let us transparently swap implementations out.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
These can be included in the detail dump in the future.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
|
|
|
| |
'ceph health' to get the usual summary, 'ceph health detail' to
additionally get a comprehensive list of problems found.
Eventually we can format this as yaml, json, whatever, too.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
|
|
|
| |
If we are blacklisted by the OSD cluster, it's because we were too slow
and were replaced by another ceph-mds. Respawn and re-register as a
standby.
If we get some other write error, shut down.
Fixes: #1796
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
|
| |
This was pretty pointless since each Messenger has a well-defined
exit point and shutdown process.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
| |
Instead, have a settable nonce value that you can fill in any time
after construction and that it uses during regular start().
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
|
|
| |
This function has been vestigial for a long time. Remove it and move
its remaining functionality into the constructor.
Update users to the new interface (this is remarkably easy and
simplifies the code).
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|\
| |
| |
| | |
Reviewed-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to hold the lock for ms_dispatch, esp calls into objecter. We
should only drop it when blocking; use distinct naming for the on-stack
mutex used for that.
Reported-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Complete configuration initialization for special actions, and
hold Resetter lock while running reset.
Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| | |
Commenting it out is not the right answer. ;)
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Reviewed-by: Dan Mick <dan.mick@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No need to put this separately on the heap, as a static map<> isn't much
more expensive than a pointer. Also, this ensures we unconditonally
reset in->old_inodes to a potentially empty value if we replay the same
inode multiple times and lose old inodes in subsequent versions.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|/
|
|
|
|
|
| |
Add information about old inodes to the mds journal.
Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
|
| |
State gets DNE when we receive the first map. And want_ makes more sense
anyway. Fixes MDS startup.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|\ |
|
| |
| |
| |
| |
| | |
Signed-off-by: Tom Callaway <spot@redhat.com>
Signed-off-by: David Nalley <david@gnsa.us>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|/
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Not used, not tested.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
|
|
| |
The dependence on cct/conf here was totally wrong.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|\ |
|
| |\ |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Among other things, we don't recompile the whole system when we touch
these.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/librados.cc
src/objclass/class_api.cc
src/rgw/rgw_rados.cc
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If it takes 2*mds_beacon_grace (default 30 seconds total) seconds
to get an ack back, maybe it's the monitor and not us. Try a reconnect,
which will just add the teensiest bit of load if we're wrong.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
This no longer does *anything* except print out
useless warning messages.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|/ /
| |
| |
| |
| |
| | |
This let's Objecter do the demuxing work for compount read operations.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|/
|
|
| |
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Default does exit(0).
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
|
| |
This is causing issues since the Client's ack of the MClientSession
is somehow not getting back to the MDS. We should make the
Client/SimpleMessenger be better-behaved about shutdown, but for
now this solution matches how we're working elsewhere in our codebase.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to hold mylock before waiting on the cond or else we get
./common/Cond.h: In function 'int Cond::Wait(Mutex&)', in thread '7f37fe0c8700'
./common/Cond.h: 46: FAILED assert(mutex.is_locked())
ceph version 0.38-2-g73f99a1 (commit:73f99a189f491866da2be88adcfe0bd512282755)
1: (MDLog::_replay_thread()+0x2483) [0x6c4393]
2: (MDLog::ReplayThread::entry()+0xd) [0x4decbd]
3: (()+0x6d8c) [0x7f3803e8fd8c]
4: (clone()+0x6d) [0x7f38028d504d]
ceph version 0.38-2-g73f99a1 (commit:73f99a189f491866da2be88adcfe0bd512282755)
1: (MDLog::_replay_thread()+0x2483) [0x6c4393]
2: (MDLog::ReplayThread::entry()+0xd) [0x4decbd]
3: (()+0x6d8c) [0x7f3803e8fd8c]
4: (clone()+0x6d) [0x7f38028d504d]
*** Caught signal (Aborted) **
in thread 7f37fe0c8700
Signed-off-by: Sage Weil <sage@newdream.net>
|