# v0.21 07/28/2010 stable single-mds, cfuse, kclient, osd and mds failure recovery. * Feature #21: optionally use libatomic for atomic_t * Feature #32: msgr: send messages via a Connection* * Feature #33: O_LAZY or equivalent * Bug #37: osd: recover missing clone object * Bug #56: osd: crash on repop completion * Cleanup #58: kill nstring/cstring, use std::basic_string instead * Bug #59: max_size of 1 * Feature #60: librados: selfmanaged snaps * Bug #62: readdir out of sync on different nodes * Bug #76: osd: snapdir object recovery doesn't work * Feature #105: mon: warn on clock drift * Bug #110: utime_t should be UTC, not local time * Feature #112: osd: snap rollback object op * Bug #114: osd: corrupted pglog * Bug #117: osd: lone osd might not notice new peers of simultaneously marked down * Bug #120: monitor cluster expansion broken * Cleanup #121: roll mkmonfs functionality into cmon * Feature #125: log rotation * Feature #128: librados: implement get pool stats * Bug #132: slow mon recovery after operating degraded for too long * Feature #135: Specify crush rules * Bug #158: cmon silently fails if addr is wrong in ceph.conf (0.20.1) * Bug #159: cfuse abort on file delete (0.20.2) * Bug #173: Throttle client requests on OSD * Bug #176: osd: make_clone needs to duplicate xattrs * Feature #180: Return ENOTEMPTY when trying to remove a directory which has a snapshot * Bug #186: BUG: failed to decode message of type 66 v1: buffer::exception * Bug #192: inconsistent md5sum on repeated read of file * Bug #197: osd: FAILED assert(state == DELAYED || state == RMW) * Bug #203: osd journal full deadlock? * Bug #205: remove journal write cache warning? * Bug #212: osd: journal vs filestore sync in writeahead move * Bug #215: osd crash: FAILED assert(seq >= last_committed_seq) * Bug #244: msgr throttler deadlock * Cleanup #258: make logger output rotatable, cleaner * Bug #290: take osd1 or osd.1 to initscript * Bug #300: osd: make pg removal atomic * Bug #307: osd: fix wrnoop on dup op * Bug #308: osd can't get full map history