| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Wido den Hollander <wido@widodh.nl>
|
|
|
|
| |
Signed-off-by: Wido den Hollander <wido@widodh.nl>
|
| |
|
| |
|
|
|
|
| |
still doesn't compile
|
| |
|
|
|
|
|
| |
not going to compile, stuff is not yet in place. Currently getting rid of the
stuff that is in rgw_user and moving stuff to libradosgw.
|
| |
|
|
|
|
| |
nothing is going to work now
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Because we have called osr.flush(), it's safe to tag map.valid_through
as last_update. We will still have to catch up once we have stopped
writes and allowed the filestore to catch up anyway.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
This can happen when multiple C_Active events are queued, and the first
does a propose_pending() (moving us into updating state).
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can learn either an uncommitted or committed value during the
collect/last recovery phase. For the committed values, we need to remember
each peer's first/last_committed and share only at the end to avoid a
situation like:
- mon.1 has same last_committed as us
- mon.2 has newer last_commited, we save it
- mon.3 has same last_commited as mon.1, we share new value
- done... but mon.1 never got mon.2's newer commit.
Instead, save the commit sharing until the collect process completes, so
we know that any committed value learned from anyone is shared with
everyone who needs it.
This fixes a crash like
mon/Paxos.cc: In function 'void Paxos::handle_begin(MMonPaxos*)', in thread '7fd91192c700'
mon/Paxos.cc: 400: FAILED assert(begin->last_committed == last_committed)
ceph version 0.38-208-g9aabd39 (commit:9aabd3982cceb7e8489412b4bfbb4c2387880de2)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x76) [0x72454e]
2: (Paxos::handle_begin(MMonPaxos*)+0x363) [0x6499ef]
3: (Paxos::dispatch(PaxosServiceMessage*)+0x2b4) [0x64db2c]
4: (Monitor::_ms_dispatch(Message*)+0xdc6) [0x6205c2]
5: (Monitor::ms_dispatch(Message*)+0x3a) [0x62831a]
6: (Messenger::ms_deliver_dispatch(Message*)+0x63) [0x7d1f31]
7: (SimpleMessenger::dispatch_entry()+0x7c2) [0x7bb786]
8: (SimpleMessenger::DispatchThread::entry()+0x2c) [0x6070fa]
9: (Thread::_entry_func(void*)+0x23) [0x6f3f69]
10: (()+0x7971) [0x7fd9153a1971]
11: (clone()+0x6d) [0x7fd913c3092d]
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| | |
Use the same callback for when paxos goes active and for when it commits
something. The response in both cases is the same.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| | |
Same effect, and avoids useless committed().
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| | |
This will let us remove committed() entirely.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| | |
Special case. We can't join the command_tp thread from itself.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
pending_ops was protected by osd_lock, but it tracks something in the
queue, which has it's own lock. Messy. Also, useless, since
wait_for_no_ops had a single caller in shutdown() that op_wq.drain() can
do for us.
Rip it out, and track queue size under the queue lock.
Fixes: #1727
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| | |
The op queue is shut down, so this is mostly safe, unless someone comes
through and does requeue_ops() from a callback or something.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
| |
| |
| |
| |
| |
| | |
We should request a missing/intervening map if it appears to exist.
Otherwise, skip it.
Signed-off-by: Sage Weil <sage@newdream.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Hopefully this is the root cause for
2011-11-20 23:57:41.555292 7f75dd743780 ceph version 0.38-205-g3b53b72
(commit:3b53b722b34b5284e6b8a5571a08d4b7ec276241), process ceph-fuse, pid
21223
* Caught signal (Segmentation fault) *
in thread 7f75d9c6e700
ceph version 0.38-205-g3b53b72
(commit:3b53b722b34b5284e6b8a5571a08d4b7ec276241)
1: /tmp/cephtest/binary/usr/local/bin/ceph-fuse() [0x6993a4]
2: (()+0xfb40) [0x7f75dd0eeb40]
3: (PerfCounters::set(int, unsigned long)+0x2a) [0x511bca]
4: (Objecter::tick()+0x1f3) [0x653f43]
5: (Objecter::C_Tick::finish(int)+0x15) [0x66aef5]
6: (SafeTimer::timer_thread()+0x4b0) [0x5825c0]
7: (SafeTimerThread::entry()+0x15) [0x586865]
8: (Thread::_entry_func(void)+0x12) [0x52a832]
9: (()+0x7971) [0x7f75dd0e6971]
10: (clone()+0x6d) [0x7f75db97592d]
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
|/
|
|
| |
being used by s3cmd
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Looks like this conditional was just set backwards by mistake. There
have been a number of issues with OSDMap versions that are probably
related to this...
(Thanks to some smarts in trim_to, we at least did not trim ALL of
our maps. But on every tick prior to epoch 500 [that's the default]
the leader was trimming all old maps off the system.)
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit dd5087fabb2a743741a96ee4610379afa8431f68.
Calling osr.flush() is not quite enough since the onreadable callbacks
may not have been called (thus, last_update_applied may still lag behind
the tail of the log).
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
|
|
|
| |
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
|
|
|
|
|
|
|
| |
There's no good reason I can find to limit error code responses to
the ACK.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
|
|
| |
Many users only set oncommit acks, so if they get an error code
(which comes only as a CEPH_OSD_OP_ACK right now) the request
disappears into the ether.
(And remove stupid debug statements while we're at it.)
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This avoids a scenario like:
- _active()
- proposes value
- _commit()
- creates new pending, even though in updating state
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
| |
This reverts commit 66c628acc8be71a92e801179431e4b938b857b3d.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Proposing a new state from within update_from_paxos() confuses some callers,
like PaxosService::_active(). Instead, do it in the on_active() callback.
This also let's us collapse the check_osd_map() caller into on_active(),
and makes it happen on leaders and peons alike, which ought to avoid some
of the pg creation lag we see sometimes (presumably when the osds have
sessions with peons instead of the leader).
Fixes: #1708
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Ignore ENOSPC generated by our own callback, as it is only used to
terminate the loop.
Broken by commit cd90061239a598f6fca94326b6d2c32f325c96eb.
Fixes: #1728
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
Remove open-coded trimming of old states and use our method (that also
removes additional per-state files). Fixes old stray state files.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
Paxos::share_state() may share a stashed state and incrementals that
follow; we need to store the same.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Don't go from active -> electing without passing (monitor) go.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Certainly not by default.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
| |
This ensures that we resend _all_ requests, since we aren't sure which
may have mapped to a different primary and then back. This was missed in
the original implementation in 4fe9cca5dd63a1924be2b5cb18f542fb4b97a768.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Sanity check.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
|
| |
This may address #1732 indirectly because we have a Connection* reference
here. However, it's still not clear how we ended up with an OSDSession*
for an osd that doesn't exist. :/
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
| |
Just a sanity check, hopefully helping us track down #1727.
Signed-off-by: Sage Weil <sage@newdream.net>
|
|
|
|
|
|
|
| |
This makes e.g. get_latest_version() vs get_last_committed() less
confusing.
Signed-off-by: Sage Weil <sage@newdream.net>
|