Ceph is a distributed object, block, and file storage platform
Go to file
Sage Weil 64ca584da1 osd: don't complete recovery if unfound
Otherwise we fail the !needs_recovery() assert.  Because we aren't
recovered.  For example,

2012-02-21 16:16:13.104665 1685c700 osd.5 1217 pg[0.16( v 1215'337 lc 19'2 (0'0,1215'337] n=25 ec=1 les/c 0/1061 1210/1210/1210) [5,3] r=0 lpr=1210 mlcod 0'0 active m=23 u=23 snaptrimq=[1~99,9b~e,aa~72,11d~3d,15b~e,16a~f,17a~5,180~4,185~1a,1a0~a,1ac~10,1bd~4,1c2~8,1cb~1,1cd~1,1cf~1a,1ea~10,1fb~6,202~2,205~2,209~2,20c~8,215~2,218~5,21e~1,220~1,222~9,22c~4,231~3,235~2,238~3,23e~2,241~4,246~1,248~1,24b~1,24d~9,257~6,25e~1,263~1,265~2,268~3,26e~1,273~1,275~5,27e~1,280~2]] needs_recovery osd.3 has 23 missing
osd/PG.cc: In function 'boost::statechart::result PG::RecoveryState::Active::react(const PG::RecoveryState::RecoveryComplete&)' thread 1685c700 time 2012-02-21 16:16:13.108923
osd/PG.cc: 4070: FAILED assert(!pg->needs_recovery())
 ceph version 0.42-70-g0e4367a (commit:0e4367aaac88b99c36386b6ce5e8d816fdd4ada0)
 1: (PG::RecoveryState::Active::react(PG::RecoveryState::RecoveryComplete const&)+0x1b3) [0x6a1173]
 2: (boost::statechart::simple_state<PG::RecoveryState::Active, PG::RecoveryState::Primary, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)+0x121) [0x6c7301]
 3: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x6b) [0x6bfc6b]
 4: (PG::RecoveryState::handle_recovery_complete(PG::RecoveryCtx*)+0x10c) [0x67c03c]
 5: (ReplicatedPG::start_recovery_ops(int, PG::RecoveryCtx*)+0x241) [0x4f83c1]
 6: (OSD::do_recovery(PG*)+0x345) [0x54b3e5]
 7: (ThreadPool::worker()+0xa26) [0x619e66]
 8: (ThreadPool::WorkThread::entry()+0xd) [0x57ad5d]
 9: (()+0x7971) [0x5037971]
 10: (clone()+0x6d) [0x679f92d]

Signed-off-by: Sage Weil <sage@newdream.net>
Reviewed-by: Samuel Just <samuel.just@dreamhost.com>
2012-02-23 09:39:50 -08:00
admin doc: Switch doxygen integration from breathe to asphyxiate. 2012-01-09 19:03:56 -08:00
ceph-object-corpus@b2639b83db test/encoding/readable.sh: skip old version with known incompatibilities 2012-02-13 14:08:25 -08:00
debian v0.42 2012-02-19 15:30:37 -08:00
doc Merge branch 'next' 2012-02-17 14:31:44 -08:00
fusetrace
keys doc: Write about deb installation. 2011-09-02 12:34:05 -07:00
m4 Makefile: Add recent acx_pthread.m4 that has a fix for nostdlib issue. 2012-01-12 09:17:06 -08:00
man man: regenerate man pages 2012-02-17 14:27:13 -08:00
qa qa/btrfs/test_rmdir_async_snap 2012-02-20 10:56:42 -08:00
src osd: don't complete recovery if unfound 2012-02-23 09:39:50 -08:00
udev udev: drop device number from name 2011-12-08 16:36:47 -08:00
wireshark
.gitignore .gitignore: src/ocf/ceph 2011-12-30 09:17:06 -08:00
.gitmodules add ceph-object-corpus.git submodule 2012-02-08 13:17:22 -08:00
AUTHORS
autogen.sh
ceph.spec.in ceph.spec.in: Move libcls_*.so from -devel to base package 2012-02-15 09:28:41 -08:00
ChangeLog
CodingStyle CodingStyle: whitespace 2011-07-14 10:50:08 -07:00
configure.ac v0.42 2012-02-19 15:30:37 -08:00
COPYING COPYING: note licenses for all files, not just the default 2012-01-12 10:03:27 -08:00
COPYING-LGPL2.1 COPYING: note licenses for all files, not just the default 2012-01-12 10:03:27 -08:00
do_autogen.sh do_autogen.sh: -e <path> to dump encoded objects to a path 2012-02-01 16:34:00 -08:00
Doxyfile doxygen: Use first sentence as brief description. 2012-01-09 19:03:56 -08: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