This is intended to mitigate a livelock issue with traversing to snapped
metadata. The client specifies all snap requests relative to a non-snap
inode. The traversal through the snapped portion of the namespace will
normally happen on the auth node, but the actual target may be on another
node that does not have that portion of the namespace. To avoid indefinite
request ping-pong, the mds will begin to discover and replicate the snapped
path components if the request has been retried.
This doesn't perform optimally, but it will at least work.
Add 'status' command.
Add chkconfig line.
Do lockfile stuff only if /var/run/subsys exists.
Still specifying the runlevels, though. The init script bails out (with
success code) if the ceph.conf is missing.
The catch up logic in handle_last didn't handle the stashed state, so we
crashed and burned if it was the master that was behind and caught up.
Use a helper that does the work for handle_commit AND handle_last.
Call start_recovery_op from pull() instead of fixing every caller (some
were wrong). This keeps the recovery state in sync with pulling state,
even when pull() has to pull something different (head, snapdir) first.
Fixes this crash:
osd/PG.cc: In function 'void PG::finish_recovery_op(const sobject_t&, bool)':
osd/PG.cc:1842: FAILED assert(recovering_oids.count(soid))
1: (PG::finish_recovery_op(sobject_t const&, bool)+0x14e) [0x74caf6]
2: (ReplicatedPG::sub_op_push(MOSDSubOp*)+0x1da8) [0x669292]
3: (ReplicatedPG::do_sub_op(MOSDSubOp*)+0x109) [0x671a73]
4: (OSD::dequeue_op(PG*)+0x23c) [0x6bda00]
5: (OSD::OpWQ::_process(PG*)+0x21) [0x7387c9]
6: (ThreadPool::WorkQueue<PG>::_void_process(void*)+0x28) [0x6f5e12]
7: (ThreadPool::worker()+0x23a) [0x7f2404]
8: (ThreadPool::WorkThread::entry()+0x19) [0x73b783]
9: (Thread::_entry_func(void*)+0x20) [0x64f92a]
10: /lib/libpthread.so.0 [0x7f7a12cf473a]
11: (clone()+0x6d) [0x7f7a11f1e69d]
The monitor rank is provided during startup. No need to verify it against
the monitor store, especially since the stores are otherwise identical.
This makes it simpler to restore/duplicate/wahtever a monitor.. just copy
the files.