mirror of
https://github.com/ceph/ceph
synced 2024-12-15 16:07:00 +00:00
Ceph is a distributed object, block, and file storage platform
0d98fc6ffd
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] |
||
---|---|---|
debian | ||
fusetrace | ||
man | ||
qa | ||
src | ||
web | ||
wireshark | ||
.gitignore | ||
AUTHORS | ||
autogen.sh | ||
builddebs.sh | ||
ceph-init-fix.patch | ||
ceph.spec.in | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
publish.sh | ||
pull.sh | ||
push.sh | ||
README | ||
RELEASE_CHECKLIST | ||
release.sh | ||
sign.sh |
Ceph - a scalable distributed file system ----------------------------------------- Please see http://ceph.newdream.net/ for current info. ---- To build the server daemons, and FUSE client, $ ./autogen.sh $ ./configure $ make or $ cd src $ make (Note that the FUSE client will only be built if libfuse is present.) ---- A quick summary of binaries that will be built in src/ daemons: cmon -- monitor daemon. handles cluster state and configuration information. cosd -- storage daemon. stores objects on a given block device. cmds -- metadata daemon. handles file system namespace. ceph -- send management commands to the monitor cluster. userland clients: cfuse -- fuse client. csyn -- synthetic workload generator client. tools: mkmonfs -- create a fresh monfs (for a new filesystem) monmaptool -- create/edit mon map osdmaptool -- create/edit osd map crushtool -- create/edit crush map scripts: mkcephfs -- cluster mkfs tool init-ceph -- init.d start/stop script