Ceph is a distributed object, block, and file storage platform
Go to file
Samuel Just ae41f3232a OSD: write_info/log before dropping lock in generate_backlog
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>
2011-11-04 18:38:21 -07:00
admin doc: add documentation for librbd python bindings 2011-09-30 11:37:15 -07:00
debian debian: empty dependency_libs in *.la files 2011-11-02 08:44:33 -07:00
doc fixed graphic reference and headings 2011-10-27 14:04:56 -07:00
fusetrace
keys doc: Write about deb installation. 2011-09-02 12:34:05 -07:00
man mkcephfs: copy ceph.conf to /etc/ceph/ceph.conf (when -a) 2011-10-17 10:49:46 -07:00
qa qa: workunit to run test_libcephfs_readder 2011-11-03 13:55:53 -07:00
src OSD: write_info/log before dropping lock in generate_backlog 2011-11-04 18:38:21 -07:00
udev udev: c* -> ceph-* rename: missed crbdnamer. 2011-09-23 15:55:01 -07:00
wireshark
.gitignore gitignore: just ignore all test_ files 2011-11-03 13:59:25 -07:00
AUTHORS
autogen.sh Use Google Test framework for unit tests. 2011-01-10 15:19:45 -08:00
ceph.spec.in ceph.spec: don't chkconfig 2011-10-17 08:51:47 -07:00
ChangeLog
CodingStyle CodingStyle: whitespace 2011-07-14 10:50:08 -07:00
configure.ac Merge branch 'master' into wip-freebsd 2011-10-25 14:54:16 -07:00
COPYING
do_autogen.sh do_autogen: add -H for --with-hadoop 2011-04-25 11:05:43 -07:00
Doxyfile Integrate Doxygen into Sphinx docs. 2011-08-29 17:27:14 -07:00
INSTALL
Makefile.am Makefile: include run-cli-tests-maybe-unset-ccache in dist tarball. 2011-09-23 15:55:01 -07:00
NEWS
README c* -> ceph-* 2011-09-22 15:08:25 -07:00
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