The Ceph Blog

Featured Post

v10.0.0 released

This is the first development release for the Jewel cycle.  We are off to a good start, with lots of performance improvements flowing into the tree.  We are targeting sometime in Q1 2016 for the final Jewel.


  • build: cmake tweaks (pr#6254, John Spray)
  • build: more CMake package check fixes (pr#6108, Daniel Gryniewicz)
  • ceph-disk: get Nonetype when ceph-disk list with –format plain on single device. (pr#6410, Vicente Cheng)
  • ceph: fix tell behavior (pr#6329, David Zafman)
  • ceph-fuse: While starting ceph-fuse, start the log thread first (issue#13443, pr#6224, Wenjun Huang)
  • client: don’t mark_down on command reply (pr#6204, John Spray)
  • client: drop prefix from ints (pr#6275, John Coyle)
  • client: sys/file.h includes for flock operations (pr#6282, John Coyle)
  • cls_rbd: change object_map_update to return 0 on success, add logging (pr#6467, Douglas Fuller)
  • cmake: Use uname instead of arch. (pr#6358, John Coyle)
  • common: assert: __STRING macro is not defined by musl libc. (pr#6210, John Coyle)
  • common: fix OpTracker age histogram calculation (pr#5065, Zhiqiang Wang)
  • common/MemoryModel: Added explicit feature check for mallinfo(). (pr#6252, John Coyle)
  • common/ fix verification crashing when there’s no objects (pr#5853, Piotr Dałek)
  • common: optimize debug logging (pr#6307, Adam Kupczyk)
  • common: Thread: move copy constructor and assignment op (pr#5133, Michal Jarzabek)
  • common: WorkQueue: new PointerWQ base class for ContextWQ (issue#13636, pr#6525, Jason Dillaman)
  • compat: use prefixed typeof extension (pr#6216, John Coyle)
  • crush: validate bucket id before indexing buckets array (issue#13477, pr#6246, Sage Weil)
  • doc: download GPG key from (issue#13603, pr#6384, Ken Dreyer)
  • doc: fix outdated content in cache tier (pr#6272, Yuan Zhou)
  • doc/release-notes: v9.1.0 (pr#6281, Loic Dachary)
  • doc/releases-notes: fix build error (pr#6483, Kefu Chai)
  • doc: remove toctree items under Create CephFS (pr#6241, Jevon Qiao)
  • doc: rename the “Create a Ceph User” section and add verbage about… (issue#13502, pr#6297, ritz303)
  • docs: Fix styling of newly added mirror docs (pr#6127, Wido den Hollander)
  • doc, tests: update all to (pr#6435, Alfredo Deza)
  • doc: update doc for with new pool settings (pr#5951, Guang Yang)
  • doc: update radosgw-admin example (pr#6256, YankunLi)
  • doc: update the OS recommendations for newer Ceph releases (pr#6355, ritz303)
  • drop envz.h includes (pr#6285, John Coyle)
  • libcephfs: Improve portability by replacing loff_t type usage with off_t (pr#6301, John Coyle)
  • libcephfs: only check file offset on glibc platforms (pr#6288, John Coyle)
  • librados: fix examples/librados/Makefile error. (pr#6320, You Ji)
  • librados: init crush_location from config file. (issue#13473, pr#6243, Wei Luo)
  • librados: wrongly passed in argument for stat command (issue#13703, pr#6476, xie xingguo)
  • librbd: deadlock while attempting to flush AIO requests (issue#13726, pr#6508, Jason Dillaman)
  • librbd: fix enable objectmap feature issue (issue#13558, pr#6339, xinxin shu)
  • librbd: remove duplicate read_only test in librbd::async_flatten (pr#5856, runsisi)
  • mailmap: modify member info (pr#6468, Xiaowei Chen)
  • mailmap: updates (pr#6258, M Ranga Swami Reddy)
  • mailmap: Xie Xingguo affiliation (pr#6409, Loic Dachary)
  • mds: implement snapshot rename (pr#5645, xinxin shu)
  • mds: messages/MOSDOp: cast in assert to eliminate warnings (issue#13625, pr#6414, David Zafman)
  • mds: new filtered MDS tell commands for sessions (pr#6180, John Spray)
  • mds/Session: use projected parent for auth path check (issue#13364, pr#6200, Sage Weil)
  • mon: should not set isvalid = true when cephx_verify_authorizer return false (issue#13525, pr#6306, Ruifeng Yang)
  • osd: Add config option osd_read_ec_check_for_errors for testing (pr#5865, David Zafman)
  • osd: add pin/unpin support to cache tier (11066) (pr#6326, Zhiqiang Wang)
  • osd: auto repair EC pool (issue#12754, pr#6196, Guang Yang)
  • osd: drop the interim set from load_pgs() (pr#6277, Piotr Dałek)
  • osd: FileJournal: _fdump wrongly returns if journal is currently unreadable. (issue#13626, pr#6406, xie xingguo)
  • osd: FileStore: add a field indicate xattr only one chunk for set xattr. (pr#6244, Jianpeng Ma)
  • osd: FileStore: LFNIndex: remove redundant local variable ‘obj’. (issue#13552, pr#6333, xiexingguo)
  • osd: FileStore: potential memory leak if _fgetattrs fails (issue#13597, pr#6377, xie xingguo)
  • osd: FileStore: remove unused local variable ‘handle’ (pr#6381, xie xingguo)
  • osd: fix bogus scrub results when missing a clone (issue#12738, issue#12740, pr#5783, David Zafman)
  • osd: fix debug message in OSD::is_healthy (pr#6226, Xiaoxi Chen)
  • osd: fix MOSDOp encoding (pr#6174, Sage Weil)
  • osd: init started to 0 (issue#13206, pr#6107, Sage Weil)
  • osd: KeyValueStore: fix the name’s typo of keyvaluestore_default_strip_size (pr#6375, Zhi Zhang)
  • osd: new and delete ObjectStore::Transaction in a function is not necessary (pr#6299, Ruifeng Yang)
  • osd: optimize get_object_context (pr#6305, Jianpeng Ma)
  • osd: optimize MOSDOp/do_op/handle_op (pr#5211, Jacek J. Lakis)
  • osd: os/chain_xattr: On linux use linux/limits.h for XATTR_NAME_MAX. (pr#6343, John Coyle)
  • osd: reorder bool fields in PGLog struct (pr#6279, Piotr Dałek)
  • osd: ReplicatedPG: remove unused local variables (issue#13575, pr#6360, xiexingguo)
  • osd: reset primary and up_primary when building a new past_interval. (issue#13471, pr#6240, xiexingguo)
  • radosgw-admin: Checking the legality of the parameters (issue#13018, pr#5879, Qiankun Zheng)
  • radosgw-admin: Create –secret-key alias for –secret (issue#5821, pr#5335, Yuan Zhou)
  • radosgw-admin: metadata list user should return an empty list when user pool is empty (issue#13596, pr#6465, Orit Wasserman)
  • rados: new options for write benchmark (pr#6340, Joaquim Rocha)
  • rbd: fix clone isssue (issue#13553, pr#6334, xinxin shu)
  • rbd: fix init-rbdmap CMDPARAMS (issue#13214, pr#6109, Sage Weil)
  • rbdmap: systemd support (issue#13374, pr#6479, Boris Ranto)
  • rbd: rbdmap improvements (pr#6445, Boris Ranto)
  • release-notes: draft v0.94.4 release notes (pr#5907, Loic Dachary)
  • release-notes: draft v0.94.4 release notes (pr#6195, Loic Dachary)
  • release-notes: draft v0.94.4 release notes (pr#6238, Loic Dachary)
  • rgw: add compat header for TEMP_FAILURE_RETRY (pr#6294, John Coyle)
  • rgw: add default quota config (pr#6400, Daniel Gryniewicz)
  • rgw: add support for getting Swift’s DLO without manifest handling (pr#6206, Radoslaw Zarzynski)
  • rgw: clarify the error message when trying to create an existed user (pr#5938, Zeqiang Zhuang)
  • rgw: fix objects can not be displayed which object name does not cont… (issue#12963, pr#5738, Weijun Duan)
  • rgw: fix typo in RGWHTTPClient::process error message (pr#6424, Brad Hubbard)
  • rgw: fix wrong etag calculation during POST on S3 bucket. (issue#11241, pr#6030, Radoslaw Zarzynski)
  • rgw: mdlog trim add usage prompt (pr#6059, Weijun Duan)
  • rgw: modify the conditional statement in parse_metadata_key method. (pr#5875, Zengran Zhang)
  • rgw: refuse to calculate digest when the s3 secret key is empty (issue#13133, pr#6045, Sangdi Xu)
  • rgw: remove extra check in RGWGetObj::execute (issue#12352, pr#5262, Javier M. Mellid)
  • rgw: support core file limit for radosgw daemon (pr#6346, Guang Yang)
  • rgw: swift use Civetweb ssl can not get right url (issue#13628, pr#6408, Weijun Duan)
  • rocksdb: build with PORTABLE=1 (pr#6311, Sage Weil)
  • rocksdb: remove rdb source files from dist tarball (issue#13554, pr#6379, Kefu Chai)
  • rocksdb: use native rocksdb makefile (and our autotools) (pr#6290, Sage Weil)
  • rpm: correctly declare systemd dependency for SLE/openSUSE (pr#6114, Nathan Cutler)
  • rpm: fix libs-compat / devel-compat conditional (issue#12315, pr#5219, Ken Dreyer)
  • rpm: rhel 5.9 librados compile fix, moved blkid to RBD check/compilation (issue#13177, pr#5954, Rohan Mars)
  • scripts: release_notes can track original issue (pr#6009, Abhishek Lekshmanan)
  • test/libcephfs/flock: add sys/file.h include for flock operations (pr#6310, John Coyle)
  • test_rgw_admin: use freopen for output redirection. (pr#6303, John Coyle)
  • tests: allow to run under root (issue#13355, pr#6173, Loic Dachary)
  • tests: ceph-disk workunit uses configobj (pr#6342, Loic Dachary)
  • tests: destroy testprofile before creating one (issue#13664, pr#6446, Loic Dachary)
  • tests: port uniqueness reminder (pr#6387, Loic Dachary)
  • tests: test/librados/ must create profile (issue#13664, pr#6452, Loic Dachary)
  • tools/cephfs: fix overflow writing header to fixed size buffer (#13816) (pr#6617, John Spray)
  • tools: ceph-monstore-update-crush: add “–test” when testing crushmap (pr#6418, Kefu Chai)
  • tools:remove duplicate references (pr#5917, Bo Cai)
  • vstart: grant full access to Swift testing account (pr#6239, Yuan Zhou)
  • vstart: set cephfs root uid/gid to caller (pr#6255, John Spray)


Earlier Posts

v0.80.11 Firefly released

This is a bugfix release for Firefly.  As the Firefly 0.80.x series is nearing its planned end of life in January 2016 it may also be the last.

We recommend that all Firefly users upgrade.

For more detailed information, see the complete changelog.


  • build/ops: /etc/init.d/radosgw restart does not work correctly (issue#11140, pr#5831, Dmitry Yatsushkevich)
  • build/ops: Fix -Wno-format and -Werror=format-security options clash (issue#13417, pr#6207, Boris Ranto)
  • build/ops: ceph-common needs python-argparse on older distros, but doesn’t require it (issue#12034, pr#5217, Nathan Cutler)
  • build/ops: running fdupes unnecessarily (issue#12301, pr#5224, Nathan Cutler)
  • build/ops: 50-rbd.rules conditional is wrong (issue#12166, pr#5225, Nathan Cutler)
  • build/ops: useless %py_requires breaks SLE11-SP3 build (issue#12351, pr#5394, Nathan Cutler)
  • build/ops: fedora21 has junit, not junit4 (issue#10728, pr#6203, Ken Dreyer, Loic Dachary)
  • build/ops: upstart: configuration is too generous on restarts (issue#11798, pr#5992, Sage Weil)
  • common: Client admin socket leaks file descriptors (issue#11535, pr#4633, Jon Bernard)
  • common: FileStore calls syncfs(2) even it is not supported (issue#12512, pr#5529, Danny Al-Gaaf, Kefu Chai, Jianpeng Ma)
  • common: HeartBeat: include types (issue#13088, pr#6038, Sage Weil)
  • common: Malformed JSON command output when non-ASCII strings are present (issue#7387, pr#4635, Kefu Chai, Tim Serong)
  • common: Memory leak in, pthread_mutexattr_init without pthread_mutexattr_destroy (issue#11762, pr#5403, Ketor Meng)
  • common: Thread:pthread_attr_destroy(thread_attr) when done with it (issue#12570, pr#6325, Piotr Dałek, Zheng Qiankun)
  • common: ThreadPool add/remove work queue methods not thread safe (issue#12662, pr#5991, Jason Dillaman)
  • common: buffer: critical bufferlist::zero bug (issue#12252, pr#5388, Haomai Wang)
  • common: log: take mutex while opening fd (issue#12465, pr#5406, Samuel Just)
  • common: recursive lock of md_config_t (0) (issue#12614, pr#5814, Josh Durgin)
  • crush: take crashes due to invalid arg (issue#11602, pr#4769, Sage Weil)
  • doc: backport v0.80.10 release notes to firefly (issue#11090, pr#5307, Loic Dachary, Sage Weil)
  • doc: update docs to point to (issue#13162, pr#5993, Alfredo Deza)
  • fs: MDSMonitor: handle MDSBeacon messages properly (issue#11590, pr#5199, Kefu Chai)
  • fs: client nonce collision due to unshared pid namespaces (issue#13032, pr#6087, Josh Durgin, Sage Weil)
  • librbd: Objectcacher setting max object counts too low (issue#7385, pr#4639, Jason Dillaman)
  • librbd: aio calls may block (issue#11056, pr#4854, Haomai Wang, Sage Weil, Jason Dillaman)
  • librbd: 1967: FAILED assert(watchers.size() == 1) (issue#12176, pr#5171, Jason Dillaman)
  • mon: Clock skew causes missing summary and confuses Calamari (issue#11877, pr#4867, Thorsten Behrens)
  • mon: EC pools are not allowed as cache pools, disallow in the mon (issue#11650, pr#5389, Samuel Just)
  • mon: Make it more difficult to delete pools in firefly (issue#11800, pr#4788, Sage Weil)
  • mon: MonitorDBStore: get_next_key() only if prefix matches (issue#11786, pr#5360, Joao Eduardo Luis)
  • mon: PaxosService: call post_refresh() instead of post_paxos_update() (issue#11470, pr#5358, Joao Eduardo Luis)
  • mon: add a cache layer over MonitorDBStore (issue#12638, pr#5698, Kefu Chai)
  • mon: adding exsting pool as tier with –force-nonempty clobbers removed_snaps (issue#11493, pr#5236, Sage Weil, Samuel Just)
  • mon: ceph fails to compile with boost 1.58 (issue#11576, pr#5129, Kefu Chai)
  • mon: does not check for IO errors on every transaction (issue#13089, pr#6091, Sage Weil)
  • mon: get pools health’info have error (issue#12402, pr#5410, renhwztetecs)
  • mon: increase globalid default for firefly (issue#13255, pr#6010, Sage Weil)
  • mon: pgmonitor: wrong at/near target max“ reporting (issue#12401, pr#5409, huangjun)
  • mon: register_new_pgs() should check ruleno instead of its index (issue#12210, pr#5404, Xinze Chi)
  • mon: scrub error (osdmap encoding mismatch?) upgrading from 0.80 to ~0.80.2 (issue#8815, issue#8674, issue#9064, pr#5200, Sage Weil, Zhiqiang Wang, Samuel Just)
  • mon: the output is wrong when runing ceph osd reweight (issue#12251, pr#5408, Joao Eduardo Luis)
  • objecter: can get stuck in redirect loop if osdmap epoch == last_force_op_resend (issue#11026, pr#4597, Jianpeng Ma, Sage Weil)
  • objecter: pg listing can deadlock when throttling is in use (issue#9008, pr#5043, Guang Yang)
  • objecter: resend linger ops on split (issue#9806, pr#5062, Josh Durgin, Samuel Just)
  • osd: Cleanup boost optionals for boost 1.56 (issue#9983, pr#5039, William A. Kennington III)
  • osd: LibRadosTwoPools[EC]PP.PromoteSnap failure (issue#10052, pr#5050, Sage Weil)
  • osd: Mutex Assert from PipeConnection::try_get_pipe (issue#12437, pr#5815, David Zafman)
  • osd: PG stuck with remapped (issue#9614, pr#5044, Guang Yang)
  • osd: PG::handle_advance_map: on_pool_change after handling the map change (issue#12809, pr#5988, Samuel Just)
  • osd: PGLog: split divergent priors as well (issue#11069, pr#4631, Samuel Just)
  • osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (issue#11358, pr#5287, Samuel Just)
  • osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (issue#12223, pr#5822, Samuel Just)
  • osd: cache full mode still skips young objects (issue#10006, pr#5051, Xinze Chi, Zhiqiang Wang)
  • osd: crash creating/deleting pools (issue#12429, pr#5526, John Spray)
  • osd: explicitly specify OSD features in MOSDBoot (issue#10911, pr#4960, Sage Weil)
  • osd: is_new_interval() fixes (issue#11771, issue#10399, pr#5726, Samuel Just, Jason Dillaman)
  • osd: make the all osd/filestore thread pool suicide timeouts separately configurable (issue#11439, pr#5823, Samuel Just)
  • osd: object creation by write cannot use an offset on an erasure coded pool (issue#11507, pr#4632, Jianpeng Ma, Loic Dachary)
  • osd: os/FileJournal: Fix journal write fail, align for direct io (issue#12943, pr#5619, Xie Rui)
  • osd: osd/ 732: FAILED assert(log.log.size() == log_keys_debug.size()) (issue#12652, pr#5820, Sage Weil)
  • osd: read on chunk-aligned xattr not handled (issue#12309, pr#5235, Sage Weil)
  • rgw: Change variable length array of std::strings (not legal in C++) to std::vector<std::string> (issue#12467, pr#4583, Daniel J. Hofmann)
  • rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (issue#11851, pr#5234, Yehuda Sadeh)
  • rgw: Keystone PKI token expiration is not enforced (issue#11367, pr#4765, Anton Aksola)
  • rgw: Object copy bug (issue#11639, pr#4762, Javier M. Mellid)
  • rgw: RGW returns requested bucket name raw in “Bucket” response header (issue#11860, issue#12537, pr#5730, Yehuda Sadeh, Wido den Hollander)
  • rgw: Swift API: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used (issue#11036, pr#5170, Radoslaw Zarzynski)
  • rgw: content length parsing calls strtol() instead of strtoll() (issue#10701, pr#5997, Yehuda Sadeh)
  • rgw: delete bucket does not remove .bucket.meta file (issue#11149, pr#4641, Orit Wasserman)
  • rgw: doesn’t return ‘x-timestamp’ in header which is used by ‘View Details’ of OpenStack (issue#8911, pr#4584, Yehuda Sadeh)
  • rgw: init some manifest fields when handling explicit objs (issue#11455, pr#5729, Yehuda Sadeh)
  • rgw: logfile does not get chowned properly (issue#12073, pr#5233, Thorsten Behrens)
  • rgw: logrotate.conf calls service with wrong init script name (issue#12043, pr#5390, wuxingyi)
  • rgw: quota not respected in POST object (issue#11323, pr#4642, Sergey Arkhipov)
  • rgw: swift smoke test fails on TestAccountUTF8 (issue#11091, issue#11438, issue#12939, issue#12157, issue#12158, issue#12363, pr#5532, Radoslaw Zarzynski, Orit Wasserman, Robin H. Johnson)
  • rgw: use correct objv_tracker for bucket instance (issue#11416, pr#4535, Yehuda Sadeh)
  • tests: ceph-fuse crash in test_client_recovery (issue#12673, pr#5813, Loic Dachary)
  • tests: kernel_untar_build fails on EL7 (issue#11758, pr#6000, Greg Farnum)
  • tests: qemu workunit refers to (issue#13420, pr#6328, Yuan Zhou, Sage Weil)
  • tools: src/ceph-disk : disk zap sgdisk invocation (issue#11143, pr#4636, Thorsten Behrens, Owen Synge)
  • tools: ceph-disk: sometimes the journal symlink is not created (issue#10146, pr#5541, Dan van der Ster)
  • tools: ceph-disk: support NVMe device partitions (issue#11612, pr#4771, Ilja Slepnev)
  • tools: ceph-post-file fails on rhel7 (issue#11836, pr#5037, Joseph McDonald, Sage Weil)
  • tools: ceph_argparse_flag has no regular 3rd parameter (issue#11543, pr#4582, Thorsten Behrens)
  • tools: use a new disk as journal disk,ceph-disk prepare fail (issue#10983, pr#4630, Loic Dachary)



In case you didn’t know, Ceph Days are a series of regular events in support of the Ceph community that happen at locations around the world from New York to Berlin, and more recently in APAC to Shanghai and Melbourne.

The Melbourne edition on November 5th, 2015 was Australia’s first ever Ceph Day. It was hosted at the Clayton campus of sponsor Monash University, about a $60 Uber ride from the city centre. Monash is also home to a part of Australia’s national research cloud: NeCTAR, including Ceph-backed storage capacity provided as part of the Research Data Services initiative.

Watch this video to get a feel for the day in about 2 minutes.

read more…

v9.2.0 Infernalis released

InfernalisThis major release will be the foundation for the next stable series. There have been some major changes since v0.94.x Hammer, and the upgrade process is non-trivial. Please read these release notes carefully.


read more…

v0.94.5 Hammer released

This Hammer point release fixes a critical regression in librbd that can cause Qemu/KVM to crash when caching is enabled on images that have been cloned.

All v0.94.4 Hammer users are strongly encouraged to upgrade.


  • librbd: potential assertion failure during cache read (issue#13559, pr#6348, Jason Dillaman)
  • osd: osd/ReplicatedPG: remove stray debug line (issue#13455, pr#6362, Sage Weil)
  • tests: qemu workunit refers to (issue#13420, pr#6330, Yuan Zhou)

For more detailed information, see the complete changelog.


v0.94.4 Hammer released

This Hammer point fixes several important bugs in Hammer, as well as fixing interoperability issues that are required before an upgrade to Infernalis. That is, all users of earlier version of Hammer or any version of Firefly will first need to upgrade to hammer v0.94.4 or later before upgrading to Infernalis (or future releases).

All v0.94.x Hammer users are strongly encouraged to upgrade.


  • build/ops: 50-rbd.rules conditional is wrong (issue#12166, pr#5207, Nathan Cutler)
  • build/ops: ceph-common needs python-argparse on older distros, but doesn’t require it (issue#12034, pr#5216, Nathan Cutler)
  • build/ops: radosgw requires apache for SUSE only – makes no sense (issue#12358, pr#5411, Nathan Cutler)
  • build/ops: rpm: cephfs_java not fully conditionalized (issue#11991, pr#5202, Nathan Cutler)
  • build/ops: rpm: not possible to turn off Java (issue#11992, pr#5203, Owen Synge)
  • build/ops: running fdupes unnecessarily (issue#12301, pr#5223, Nathan Cutler)
  • build/ops: snappy-devel for all supported distros (issue#12361, pr#5264, Nathan Cutler)
  • build/ops: SUSE/openSUSE builds need libbz2-devel (issue#11629, pr#5204, Nathan Cutler)
  • build/ops: useless %py_requires breaks SLE11-SP3 build (issue#12351, pr#5412, Nathan Cutler)
  • build/ops: error in ext_mime_map_init() when /etc/mime.types is missing (issue#11864, pr#5385, Ken Dreyer)
  • build/ops: upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s) (issue#11798, pr#5930, Sage Weil)
  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#10927, pr#6161, Sage Weil)
  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#11140, pr#6161, Sage Weil)
  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#11686, pr#6161, Sage Weil)
  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#12407, pr#6161, Sage Weil)
  • cli: ceph: cli throws exception on unrecognized errno (issue#11354, pr#5368, Kefu Chai)
  • cli: ceph tell: broken error message / misleading hinting (issue#11101, pr#5371, Kefu Chai)
  • common: arm: all programs that link to librados2 hang forever on startup (issue#12505, pr#5366, Boris Ranto)
  • common: buffer: critical bufferlist::zero bug (issue#12252, pr#5365, Haomai Wang)
  • common: ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects (issue#13070, pr#5551, Sage Weil)
  • common: do not insert emtpy ptr when rebuild emtpy bufferlist (issue#12775, pr#5764, Xinze Chi)
  • common: [ FAILED ] TestLibRBD.BlockingAIO (issue#12479, pr#5768, Jason Dillaman)
  • common: LibCephFS.GetPoolId failure (issue#12598, pr#5887, Yan, Zheng)
  • common: Memory leak in, pthread_mutexattr_init without pthread_mutexattr_destroy (issue#11762, pr#5378, Ketor Meng)
  • common: object_map_update fails with -EINVAL return code (issue#12611, pr#5559, Jason Dillaman)
  • common: Pipe: Drop connect_seq increase line (issue#13093, pr#5908, Haomai Wang)
  • common: recursive lock of md_config_t (0) (issue#12614, pr#5759, Josh Durgin)
  • crush: ceph osd crush reweight-subtree does not reweight parent node (issue#11855, pr#5374, Sage Weil)
  • doc: update docs to point to (issue#13162, pr#6156, Alfredo Deza)
  • fs: ceph-fuse 0.94.2-1trusty segfaults / aborts (issue#12297, pr#5381, Greg Farnum)
  • fs: segfault launching ceph-fuse with bad –name (issue#12417, pr#5382, John Spray)
  • librados: Change radosgw pools default crush ruleset (issue#11640, pr#5754, Yuan Zhou)
  • librbd: correct issues discovered via lockdep / helgrind (issue#12345, pr#5296, Jason Dillaman)
  • librbd: Crash during TestInternal.MultipleResize (issue#12664, pr#5769, Jason Dillaman)
  • librbd: deadlock during cooperative exclusive lock transition (issue#11537, pr#5319, Jason Dillaman)
  • librbd: Possible crash while concurrently writing and shrinking an image (issue#11743, pr#5318, Jason Dillaman)
  • mon: add a cache layer over MonitorDBStore (issue#12638, pr#5697, Kefu Chai)
  • mon: fix crush testing for new pools (issue#13400, pr#6192, Sage Weil)
  • mon: get pools health’info have error (issue#12402, pr#5369, renhwztetecs)
  • mon: implicit erasure code crush ruleset is not validated (issue#11814, pr#5276, Loic Dachary)
  • mon: PaxosService: call post_refresh() instead of post_paxos_update() (issue#11470, pr#5359, Joao Eduardo Luis)
  • mon: pgmonitor: wrong at/near target max“ reporting (issue#12401, pr#5370, huangjun)
  • mon: register_new_pgs() should check ruleno instead of its index (issue#12210, pr#5377, Xinze Chi)
  • mon: Show osd as NONE in ceph osd map <pool> <object> output (issue#11820, pr#5376, Shylesh Kumar)
  • mon: the output is wrong when runing ceph osd reweight (issue#12251, pr#5372, Joao Eduardo Luis)
  • osd: allow peek_map_epoch to return an error (issue#13060, pr#5892, Sage Weil)
  • osd: cache agent is idle although one object is left in the cache (issue#12673, pr#5765, Loic Dachary)
  • osd: copy-from doesn’t preserve truncate_{seq,size} (issue#12551, pr#5885, Samuel Just)
  • osd: crash creating/deleting pools (issue#12429, pr#5527, John Spray)
  • osd: fix repair when recorded digest is wrong (issue#12577, pr#5468, Sage Weil)
  • osd: include/ceph_features: define HAMMER_0_94_4 feature (issue#13026, pr#5687, Sage Weil)
  • osd: is_new_interval() fixes (issue#10399, pr#5691, Jason Dillaman)
  • osd: is_new_interval() fixes (issue#11771, pr#5691, Jason Dillaman)
  • osd: long standing slow requests: connection->session->waiting_for_map->connection ref cycle (issue#12338, pr#5761, Samuel Just)
  • osd: Mutex Assert from PipeConnection::try_get_pipe (issue#12437, pr#5758, David Zafman)
  • osd: pg_interval_t::check_new_interval – for ec pool, should not rely on min_size to determine if the PG was active at the interval (issue#12162, pr#5373, Guang G Yang)
  • osd: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (issue#12652, pr#5763, Sage Weil)
  • osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (issue#11358, pr#5380, Samuel Just)
  • osd: read on chunk-aligned xattr not handled (issue#12309, pr#5367, Sage Weil)
  • osd: suicide timeout during peering – search for missing objects (issue#12523, pr#5762, Guang G Yang)
  • osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (issue#12223, pr#5757, Samuel Just)
  • rbd: crash during shutdown after writeback blocked by IO errors (issue#12597, pr#5767, Jianpeng Ma)
  • rgw: add delimiter to prefix only when path is specified (issue#12960, pr#5860, Sylvain Baubeau)
  • rgw: create a tool for orphaned objects cleanup (issue#9604, pr#5717, Yehuda Sadeh)
  • rgw: don’t preserve acls when copying object (issue#11563, pr#6039, Yehuda Sadeh)
  • rgw: don’t preserve acls when copying object (issue#12370, pr#6039, Yehuda Sadeh)
  • rgw: don’t preserve acls when copying object (issue#13015, pr#6039, Yehuda Sadeh)
  • rgw: Ensure that swift keys don’t include backslashes (issue#7647, pr#5716, Yehuda Sadeh)
  • rgw: GWWatcher::handle_error -> common/ 95: FAILED assert(r == 0) (issue#12208, pr#6164, Yehuda Sadeh)
  • rgw: HTTP return code is not being logged by CivetWeb (issue#12432, pr#5498, Yehuda Sadeh)
  • rgw: init_rados failed leads to repeated delete (issue#12978, pr#6165, Xiaowei Chen)
  • rgw: init some manifest fields when handling explicit objs (issue#11455, pr#5732, Yehuda Sadeh)
  • rgw: Keystone Fernet tokens break auth (issue#12761, pr#6162, Abhishek Lekshmanan)
  • rgw: region data still exist in region-map after region-map update (issue#12964, pr#6163, dwj192)
  • rgw: remove trailing :port from host for purposes of subdomain matching (issue#12353, pr#6042, Yehuda Sadeh)
  • rgw: rest-bench common/ 54: FAILED assert(_threads.empty()) (issue#3896, pr#5383, huangjun)
  • rgw: returns requested bucket name raw in Bucket response header (issue#12537, pr#5715, Yehuda Sadeh)
  • rgw: segmentation fault when rgw_gc_max_objs > HASH_PRIME (issue#12630, pr#5719, Ruifeng Yang)
  • rgw: segments are read during HEAD on Swift DLO (issue#12780, pr#6160, Yehuda Sadeh)
  • rgw: setting max number of buckets for user via ceph.conf option (issue#12714, pr#6166, Vikhyat Umrao)
  • rgw: Swift API: X-Trans-Id header is wrongly formatted (issue#12108, pr#5721, Radoslaw Zarzynski)
  • rgw: testGetContentType and testHead failed (issue#11091, pr#5718, Radoslaw Zarzynski)
  • rgw: testGetContentType and testHead failed (issue#11438, pr#5718, Radoslaw Zarzynski)
  • rgw: testGetContentType and testHead failed (issue#12157, pr#5718, Radoslaw Zarzynski)
  • rgw: testGetContentType and testHead failed (issue#12158, pr#5718, Radoslaw Zarzynski)
  • rgw: testGetContentType and testHead failed (issue#12363, pr#5718, Radoslaw Zarzynski)
  • rgw: the arguments ‘domain’ should not be assigned when return false (issue#12629, pr#5720, Ruifeng Yang)
  • tests: qa/workunits/cephtool/ don’t assume crash_replay_interval=45 (issue#13406, pr#6172, Sage Weil)
  • tests: TEST_crush_rule_create_erasure consistently fails on i386 builder (issue#12419, pr#6201, Loic Dachary)
  • tools: ceph-disk zap should ensure block device (issue#11272, pr#5755, Loic Dachary)

For more detailed information, see the complete changelog.

v9.1.0 Infernalis release candidate released

This is the first Infernalis release candidate. There have been some major changes since Hammer, and the upgrade process is non-trivial. Please read carefully.


The v9.1.0 packages are pushed to the development release repositories:

For for info, see:

Or install with ceph-deploy via:

ceph-deploy install --testing HOST


  • librbd and librados ABI compatibility is broken. Be careful installing this RC on client machines (e.g., those running qemu). It will be fixed in the final v9.2.0 release.


  • General:
    • Ceph daemons are now managed via systemd (with the exception of Ubuntu Trusty, which still uses upstart).
    • Ceph daemons run as ‘ceph’ user instead root.
    • On Red Hat distros, there is also an SELinux policy.
  • RADOS:
    • The RADOS cache tier can now proxy write operations to the base tier, allowing writes to be handled without forcing migration of an object into the cache.
    • The SHEC erasure coding support is no longer flagged as experimental. SHEC trades some additional storage space for faster repair.
    • There is now a unified queue (and thus prioritization) of client IO, recovery, scrubbing, and snapshot trimming.
    • There have been many improvements to low-level repair tooling (ceph-objectstore-tool).
    • The internal ObjectStore API has been significantly cleaned up in order to faciliate new storage backends like NewStore.
  • RGW:
    • The Swift API now supports object expiration.
    • There are many Swift API compatibility improvements.
  • RBD:
    • The rbd du command shows actual usage (quickly, when object-map is enabled).
    • The object-map feature has seen many stability improvements.
    • Object-map and exclusive-lock features can be enabled or disabled dynamically.
    • You can now store user metadata and set persistent librbd options associated with individual images.
    • The new deep-flatten features allows flattening of a clone and all of its snapshots. (Previously snapshots could not be flattened.)
    • The export-diff command command is now faster (it uses aio). There is also a new fast-diff feature.
    • The –size argument can be specified with a suffix for units (e.g., --size 64G).
    • There is a new rbd status command that, for now, shows who has the image open/mapped.
  • CephFS:
    • You can now rename snapshots.
    • There have been ongoing improvements around administration, diagnostics, and the check and repair tools.
    • The caching and revocation of client cache state due to unused inodes has been dramatically improved.
    • The ceph-fuse client behaves better on 32-bit hosts.


We have decided to drop support for many older distributions so that we can move to a newer compiler toolchain (e.g., C++11). Although it is still possible to build Ceph on older distributions by installing backported development tools, we are not building and publishing release packages for

In particular,

  • CentOS 7 or later; we have dropped support for CentOS 6 (and other RHEL 6 derivatives, like Scientific Linux 6).
  • Debian Jessie 8.x or later; Debian Wheezy 7.x’s g++ has incomplete support for C++11 (and no systemd).
  • Ubuntu Trusty 14.04 or later; Ubuntu Precise 12.04 is no longer supported.
  • Fedora 22 or later.


Upgrading directly from Firefly v0.80.z is not possible. All clusters must first upgrade to Hammer v0.94.4 or a later v0.94.z release; only then is it possible to upgrade to Infernalis 9.2.z.

Note that v0.94.4 isn’t released yet, but you can upgrade to a test build from gitbuilder with:

ceph-deploy install --dev hammer HOST

The v0.94.4 Hammer point release will be out before v9.2.0 Infernalis is.


  • For all distributions that support systemd (CentOS 7, Fedora, Debian Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd files instead of the legacy sysvinit scripts. For example,:

    systemctl start       # start all daemons
    systemctl status ceph-osd@12      # check status of osd.12

    The main notable distro that is not yet using systemd is Ubuntu trusty 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)

  • Ceph daemons now run as user and group ceph by default. The ceph user has a static UID assigned by Fedora and Debian (also used by derivative distributions like RHEL/CentOS and Ubuntu). On SUSE the ceph user will currently get a dynamically assigned UID when the user is created.

    If your systems already have a ceph user, upgrading the package will cause problems. We suggest you first remove or rename the existing ‘ceph’ user before upgrading.

    When upgrading, administrators have two options:

    1. Add the following line to ceph.conf on all hosts:

      setuser match path = /var/lib/ceph/$type/$cluster-$id

      This will make the Ceph daemons run as root (i.e., not drop privileges and switch to user ceph) if the daemon’s data directory is still owned by root. Newly deployed daemons will be created with data owned by user ceph and will run with reduced privileges, but upgraded daemons will continue to run as root.

    2. Fix the data ownership during the upgrade. This is the preferred option, but is more work. The process for each host would be to:

      1. Upgrade the ceph package. This creates the ceph user and group. For example:

        ceph-deploy install --stable infernalis HOST
      2. Stop the daemon(s).:

        service ceph stop           # fedora, centos, rhel, debian
        stop ceph-all               # ubuntu
      3. Fix the ownership:

        chown -R ceph:ceph /var/lib/ceph
      4. Restart the daemon(s).:

        start ceph-all                # ubuntu
        systemctl start   # debian, centos, fedora, rhel
  • The on-disk format for the experimental KeyValueStore OSD backend has changed. You will need to remove any OSDs using that backend before you upgrade any test clusters that use it.


  • When a pool quota is reached, librados operations now block indefinitely, the same way they do when the cluster fills up. (Previously they would return -ENOSPC). By default, a full cluster or pool will now block. If your librados application can handle ENOSPC or EDQUOT errors gracefully, you can get error returns instead by using the new librados OPERATION_FULL_TRY flag.


NOTE: These notes are somewhat abbreviated while we find a less time-consuming process for generating them.

  • build: C++11 now supported
  • build: many cmake improvements
  • build: OSX build fixes (Yan, Zheng)
  • build: remove rest-bench
  • ceph-disk: many fixes (Loic Dachary)
  • ceph-disk: support for multipath devices (Loic Dachary)
  • ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
  • ceph-objectstore-tool: many improvements (David Zafman)
  • common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
  • common: make mutex more efficient
  • common: some async compression infrastructure (Haomai Wang)
  • librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
  • librados: fix notify completion race (#13114 Sage Weil)
  • librados, libcephfs: randomize client nonces (Josh Durgin)
  • librados: pybind: fix binary omap values (Robin H. Johnson)
  • librbd: fix reads larger than the cache size (Lu Shi)
  • librbd: metadata filter fixes (Haomai Wang)
  • librbd: use write_full when possible (Zhiqiang Wang)
  • mds: avoid emitting cap warnigns before evicting session (John Spray)
  • mds: fix expected holes in journal objects (#13167 Yan, Zheng)
  • mds: fix SnapServer crash on deleted pool (John Spray)
  • mds: many fixes (Yan, Zheng, John Spray, Greg Farnum)
  • mon: add cache over MonitorDBStore (Kefu Chai)
  • mon: ‘ceph osd metadata’ can dump all osds (Haomai Wang)
  • mon: detect kv backend failures (Sage Weil)
  • mon: fix CRUSH map test for new pools (Sage Weil)
  • mon: fix min_last_epoch_clean tracking (Kefu Chai)
  • mon: misc scaling fixes (Sage Weil)
  • mon: streamline session handling, fix memory leaks (Sage Weil)
  • mon: upgrades must pass through hammer (Sage Weil)
  • msg/async: many fixes (Haomai Wang)
  • osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
  • osd: configure promotion based on write recency (Zhiqiang Wang)
  • osd: don’t send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
  • osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
  • osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
  • osd: fix hitset object naming to use GMT (Kefu Chai)
  • osd: fix misc memory leaks (Sage Weil)
  • osd: fix peek_queue locking in FileStore (Xinze Chi)
  • osd: fix promotion vs full cache tier (Samuel Just)
  • osd: fix replay requeue when pg is still activating (#13116 Samuel Just)
  • osd: fix scrub stat bugs (Sage Weil, Samuel Just)
  • osd: force promotion for ops EC can’t handle (Zhiqiang Wang)
  • osd: improve behavior on machines with large memory pages (Steve Capper)
  • osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
  • osd: newstore prototype (Sage Weil)
  • osd: ObjectStore internal API refactor (Sage Weil)
  • osd: SHEC no longer experimental
  • osd: throttle evict ops (Yunchuan Wen)
  • osd: upgrades must pass through hammer (Sage Weil)
  • osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
  • rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
  • rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
  • rgw: fix casing of Content-Type header (Robin H. Johnson)
  • rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
  • rgw: fix sysvinit script
  • rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
  • rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
  • rgw: log to /var/log/ceph instead of /var/log/radosgw
  • rgw: rework X-Trans-Id header to be conform with Swift API (Radoslaw Rzarzynski)
  • rgw: s3 encoding-type for get bucket (Jeff Weber)
  • rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
  • rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
  • rgw: user rm is idempotent (Orit Wasserman)
  • selinux policy (Boris Ranto, Milan Broz)
  • systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
  • systemd: run daemons as user ceph

Last week, Red Hat investigated an intrusion on the sites of both the Ceph community project ( and Inktank (, which were hosted on a computer system outside of Red Hat infrastructure. provided Ceph community versions downloads signed with a Ceph signing key  (id 7EBFDD5D17ED316D). provided releases of the Red Hat Ceph product for Ubuntu and CentOS operating systems signed with an Inktank signing key (id 5438C7019DCEEEAD). While the investigation into the intrusion is ongoing, our initial focus was on the integrity of the software and distribution channel for both sites.

To date, our investigation has not discovered any compromised code or binaries available for download on these sites. However, we cannot fully rule out the possibility that some compromised code or binaries were available for download at some point in the past. Further, we can no longer trust the integrity of the Ceph signing key, and therefore have created a new signing key (id E84AC2C0460F3994) for verifying downloads.  This new key is committed to the ceph.git repository and is also available from  All future release git tags will be signed with this new key.

This intrusion did not affect other Ceph sites such as (which contained some Ceph downloads) or (which mirrors various source repositories), and is not known to have affected any other Ceph community infrastructure.  There is no evidence that build systems or the Ceph github source repository were compromised.

New hosts for and have been created and the sites have been rebuilt.  All content available on has been verified, and all URLs for package locations now redirect there.  There is still some content missing from that will appear later today: source tarballs will be regenerated from git, and older release packages are being resigned with the new release key.

The host has been retired and affected Red Hat customers have been notified, further information is available at

Users of Ceph packages should take action as a precautionary measure to download the newly-signed versions.  Please see the instructions below.

The Ceph community would like to thank Kai Fabian for initially alerting us to this issue.

The following steps should be performed on all nodes with Ceph software installed.

Replace APT keys (Debian, Ubuntu)

sudo apt-key del 17ED316D
curl | sudo apt-key add -
sudo apt-get update

Replace RPM keys (Fedora, CentOS, SUSE, etc.)

sudo rpm -e --allmatches gpg-pubkey-17ed316d-4fb96ee8
sudo rpm --import ''

Reinstalling packages (Fedora, CentOS, SUSE, etc.)

sudo yum clean metadata
sudo yum reinstall -y $(repoquery --disablerepo=* --enablerepo=ceph --queryformat='%{NAME}' list '*')

v0.94.3 Hammer released

This Hammer point release fixes a critical (though rare) data corruption bug that could be triggered when logs are rotated via SIGHUP. It also fixes a range of other important bugs in the OSD, monitor, RGW, RBD, and CephFS.

All v0.94.x Hammer users are strongly encouraged to upgrade.


  • The pg ls-by-{pool,primary,osd} commands and pg ls now take the argument recovering instead of recovery in order to include the recovering pgs in the listed pgs.


  • librbd: aio calls may block (issue#11770pr#4875, Jason Dillaman)
  • osd: make the all osd/filestore thread pool suicide timeouts separately configurable (issue#11701pr#5159, Samuel Just)
  • mon: ceph fails to compile with boost 1.58 (issue#11982pr#5122, Kefu Chai)
  • tests: TEST_crush_reject_empty must not run a mon (issue#12285,11975pr#5208, Kefu Chai)
  • osd: FAILED assert(!old_value.deleted()) in upgrade:giant-x-hammer-distro-basic-multi run (issue#11983pr#5121, Samuel Just)
  • build/ops: linking ceph to tcmalloc causes segfault on SUSE SLE11-SP3 (issue#12368pr#5265, Thorsten Behrens)
  • common: utf8 and old gcc breakage on RHEL6.5 (issue#7387pr#4687, Kefu Chai)
  • crush: take crashes due to invalid arg (issue#11740pr#4891, Sage Weil)
  • rgw: need conversion tool to handle fixes following #11974 (issue#12502pr#5384, Yehuda Sadeh)
  • rgw: Swift API: support for 202 Accepted response code on container creation (issue#12299pr#5214, Radoslaw Zarzynski)
  • common: Log::reopen_log_file: take m_flush_mutex (issue#12520pr#5405, Samuel Just)
  • rgw: Properly respond to the Connection header with Civetweb (issue#12398pr#5284, Wido den Hollander)
  • rgw: multipart list part response returns incorrect field (issue#12399pr#5285, Henry Chang)
  • build/ops: 95-ceph-osd.rules, mount.ceph, and mount.fuse.ceph not installed properly on SUSE (issue#12397pr#5283, Nathan Cutler)
  • rgw: radosgw-admin dumps user info twice (issue#12400pr#5286, guce)
  • doc: fix doc build (issue#12180pr#5095, Kefu Chai)
  • tests: backport 11493 fixes, and test, preventing ec cache pools (issue#12314pr#4961, Samuel Just)
  • rgw: does not send Date HTTP header when civetweb frontend is used (issue#11872pr#5228, Radoslaw Zarzynski)
  • mon: pg ls is broken (issue#11910pr#5160, Kefu Chai)
  • librbd: A client opening an image mid-resize can result in the object map being invalidated (issue#12237pr#5279, Jason Dillaman)
  • doc: missing man pages for ceph-create-keys, ceph-disk-* (issue#11862pr#4846, Nathan Cutler)
  • tools: ceph-post-file fails on rhel7 (issue#11876pr#5038, Sage Weil)
  • build/ops: rcceph script is buggy (issue#12090pr#5028, Owen Synge)
  • rgw: Bucket header is enclosed by quotes (issue#11874pr#4862, Wido den Hollander)
  • build/ops: packaging: add SuSEfirewall2 service files (issue#12092pr#5030, Tim Serong)
  • rgw: Keystone PKI token expiration is not enforced (issue#11722pr#4884, Anton Aksola)
  • build/ops: debian/control: ceph-common (>> 0.94.2) must be >= 0.94.2-2 (issue#12529,11998pr#5417, Loic Dachary)
  • mon: Clock skew causes missing summary and confuses Calamari (issue#11879pr#4868, Thorsten Behrens)
  • rgw: rados objects wronly deleted (issue#12099pr#5117, wuxingyi)
  • tests: kernel_untar_build fails on EL7 (issue#12098pr#5119, Greg Farnum)
  • fs: Fh ref count will leak if readahead does not need to do read from osd (issue#12319pr#5427, Zhi Zhang)
  • mon: OSDMonitor: allow addition of cache pool with non-empty snaps with co… (issue#12595pr#5252, Samuel Just)
  • mon: MDSMonitor: handle MDSBeacon messages properly (issue#11979pr#5123, Kefu Chai)
  • tools: ceph-disk: get_partition_type fails on /dev/cciss… (issue#11760pr#4892, islepnev)
  • build/ops: max files open limit for OSD daemon is too low (issue#12087pr#5026, Owen Synge)
  • mon: add an “osd crush tree” command (issue#11833pr#5248, Kefu Chai)
  • mon: mon crashes when “ceph osd tree 85 –format json” (issue#11975pr#4936, Kefu Chai)
  • build/ops: ceph / ceph-dbg steal ceph-objecstore-tool from ceph-test / ceph-test-dbg (issue#11806pr#5069, Loic Dachary)
  • rgw: DragonDisk fails to create directories via S3: MissingContentLength (issue#12042pr#5118, Yehuda Sadeh)
  • build/ops: /usr/bin/ceph from ceph-common is broken without installing ceph (issue#11998pr#5206, Ken Dreyer)
  • build/ops: systemd: Increase max files open limit for OSD daemon (issue#11964pr#5040, Owen Synge)
  • build/ops: rgw/logrotate.conf calls service with wrong init script name (issue#12044pr#5055, wuxingyi)
  • common: OPT_INT option interprets 3221225472 as -1073741824, and crashes in Throttle::Throttle() (issue#11738pr#4889, Kefu Chai)
  • doc: doc/release-notes: v0.94.2 (issue#11492pr#4934, Sage Weil)
  • common: admin_socket: close socket descriptor in destructor (issue#11706pr#4657, Jon Bernard)
  • rgw: Object copy bug (issue#11755pr#4885, Javier M. Mellid)
  • rgw: empty json response when getting user quota (issue#12245pr#5237, wuxingyi)
  • fs: cephfs Dumper tries to load whole journal into memory at once (issue#11999pr#5120, John Spray)
  • rgw: Fix tool for #11442 does not correctly fix objects created via multipart uploads (issue#12242pr#5229, Yehuda Sadeh)
  • rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (issue#12243pr#5231, Yehuda Sadeh)
  • osd: stuck incomplete (issue#12362pr#5269, Samuel Just)
  • osd: start_flush: filter out removed snaps before determining snapc’s (issue#11911pr#4899, Samuel Just)
  • librbd: 1967: FAILED assert(watchers.size() == 1) (issue#12239pr#5243, Jason Dillaman)
  • librbd: new QA client upgrade tests (issue#12109pr#5046, Jason Dillaman)
  • librbd: [ FAILED ] TestLibRBD.ExclusiveLockTransition (issue#12238pr#5241, Jason Dillaman)
  • rgw: Swift API: XML document generated in response for GET on account does not contain account name (issue#12323pr#5227, Radoslaw Zarzynski)
  • rgw: keystone does not support chunked input (issue#12322pr#5226, Hervé Rousseau)
  • mds: MDS is crashed (mds/ 1391: FAILED assert(!is_complete())) (issue#11737pr#4886, Yan, Zheng)
  • cli: ceph: cli interactive mode does not understand quotes (issue#11736pr#4776, Kefu Chai)
  • librbd: add valgrind memory checks for unit tests (issue#12384pr#5280, Zhiqiang Wang)
  • build/ops: admin/build-doc: script fails silently under certain circumstances (issue#11902pr#4877, John Spray)
  • osd: Fixes for rados ops with snaps (issue#11908pr#4902, Samuel Just)
  • build/ops: ceph-common subpackage def needs tweaking for SUSE/openSUSE (issue#12308pr#4883, Nathan Cutler)
  • fs: client: reference counting ‘struct Fh’ (issue#12088pr#5222, Yan, Zheng)
  • build/ops: ceph.spec: update OpenSUSE BuildRequires (issue#11611pr#4667, Loic Dachary)

For more detailed information, see the complete changelog.


v9.0.3 released

This is the second to last batch of development work for the Infernalis cycle. The most intrusive change is an internal (non user-visible) change to the OSD’s ObjectStore interface. Many fixes and improvements elsewhere across RGW, RBD, and another big pile of CephFS scrub/repair improvements.


  • The return code for librbd’s rbd_aio_read and Image::aio_read API methods no longer returns the number of bytes read upon success. Instead, it returns 0 upon success and a negative value upon failure.
  • ‘ceph scrub’, ‘ceph compact’ and ‘ceph sync force are now DEPRECATED. Users should instead use ‘ceph mon scrub’, ‘ceph mon compact’ and ‘ceph mon sync force’.
  • ‘ceph mon_metadata’ should now be used as ‘ceph mon metadata’. There is no need to deprecate this command (same major release since it was first introduced).
  • The –dump-json option of “osdmaptool” is replaced by –dump json.
  • The commands of “pg ls-by-{pool,primary,osd}” and “pg ls” now take “recovering” instead of “recovery”, to include the recovering pgs in the listed pgs.


  • autotools: fix out of tree build (Krxysztof Kosinski)
  • autotools: improve make check output (Loic Dachary)
  • buffer: add invalidate_crc() (Piotr Dalek)
  • buffer: fix zero bug (#12252 Haomai Wang)
  • build: fix junit detection on Fedora 22 (Ira Cooper)
  • ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
  • cephfs-data-scan: many additions, improvements (John Spray)
  • ceph: improve error output for ‘tell’ (#11101 Kefu Chai)
  • ceph-objectstore-tool: misc improvements (David Zafman)
  • ceph-objectstore-tool: refactoring and cleanup (John Spray)
  • ceph_test_rados: test pipelined reads (Zhiqiang Wang)
  • common: fix bit_vector extent calc (#12611 Jason Dillaman)
  • common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
  • common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
  • crush: add –check to validate dangling names, max osd id (Kefu Chai)
  • crush: cleanup, sync with kernel (Ilya Dryomov)
  • crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
  • crypo: fix NSS leak (Jason Dillaman)
  • crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
  • doc: misc updates (Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao)
  • erasure-code: cleanup (Kefu Chai)
  • erasure-code: improve tests (Loic Dachary)
  • erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
  • libcephfs: add pread, pwrite (Jevon Qiao)
  • libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
  • librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
  • librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
  • librbd: fadvise for copy, export, import (Jianpeng Ma)
  • librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
  • librbd: optionally disable allocation hint (Haomai Wang)
  • librbd: prevent race between resize requests (#12664 Jason Dillaman)
  • log: fix data corruption race resulting from log rotation (#12465 Samuel Just)
  • mds: expose frags via asok (John Spray)
  • mds: fix setting entire file layout in one setxattr (John Spray)
  • mds: fix shutdown (John Spray)
  • mds: handle misc corruption issues (John Spray)
  • mds: misc fixes (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
  • mds: misc snap fixes (Zheng Yan)
  • mds: store layout on header object (#4161 John Spray)
  • misc performance and cleanup (Nathan Cutler, Xinxin Shu)
  • mon: add NOFORWARD, OBSOLETE, DEPRECATE flags for mon commands (Joao Eduardo Luis)
  • mon: add PG count to ‘ceph osd df’ output (Michal Jarzabek)
  • mon: clean up, reorg some mon commands (Joao Eduardo Luis)
  • mon: disallow >2 tiers (#11840 Kefu Chai)
  • mon: fix log dump crash when debugging (Mykola Golub)
  • mon: fix metadata update race (Mykola Golub)
  • mon: fix refresh (#11470 Joao Eduardo Luis)
  • mon: make blocked op messages more readable (Jianpeng Ma)
  • mon: only send mon metadata to supporting peers (Sage Weil)
  • mon: periodic background scrub (Joao Eduardo Luis)
  • mon: prevent pgp_num > pg_num (#12025 Xinxin Shu)
  • mon: reject large max_mds values (#12222 John Spray)
  • msgr: add ceph_perf_msgr tool (Hoamai Wang)
  • msgr: async: fix seq handling (Haomai Wang)
  • msgr: xio: fastpath improvements (Raju Kurunkad)
  • msgr: xio: sync with accellio v1.4 (Vu Pham)
  • osd: clean up temp object if promotion fails (Jianpeng Ma)
  • osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
  • osd: filestore: clone using splice (Jianpeng Ma)
  • osd: filestore: fix recursive lock (Xinxin Shu)
  • osd: fix dup promotion lost op bug (Zhiqiang Wang)
  • osd: fix temp-clearing (David Zafman)
  • osd: include a temp namespace within each collection/pgid (Sage Weil)
  • osd: low and high speed flush modes (Mingxin Liu)
  • osd: peer_features includes self (David Zafman)
  • osd: recovery, peering fixes (#11687 Samuel Just)
  • osd: require firefly features (David Zafman)
  • osd: set initial crush weight with more precision (Sage Weil)
  • osd: use a temp object for recovery (Sage Weil)
  • osd: use blkid to collection partition information (Joseph Handzik)
  • rados: add –striper option to use libradosstriper (#10759 Sebastien Ponce)
  • radosgw-admin: fix subuser modify output (#12286 Guce)
  • rados: handle –snapid arg properly (Abhishek Lekshmanan)
  • rados: improve bench buffer handling, performance (Piotr Dalek)
  • rados: new pool import implementation (John Spray)
  • rbd: fix link issues (Jason Dillaman)
  • rbd: improve CLI arg parsing, usage (Ilya Dryomov)
  • rbd: recognize queue_depth kernel option (Ilya Dryomov)
  • rbd: support G and T units for CLI (Abhishek Lekshmanan)
  • rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
  • rest-bench: misc fixes (Shawn Chen)
  • rest-bench: support https (#3968 Yuan Zhou)
  • rgw: add max multipart upload parts (#12146 Abshishek Dixit)
  • rgw: add Trasnaction-Id to response (Abhishek Dixit)
  • rgw: document layout of pools and objects (Pete Zaitcev)
  • rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
  • rgw: fix Connection: header handling (#12298 Wido den Hollander)
  • rgw: fix data corruptions race condition (#11749 Wuxingyi)
  • rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
  • rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
  • rgw: improved support for swift account metadata (Radoslaw Zarzynski)
  • rgw: make max put size configurable (#6999 Yuan Zhou)
  • rgw: orphan detection tool (Yehuda Sadeh)
  • rgw: swift: do not override sent content type (#12363 Orit Wasserman)
  • rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
  • rpm: always rebuild and install man pages for rpm (Owen Synge)
  • rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
  • systemd: logrotate fixes (Tim Seron, Lars Marowsky-Bree, Nathan Cutler)
  • sysvinit compat: misc fixes (Owen Synge)
  • test: misc fs test improvements (John Spray, Loic Dachary)
  • test: python tests, linter cleanup (Alfredo Deza)


Page 1 of 1712345...10...Last »
© 2015, Red Hat, Inc. All rights reserved.