mirror of
https://github.com/ceph/ceph
synced 2024-12-17 00:46:05 +00:00
Ceph is a distributed object, block, and file storage platform
ae41f3232a
Bug #1530 This should fix the following race: 1) osd->generate_backlog does pg->assemble_backlog 2) osd->generate_backlog drops the pg lock to grab the osd_map read lock 3) ...which is held by osd->handle_osd_map 4) at the end of osd->handle_osd_map, we call write_info on the pg since it has progressed to a new peering interval 5) osd->generate_backlog gets the read_lock and the pg lock and promptly bails since the backlog generation has been cancelled 6) osd dies, but not before the write_info transaction is durable The result of this is that the in-memory backlog generated in assemble_backlog doesn't make it to disk, but the updated info does resulting in an ondisklog inconsistent with the pg info on osd restart. This should prevent the info from being written without the log. Signed-off-by: Samuel Just <samuel.just@dreamhost.com> |
||
---|---|---|
admin | ||
debian | ||
doc | ||
fusetrace | ||
keys | ||
man | ||
qa | ||
src | ||
udev | ||
wireshark | ||
.gitignore | ||
AUTHORS | ||
autogen.sh | ||
ceph.spec.in | ||
ChangeLog | ||
CodingStyle | ||
configure.ac | ||
COPYING | ||
do_autogen.sh | ||
Doxyfile | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
README | ||
RELEASE_CHECKLIST | ||
SubmittingPatches |
Ceph - a scalable distributed storage system ----------------------------------------- Please see http://ceph.newdream.net/ for current info. ---- To build the server daemons, and FUSE client, $ ./autogen.sh $ ./configure $ 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: ceph-mon -- monitor daemon. handles cluster state and configuration information. ceph-osd -- storage daemon. stores objects on a given block device. ceph-mds -- metadata daemon. handles file system namespace. ceph-fuse -- fuse client. tools: ceph -- send management commands to the monitor cluster. rados -- interact with the object store rbd -- manipulate rados block device images 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