]> git.proxmox.com Git - ceph.git/blob - ceph/doc/releases/hammer.rst
785d0c2b434fb0c60fcab89e1b2a701292514f61
[ceph.git] / ceph / doc / releases / hammer.rst
1 ======
2 Hammer
3 ======
4
5 Hammer is the 8th stable release of Ceph. It is named after the
6 hammer octopus (Octopus australis).
7
8 v0.94.10 Hammer
9 ===============
10
11 This Hammer point release fixes several bugs and adds two new features.
12
13 We recommend that all hammer v0.94.x users upgrade.
14
15 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.10.txt>`.
16
17 New Features
18 ------------
19
20 ceph-objectstore-tool and ceph-monstore-tool now enable user to
21 rebuild the monitor database from OSDs. (This feature is especially useful when
22 all monitors fail to boot due to leveldb corruption.)
23
24 In RADOS Gateway, it is now possible to reshard an existing bucket's index
25 using an off-line tool.
26
27 Usage:
28
29 $ radosgw-admin bucket reshard --bucket=<bucket_name> --num_shards=<num_shards>
30
31 This will create a new linked bucket instance that points to the newly created
32 index objects. The old bucket instance still exists and currently it's up to
33 the user to manually remove the old bucket index objects. (Note that bucket
34 resharding currently requires that all IO (especially writes) to the specific
35 bucket is quiesced.)
36
37 Other Notable Changes
38 ---------------------
39
40 * build/ops: ceph-create-keys loops forever (`issue#17753 <http://tracker.ceph.com/issues/17753>`_, `pr#12805 <http://github.com/ceph/ceph/pull/12805>`_, Alfredo Deza)
41 * build/ops: improve ceph.in error message (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#10905 <http://github.com/ceph/ceph/pull/10905>`_, Kefu Chai)
42 * build/ops: make stop.sh more portable (`issue#16918 <http://tracker.ceph.com/issues/16918>`_, `pr#10569 <http://github.com/ceph/ceph/pull/10569>`_, Mykola Golub)
43 * build/ops: remove SYSTEMD_RUN from initscript (`issue#16440 <http://tracker.ceph.com/issues/16440>`_, `issue#7627 <http://tracker.ceph.com/issues/7627>`_, `pr#9873 <http://github.com/ceph/ceph/pull/9873>`_, Vladislav Odintsov)
44 * cephx: Fix multiple segfaults due to attempts to encrypt or decrypt (`issue#16266 <http://tracker.ceph.com/issues/16266>`_, `pr#11930 <http://github.com/ceph/ceph/pull/11930>`_, Brad Hubbard)
45 * common: SIGABRT in TrackedOp::dump() via dump_ops_in_flight() (`issue#8885 <http://tracker.ceph.com/issues/8885>`_, `pr#12121 <http://github.com/ceph/ceph/pull/12121>`_, Jianpeng Ma, Zhiqiang Wang, David Zafman)
46 * common: os/ObjectStore: fix _update_op for split dest_cid (`issue#15345 <http://tracker.ceph.com/issues/15345>`_, `pr#12071 <http://github.com/ceph/ceph/pull/12071>`_, Sage Weil)
47 * crush: reset bucket->h.items[i] when removing tree item (`issue#16525 <http://tracker.ceph.com/issues/16525>`_, `pr#10724 <http://github.com/ceph/ceph/pull/10724>`_, Kefu Chai)
48 * doc: add "Upgrading to Hammer" section (`issue#17386 <http://tracker.ceph.com/issues/17386>`_, `pr#11372 <http://github.com/ceph/ceph/pull/11372>`_, Kefu Chai)
49 * doc: add orphan options to radosgw-admin --help and man page (`issue#17281 <http://tracker.ceph.com/issues/17281>`_, `issue#17280 <http://tracker.ceph.com/issues/17280>`_, `pr#11140 <http://github.com/ceph/ceph/pull/11140>`_, Abhishek Lekshmanan, Casey Bodley, Ken Dreyer, Thomas Serlin)
50 * doc: clarify that RGW bucket object versioning is supported (`issue#16574 <http://tracker.ceph.com/issues/16574>`_, `pr#10437 <http://github.com/ceph/ceph/pull/10437>`_, Yuan Zhou, shawn chen)
51 * librados: bad flags can crash the osd (`issue#16012 <http://tracker.ceph.com/issues/16012>`_, `pr#11936 <http://github.com/ceph/ceph/pull/11936>`_, Jianpeng Ma, Sage Weil)
52 * librbd: ceph 10.2.2 rbd status on image format 2 returns "(2) No such file or directory" (`issue#16887 <http://tracker.ceph.com/issues/16887>`_, `pr#10987 <http://github.com/ceph/ceph/pull/10987>`_, Jason Dillaman)
53 * librbd: diffs to clone's first snapshot should include parent diffs (`issue#18068 <http://tracker.ceph.com/issues/18068>`_, `pr#12446 <http://github.com/ceph/ceph/pull/12446>`_, Jason Dillaman)
54 * librbd: image.stat() call in librbdpy fails sometimes (`issue#17310 <http://tracker.ceph.com/issues/17310>`_, `pr#11949 <http://github.com/ceph/ceph/pull/11949>`_, Jason Dillaman)
55 * librbd: request exclusive lock if current owner cannot execute op (`issue#16171 <http://tracker.ceph.com/issues/16171>`_, `pr#12018 <http://github.com/ceph/ceph/pull/12018>`_, Mykola Golub)
56 * mds: fix cephfs-java ftruncate unit test failure (`issue#11258 <http://tracker.ceph.com/issues/11258>`_, `pr#11939 <http://github.com/ceph/ceph/pull/11939>`_, Yan, Zheng)
57 * mon: %USED of ceph df is wrong (`issue#16933 <http://tracker.ceph.com/issues/16933>`_, `pr#11934 <http://github.com/ceph/ceph/pull/11934>`_, Kefu Chai)
58 * mon: MonmapMonitor should return success when MON will be removed (`issue#17725 <http://tracker.ceph.com/issues/17725>`_, `pr#12006 <http://github.com/ceph/ceph/pull/12006>`_, Joao Eduardo Luis)
59 * mon: OSDMonitor: Missing nearfull flag set (`issue#17390 <http://tracker.ceph.com/issues/17390>`_, `pr#11273 <http://github.com/ceph/ceph/pull/11273>`_, Igor Podoski)
60 * mon: OSDs marked OUT wrongly after monitor failover (`issue#17719 <http://tracker.ceph.com/issues/17719>`_, `pr#11946 <http://github.com/ceph/ceph/pull/11946>`_, Dong Wu)
61 * mon: fix memory leak in prepare_beacon (`issue#17285 <http://tracker.ceph.com/issues/17285>`_, `pr#10238 <http://github.com/ceph/ceph/pull/10238>`_, Igor Podoski)
62 * mon: osd flag health message is misleading (`issue#18175 <http://tracker.ceph.com/issues/18175>`_, `pr#12687 <http://github.com/ceph/ceph/pull/12687>`_, Sage Weil)
63 * mon: prepare_pgtemp needs to only update up_thru if newer than the existing one (`issue#16185 <http://tracker.ceph.com/issues/16185>`_, `pr#11937 <http://github.com/ceph/ceph/pull/11937>`_, Samuel Just)
64 * mon: return size_t from MonitorDBStore::Transaction::size() (`issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#10904 <http://github.com/ceph/ceph/pull/10904>`_, Kefu Chai)
65 * mon: send updated monmap to its subscribers (`issue#17558 <http://tracker.ceph.com/issues/17558>`_, `pr#11457 <http://github.com/ceph/ceph/pull/11457>`_, Kefu Chai)
66 * msgr: OpTracker needs to release the message throttle in _unregistered (`issue#14248 <http://tracker.ceph.com/issues/14248>`_, `pr#11938 <http://github.com/ceph/ceph/pull/11938>`_, Samuel Just)
67 * msgr: simple/Pipe: error decoding addr (`issue#18072 <http://tracker.ceph.com/issues/18072>`_, `pr#12266 <http://github.com/ceph/ceph/pull/12266>`_, Sage Weil)
68 * osd: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items (`issue#16998 <http://tracker.ceph.com/issues/16998>`_, `pr#11933 <http://github.com/ceph/ceph/pull/11933>`_, Samuel Just)
69 * osd: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (\*this == hobject_t(hobject_t::get_max()))) (`issue#13967 <http://tracker.ceph.com/issues/13967>`_, `pr#11932 <http://github.com/ceph/ceph/pull/11932>`_, Tao Chang)
70 * osd: ReplicatedBackend::build_push_op: add a second config to limit omap entries/chunk independently of object data (`issue#16128 <http://tracker.ceph.com/issues/16128>`_, `pr#12417 <http://github.com/ceph/ceph/pull/12417>`_, Wanlong Gao)
71 * osd: crash on EIO during deep-scrubbing (`issue#16034 <http://tracker.ceph.com/issues/16034>`_, `pr#11935 <http://github.com/ceph/ceph/pull/11935>`_, Nathan Cutler)
72 * osd: filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE (`issue#18446 <http://tracker.ceph.com/issues/18446>`_, `pr#13041 <http://github.com/ceph/ceph/pull/13041>`_, xinxin shu)
73 * osd: fix cached_removed_snaps bug in PGPool::update after map gap (`issue#18628 <http://tracker.ceph.com/issues/18628>`_, `issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#12906 <http://github.com/ceph/ceph/pull/12906>`_, Samuel Just)
74 * osd: fix collection_list shadow return value (`issue#17713 <http://tracker.ceph.com/issues/17713>`_, `pr#11927 <http://github.com/ceph/ceph/pull/11927>`_, Haomai Wang)
75 * osd: fix fiemap issue in xfs when #extents > 1364 (`issue#17610 <http://tracker.ceph.com/issues/17610>`_, `pr#11615 <http://github.com/ceph/ceph/pull/11615>`_, Kefu Chai, Ning Yao)
76 * osd: update PGPool to detect map gaps and reset cached_removed_snaps (`issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#11676 <http://github.com/ceph/ceph/pull/11676>`_, Samuel Just)
77 * rbd: export diff should open image as read-only (`issue#17671 <http://tracker.ceph.com/issues/17671>`_, `pr#11948 <http://github.com/ceph/ceph/pull/11948>`_, liyankun)
78 * rbd: fix parameter check (`issue#18237 <http://tracker.ceph.com/issues/18237>`_, `pr#12312 <http://github.com/ceph/ceph/pull/12312>`_, Yankun Li)
79 * rbd: fix possible rbd data corruption (`issue#16002 <http://tracker.ceph.com/issues/16002>`_, `pr#11618 <http://github.com/ceph/ceph/pull/11618>`_, Yan, Zheng, Greg Farnum)
80 * rgw: Anonymous user is able to read bucket with authenticated read ACL (`issue#13207 <http://tracker.ceph.com/issues/13207>`_, `pr#11045 <http://github.com/ceph/ceph/pull/11045>`_, rahul.1aggarwal@gmail.com)
81 * rgw: COPY broke multipart files uploaded under dumpling (`issue#16435 <http://tracker.ceph.com/issues/16435>`_, `pr#11950 <http://github.com/ceph/ceph/pull/11950>`_, Yehuda Sadeh)
82 * rgw: TempURL in radosgw behaves now like its Swift's counterpart. (`issue#18316 <http://tracker.ceph.com/issues/18316>`_, `pr#12619 <http://github.com/ceph/ceph/pull/12619>`_, Radoslaw Zarzynski)
83 * rgw: default quota fixes (`issue#16410 <http://tracker.ceph.com/issues/16410>`_, `pr#10839 <http://github.com/ceph/ceph/pull/10839>`_, Pavan Rallabhandi, Daniel Gryniewicz)
84 * rgw: do not abort when accept a CORS request with short origin (`issue#18187 <http://tracker.ceph.com/issues/18187>`_, `pr#12398 <http://github.com/ceph/ceph/pull/12398>`_, LiuYang)
85 * rgw: do not omap_getvals with (u64)-1 max (`issue#17985 <http://tracker.ceph.com/issues/17985>`_, `pr#12418 <http://github.com/ceph/ceph/pull/12418>`_, Yehuda Sadeh, Sage Weil)
86 * rgw: fix crash when client posts object with null condition (`issue#17635 <http://tracker.ceph.com/issues/17635>`_, `pr#11809 <http://github.com/ceph/ceph/pull/11809>`_, Yehuda Sadeh)
87 * rgw: fix inconsistent uid/email handling in radosgw-admin (`issue#13598 <http://tracker.ceph.com/issues/13598>`_, `pr#11952 <http://github.com/ceph/ceph/pull/11952>`_, Matt Benjamin)
88 * rgw: implement offline resharding command (`issue#17745 <http://tracker.ceph.com/issues/17745>`_, `pr#12227 <http://github.com/ceph/ceph/pull/12227>`_, Yehuda Sadeh, Orit Wasserman, weiqiaomiao)
89 * rgw: swift: ranged request on a DLO provides wrong values in Content-Range HTTP header (`issue#13452 <http://tracker.ceph.com/issues/13452>`_, `pr#11951 <http://github.com/ceph/ceph/pull/11951>`_, Radoslaw Zarzynski)
90 * rgw: the value of total_time is wrong in the result of 'radosgw-admin log show' opt (`issue#17598 <http://tracker.ceph.com/issues/17598>`_, `pr#11899 <http://github.com/ceph/ceph/pull/11899>`_, weiqiaomiao)
91 * tests: Cannot clone ceph/s3-tests.git (missing branch) (`issue#18384 <http://tracker.ceph.com/issues/18384>`_, `pr#12744 <http://github.com/ceph/ceph/pull/12744>`_, Orit Wasserman)
92 * tests: Cannot reserve CentOS 7.2 smithi machines (`issue#18401 <http://tracker.ceph.com/issues/18401>`_, `pr#12762 <http://github.com/ceph/ceph/pull/12762>`_, Nathan Cutler)
93 * tests: OSDs commit suicide in rbd suite when testing on btrfs (`issue#18397 <http://tracker.ceph.com/issues/18397>`_, `pr#12758 <http://github.com/ceph/ceph/pull/12758>`_, Nathan Cutler)
94 * tests: Workunits needlessly wget from git.ceph.com (`issue#18336 <http://tracker.ceph.com/issues/18336>`_, `issue#18271 <http://tracker.ceph.com/issues/18271>`_, `issue#18388 <http://tracker.ceph.com/issues/18388>`_, `pr#12685 <http://github.com/ceph/ceph/pull/12685>`_, Sage Weil, Nathan Cutler)
95 * tests: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa) (`issue#18574 <http://tracker.ceph.com/issues/18574>`_, `pr#13022 <http://github.com/ceph/ceph/pull/13022>`_, John Spray)
96 * tests: merge ceph-qa-suite (`pr#12455 <http://github.com/ceph/ceph/pull/12455>`_, Sage Weil)
97 * tests: objecter_requests workunit fails on wip branches (`issue#18393 <http://tracker.ceph.com/issues/18393>`_, `pr#12759 <http://github.com/ceph/ceph/pull/12759>`_, Sage Weil)
98 * tests: populate mnt_point in qa/tasks/ceph.py (`issue#18383 <http://tracker.ceph.com/issues/18383>`_, `pr#12743 <http://github.com/ceph/ceph/pull/12743>`_, Nathan Cutler)
99 * tests: qemu/tests/qemu-iotests/077 fails in dumpling, hammer, and jewel (`issue#10773 <http://tracker.ceph.com/issues/10773>`_, `pr#12423 <http://github.com/ceph/ceph/pull/12423>`_, Jason Dillaman)
100 * tests: run fs/thrash on xfs instead of btrfs (`issue#17151 <http://tracker.ceph.com/issues/17151>`_, `pr#13039 <http://github.com/ceph/ceph/pull/13039>`_, Nathan Cutler)
101 * tests: update Ubuntu image url after ceph.com refactor (`issue#18542 <http://tracker.ceph.com/issues/18542>`_, `pr#12957 <http://github.com/ceph/ceph/pull/12957>`_, Jason Dillaman)
102 * tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci * (`issue#18440 <http://tracker.ceph.com/issues/18440>`_, `pr#12824 * <http://github.com/ceph/ceph/pull/12824>`_, Venky Shankar, Nathan Cutler)
103 * tools: add a tool to rebuild mon store from OSD (`issue#17179 <http://tracker.ceph.com/issues/17179>`_, `issue#17400 <http://tracker.ceph.com/issues/17400>`_, `pr#11125 <http://github.com/ceph/ceph/pull/11125>`_, Kefu Chai, xie xingguo)
104 * tools: ceph-objectstore-tool crashes if --journal-path <a-directory> (`issue#17307 <http://tracker.ceph.com/issues/17307>`_, `pr#11929 <http://github.com/ceph/ceph/pull/11929>`_, Kefu Chai)
105 * tools: ceph-objectstore-tool: add a way to split filestore directories offline (`issue#17220 <http://tracker.ceph.com/issues/17220>`_, `pr#11253 <http://github.com/ceph/ceph/pull/11253>`_, Josh Durgin)
106 * tools: crushtool --compile generates output despite missing item (`issue#17306 <http://tracker.ceph.com/issues/17306>`_, `pr#11931 <http://github.com/ceph/ceph/pull/11931>`_, Kefu Chai)
107
108
109 v0.94.9 Hammer
110 ==============
111
112 This Hammer point release fixes a build issue present in 0.94.8 that prevented us
113 from generating packages for Ubuntu Precise and CentOS 6.x.
114
115 We recommend all users of v0.94.7 or older upgrade.
116
117 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.9.txt>`.
118
119 Notable Changes
120 ---------------
121
122 * build/ops: revert: boost uuid makes valgrind complain (`pr#10913 <http://github.com/ceph/ceph/pull/10913>`_, Sage Weil)
123
124
125 v0.94.8 Hammer
126 ==============
127
128 This Hammer point release fixes several bugs.
129
130 We recommend that all hammer v0.94.x users upgrade.
131
132 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.8.txt>`.
133
134 Notable Changes
135 ---------------
136
137 * build/ops: rocksdb do not link against tcmalloc if it's disabled (`issue#14799 <http://tracker.ceph.com/issues/14799>`_, `pr#10750 <http://github.com/ceph/ceph/pull/10750>`_, Sage Weil, Kefu Chai)
138 * build/ops: Add -D_LARGEFILE64_SOURCE to Linux build. (`issue#16611 <http://tracker.ceph.com/issues/16611>`_, `pr#10182 <http://github.com/ceph/ceph/pull/10182>`_, Ira Cooper)
139 * build/ops: boost uuid makes valgrind complain (`issue#12736 <http://tracker.ceph.com/issues/12736>`_, `pr#9741 <http://github.com/ceph/ceph/pull/9741>`_, Sage Weil, Rohan Mars)
140 * build/ops: ceph-disk s/by-parttype-uuid/by-parttypeuuid/ (`issue#15867 <http://tracker.ceph.com/issues/15867>`_, `pr#9107 <http://github.com/ceph/ceph/pull/9107>`_, Nathan Cutler)
141 * common: add units to rados bench output and clean up formatting (`issue#12248 <http://tracker.ceph.com/issues/12248>`_, `pr#8960 <http://github.com/ceph/ceph/pull/8960>`_, Dmitry Yatsushkevich, Brad Hubbard, Gu Zhongyan)
142 * common: config set with negative value results in "error setting 'filestore_merge_threshold' to '-40': (22) Invalid argument" (`issue#13829 <http://tracker.ceph.com/issues/13829>`_, `pr#10291 <http://github.com/ceph/ceph/pull/10291>`_, Brad Hubbard, Kefu Chai)
143 * common: linking to -lrbd causes process startup times to balloon (`issue#15225 <http://tracker.ceph.com/issues/15225>`_, `pr#8538 <http://github.com/ceph/ceph/pull/8538>`_, Richard W.M. Jones)
144 * doc: fix by-parttypeuuid in ceph-disk(8) nroff (`issue#15867 <http://tracker.ceph.com/issues/15867>`_, `pr#10699 <http://github.com/ceph/ceph/pull/10699>`_, Ken Dreyer)
145 * fs: double decreased the count to trim caps which will cause failing to respond to cache pressure (`issue#14319 <http://tracker.ceph.com/issues/14319>`_, `pr#8804 <http://github.com/ceph/ceph/pull/8804>`_, Zhi Zhang)
146 * log: do not repeat errors to stderr (`issue#14616 <http://tracker.ceph.com/issues/14616>`_, `pr#10227 <http://github.com/ceph/ceph/pull/10227>`_, Sage Weil)
147 * mds: failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7 (`issue#16013 <http://tracker.ceph.com/issues/16013>`_, `pr#10198 <http://github.com/ceph/ceph/pull/10198>`_, Yan, Zheng)
148 * mds: fix stray purging in 'stripe_count > 1' case (`issue#15050 <http://tracker.ceph.com/issues/15050>`_, `pr#8042 <http://github.com/ceph/ceph/pull/8042>`_, Yan, Zheng)
149 * mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs (`issue#15702 <http://tracker.ceph.com/issues/15702>`_, `pr#9404 <http://github.com/ceph/ceph/pull/9404>`_, Zhi Zhang)
150 * mon: LibRadosMiscConnectFailure.ConnectFailure (not so intermittent) failure in upgrade/hammer-x (`issue#13992 <http://tracker.ceph.com/issues/13992>`_, `pr#8806 <http://github.com/ceph/ceph/pull/8806>`_, Sage Weil)
151 * mon: Monitor: validate prefix on handle_command() (`issue#16297 <http://tracker.ceph.com/issues/16297>`_, `pr#10038 <http://github.com/ceph/ceph/pull/10038>`_, You Ji)
152 * mon: drop pg temps from not the current primary in OSDMonitor (`issue#16127 <http://tracker.ceph.com/issues/16127>`_, `pr#9893 <http://github.com/ceph/ceph/pull/9893>`_, Samuel Just)
153 * mon: fix calculation of %USED (`issue#15641 <http://tracker.ceph.com/issues/15641>`_, `pr#9125 <http://github.com/ceph/ceph/pull/9125>`_, Ruifeng Yang, David Zafman)
154 * mon: improve reweight_by_utilization() logic (`issue#15686 <http://tracker.ceph.com/issues/15686>`_, `pr#9416 <http://github.com/ceph/ceph/pull/9416>`_, xie xingguo)
155 * mon: pool quota alarm is not in effect (`issue#15478 <http://tracker.ceph.com/issues/15478>`_, `pr#8593 <http://github.com/ceph/ceph/pull/8593>`_, Danny Al-Gaaf)
156 * mon: wrong ceph get mdsmap assertion (`issue#14681 <http://tracker.ceph.com/issues/14681>`_, `pr#7542 <http://github.com/ceph/ceph/pull/7542>`_, Vicente Cheng)
157 * msgr: ceph-osd valgrind invalid reads/writes (`issue#15870 <http://tracker.ceph.com/issues/15870>`_, `pr#9238 <http://github.com/ceph/ceph/pull/9238>`_, Samuel Just)
158 * objecter: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv (`issue#15760 <http://tracker.ceph.com/issues/15760>`_, `pr#9400 <http://github.com/ceph/ceph/pull/9400>`_, Sage Weil)
159 * osd: OSD reporting ENOTEMPTY and crashing (`issue#14766 <http://tracker.ceph.com/issues/14766>`_, `pr#9277 <http://github.com/ceph/ceph/pull/9277>`_, Samuel Just)
160 * osd: When generating past intervals due to an import end at pg epoch and fix build_past_intervals_parallel (`issue#12387 <http://tracker.ceph.com/issues/12387>`_, `issue#14438 <http://tracker.ceph.com/issues/14438>`_, `pr#8464 <http://github.com/ceph/ceph/pull/8464>`_, David Zafman)
161 * osd: acting_primary not updated on split (`issue#15523 <http://tracker.ceph.com/issues/15523>`_, `pr#9001 <http://github.com/ceph/ceph/pull/9001>`_, Sage Weil)
162 * osd: assert(!actingbackfill.empty()): old watch timeout tries to queue repop on replica (`issue#15391 <http://tracker.ceph.com/issues/15391>`_, `pr#8665 <http://github.com/ceph/ceph/pull/8665>`_, Sage Weil)
163 * osd: assert(rollback_info_trimmed_to == head) in PGLog (`issue#13965 <http://tracker.ceph.com/issues/13965>`_, `pr#8849 <http://github.com/ceph/ceph/pull/8849>`_, Samuel Just)
164 * osd: delete one of the repeated op->mark_started in ReplicatedBackend::sub_op_modify_impl (`issue#16572 <http://tracker.ceph.com/issues/16572>`_, `pr#9977 <http://github.com/ceph/ceph/pull/9977>`_, shun-s)
165 * osd: fix omap digest compare when scrub (`issue#16000 <http://tracker.ceph.com/issues/16000>`_, `pr#9271 <http://github.com/ceph/ceph/pull/9271>`_, Xinze Chi)
166 * osd: is_split crash in handle_pg_create (`issue#15426 <http://tracker.ceph.com/issues/15426>`_, `pr#8805 <http://github.com/ceph/ceph/pull/8805>`_, Kefu Chai)
167 * osd: objects unfound after repair (fixed by repeering the pg) (`issue#15006 <http://tracker.ceph.com/issues/15006>`_, `pr#7961 <http://github.com/ceph/ceph/pull/7961>`_, Jianpeng Ma, Loic Dachary, Kefu Chai)
168 * osd: rados cppool omap to ec pool crashes osd (`issue#14695 <http://tracker.ceph.com/issues/14695>`_, `pr#8845 <http://github.com/ceph/ceph/pull/8845>`_, Jianpeng Ma)
169 * osd: remove all stale osdmaps in handle_osd_map() (`issue#13990 <http://tracker.ceph.com/issues/13990>`_, `pr#9090 <http://github.com/ceph/ceph/pull/9090>`_, Kefu Chai)
170 * osd: send write and read sub ops on behalf of client ops at normal priority in ECBackend (`issue#14313 <http://tracker.ceph.com/issues/14313>`_, `pr#8573 <http://github.com/ceph/ceph/pull/8573>`_, Samuel Just)
171 * rbd: snap rollback: restore the link to parent (`issue#14512 <http://tracker.ceph.com/issues/14512>`_, `pr#8535 <http://github.com/ceph/ceph/pull/8535>`_, Alexey Sheplyakov)
172 * rgw: S3: set EncodingType in ListBucketResult (`issue#15896 <http://tracker.ceph.com/issues/15896>`_, `pr#8987 <http://github.com/ceph/ceph/pull/8987>`_, Victor Makarov, Robin H. Johnson)
173 * rgw: backport rgwx-copy-if-newer for radosgw-agent (`issue#16262 <http://tracker.ceph.com/issues/16262>`_, `pr#9671 <http://github.com/ceph/ceph/pull/9671>`_, Yehuda Sadeh)
174 * rgw: bucket listing following object delete is partial (`issue#14826 <http://tracker.ceph.com/issues/14826>`_, `pr#10555 <http://github.com/ceph/ceph/pull/10555>`_, Orit Wasserman)
175 * rgw: convert plain object to versioned (with null version) when removing (`issue#15243 <http://tracker.ceph.com/issues/15243>`_, `pr#8755 <http://github.com/ceph/ceph/pull/8755>`_, Yehuda Sadeh)
176 * rgw: fix multi-delete query param parsing. (`issue#16618 <http://tracker.ceph.com/issues/16618>`_, `pr#10189 <http://github.com/ceph/ceph/pull/10189>`_, Robin H. Johnson)
177 * rgw: have a flavor of bucket deletion to bypass GC and to trigger (`issue#15557 <http://tracker.ceph.com/issues/15557>`_, `pr#10509 <http://github.com/ceph/ceph/pull/10509>`_, Pavan Rallabhandi)
178 * rgw: keep track of written_objs correctly (`issue#15886 <http://tracker.ceph.com/issues/15886>`_, `pr#9240 <http://github.com/ceph/ceph/pull/9240>`_, Yehuda Sadeh)
179 * rgw: multipart ListPartsResult has missing quotes on ETag (`issue#15334 <http://tracker.ceph.com/issues/15334>`_, `pr#8475 <http://github.com/ceph/ceph/pull/8475>`_, xie xingguo, Robin H. Johnson)
180 * rgw: no Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest (`issue#15812 <http://tracker.ceph.com/issues/15812>`_, `pr#9402 <http://github.com/ceph/ceph/pull/9402>`_, Radoslaw Zarzynski)
181 * rgw: radosgw server abort when user passed bad parameters to set quota (`issue#14190 <http://tracker.ceph.com/issues/14190>`_, `issue#14191 <http://tracker.ceph.com/issues/14191>`_, `pr#8313 <http://github.com/ceph/ceph/pull/8313>`_, Dunrong Huang)
182 * rgw: radosgw-admin region-map set is not reporting the bucket quota correctly (`issue#16815 <http://tracker.ceph.com/issues/16815>`_, `pr#10554 <http://github.com/ceph/ceph/pull/10554>`_, Yehuda Sadeh, Orit Wasserman)
183 * rgw: refrain from sending Content-Type/Content-Length for 304 responses (`issue#16327 <http://tracker.ceph.com/issues/16327>`_, `issue#13582 <http://tracker.ceph.com/issues/13582>`_, `issue#15119 <http://tracker.ceph.com/issues/15119>`_, `issue#14005 <http://tracker.ceph.com/issues/14005>`_, `pr#8379 <http://github.com/ceph/ceph/pull/8379>`_, Yehuda Sadeh, Nathan Cutler, Wido den Hollander)
184 * rgw: remove bucket index objects when deleting the bucket (`issue#16412 <http://tracker.ceph.com/issues/16412>`_, `pr#10530 <http://github.com/ceph/ceph/pull/10530>`_, Orit Wasserman)
185 * rgw: set Access-Control-Allow-Origin to an asterisk if allowed in a rule (`issue#15348 <http://tracker.ceph.com/issues/15348>`_, `pr#8528 <http://github.com/ceph/ceph/pull/8528>`_, Wido den Hollander)
186 * rgw: subset of uploaded objects via radosgw are unretrievable when using EC pool (`issue#15745 <http://tracker.ceph.com/issues/15745>`_, `pr#9407 <http://github.com/ceph/ceph/pull/9407>`_, Yehuda Sadeh)
187 * rgw: subuser rm fails with status 125 (`issue#14375 <http://tracker.ceph.com/issues/14375>`_, `pr#9961 <http://github.com/ceph/ceph/pull/9961>`_, Orit Wasserman)
188 * rgw: the swift key remains after removing a subuser (`issue#12890 <http://tracker.ceph.com/issues/12890>`_, `issue#14375 <http://tracker.ceph.com/issues/14375>`_, `pr#10718 <http://github.com/ceph/ceph/pull/10718>`_, Orit Wasserman, Sangdi Xu)
189 * rgw: user quota may not adjust on bucket removal (`issue#14507 <http://tracker.ceph.com/issues/14507>`_, `pr#8113 <http://github.com/ceph/ceph/pull/8113>`_, Edward Yang)
190 * tests: be more generous with test timeout (`issue#15403 <http://tracker.ceph.com/issues/15403>`_, `pr#8470 <http://github.com/ceph/ceph/pull/8470>`_, Loic Dachary)
191 * tests: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable (`issue#16289 <http://tracker.ceph.com/issues/16289>`_, `pr#9722 <http://github.com/ceph/ceph/pull/9722>`_, Mykola Golub)
192
193 v0.94.7 Hammer
194 ==============
195
196 This Hammer point release fixes several minor bugs. It also includes
197 a backport of an improved 'ceph osd reweight-by-utilization' command
198 for handling OSDs with higher-than-average utilizations.
199
200 We recommend that all hammer v0.94.x users upgrade.
201
202 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.7.txt>`.
203
204 Notable Changes
205 ---------------
206
207 * auth: keyring permisions for mon deamon (`issue#14950 <http://tracker.ceph.com/issues/14950>`_, `pr#8049 <http://github.com/ceph/ceph/pull/8049>`_, Owen Synge)
208 * auth: PK11_DestroyContext() is called twice if PK11_DigestFinal() fails (`issue#14958 <http://tracker.ceph.com/issues/14958>`_, `pr#7922 <http://github.com/ceph/ceph/pull/7922>`_, Brad Hubbard, Dunrong Huang)
209 * auth: use libnss more safely (`issue#14620 <http://tracker.ceph.com/issues/14620>`_, `pr#7488 <http://github.com/ceph/ceph/pull/7488>`_, Sage Weil)
210 * ceph-disk: use blkid instead of sgdisk -i (`issue#14080 <http://tracker.ceph.com/issues/14080>`_, `issue#14094 <http://tracker.ceph.com/issues/14094>`_, `pr#7475 <http://github.com/ceph/ceph/pull/7475>`_, Ilya Dryomov, Loic Dachary)
211 * ceph-fuse: fix ceph-fuse writing to stale log file after log rotation (`issue#12350 <http://tracker.ceph.com/issues/12350>`_, `pr#7110 <http://github.com/ceph/ceph/pull/7110>`_, Zhi Zhang)
212 * ceph init script unconditionally sources /lib/lsb/init-functions (`issue#14402 <http://tracker.ceph.com/issues/14402>`_, `pr#7797 <http://github.com/ceph/ceph/pull/7797>`_, Yan, Zheng)
213 * ceph.in: Notify user that 'tell' can't be used in interactive mode (`issue#14773 <http://tracker.ceph.com/issues/14773>`_, `pr#7656 <http://github.com/ceph/ceph/pull/7656>`_, David Zafman)
214 * ceph-objectstore-tool, osd: Fix import handling (`issue#10794 <http://tracker.ceph.com/issues/10794>`_, `issue#13382 <http://tracker.ceph.com/issues/13382>`_, `pr#7917 <http://github.com/ceph/ceph/pull/7917>`_, Sage Weil, David Zafman)
215 * client: added permission check based on getgrouplist (`issue#13268 <http://tracker.ceph.com/issues/13268>`_, `pr#6604 <http://github.com/ceph/ceph/pull/6604>`_, Yan, Zheng, Danny Al-Gaaf)
216 * client: inoderef (`issue#13729 <http://tracker.ceph.com/issues/13729>`_, `pr#6551 <http://github.com/ceph/ceph/pull/6551>`_, Yan, Zheng)
217 * common: clock skew report is incorrect by ceph health detail command (`issue#14175 <http://tracker.ceph.com/issues/14175>`_, `pr#8051 <http://github.com/ceph/ceph/pull/8051>`_, Joao Eduardo Luis)
218 * global/pidfile: do not start two daemons with a single pid-file (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7671 <http://github.com/ceph/ceph/pull/7671>`_, Loic Dachary, shun song)
219 * librados: segfault in Objecter::handle_watch_notify (`issue#13805 <http://tracker.ceph.com/issues/13805>`_, `pr#7992 <http://github.com/ceph/ceph/pull/7992>`_, Sage Weil)
220 * librbd: flattening an rbd image with active IO can lead to hang (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `issue#14483 <http://tracker.ceph.com/issues/14483>`_, `pr#7485 <http://github.com/ceph/ceph/pull/7485>`_, Jason Dillaman)
221 * librbd: possible QEMU deadlock after creating image snapshots (`issue#14988 <http://tracker.ceph.com/issues/14988>`_, `pr#8011 <http://github.com/ceph/ceph/pull/8011>`_, Jason Dillaman)
222 * mon: Bucket owner isn't changed after unlink/link (`issue#11076 <http://tracker.ceph.com/issues/11076>`_, `pr#8583 <http://github.com/ceph/ceph/pull/8583>`_, Zengran Zhang)
223 * monclient: avoid key renew storm on clock skew (`issue#12065 <http://tracker.ceph.com/issues/12065>`_, `pr#8398 <http://github.com/ceph/ceph/pull/8398>`_, Alexey Sheplyakov)
224 * mon: implement reweight-by-utilization feature (`issue#15054 <http://tracker.ceph.com/issues/15054>`_, `pr#8026 <http://github.com/ceph/ceph/pull/8026>`_, Kefu Chai, Dan van der Ster, Sage Weil)
225 * mon/LogMonitor: use the configured facility if log to syslog (`issue#13748 <http://tracker.ceph.com/issues/13748>`_, `pr#7648 <http://github.com/ceph/ceph/pull/7648>`_, Kefu Chai)
226 * mon: mon sync does not copy config-key (`issue#14577 <http://tracker.ceph.com/issues/14577>`_, `pr#7576 <http://github.com/ceph/ceph/pull/7576>`_, Xiaowei Chen)
227 * mon/OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1 (`issue#15655 <http://tracker.ceph.com/issues/15655>`_, `pr#8979 <http://github.com/ceph/ceph/pull/8979>`_, Samuel Just)
228 * osd: consume_maps clearing of waiting_for_pg needs to check the spg_t shard for acting set membership (`issue#14278 <http://tracker.ceph.com/issues/14278>`_, `pr#7577 <http://github.com/ceph/ceph/pull/7577>`_, Samuel Just)
229 * osd: log inconsistent shard sizes (`issue#14009 <http://tracker.ceph.com/issues/14009>`_, `pr#6946 <http://github.com/ceph/ceph/pull/6946>`_, Loic Dachary)
230 * osd: OSD coredumps with leveldb compact on mount = true (`issue#14748 <http://tracker.ceph.com/issues/14748>`_, `pr#7645 <http://github.com/ceph/ceph/pull/7645>`_, Xiaoxi Chen)
231 * osd/OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from (`issue#14686 <http://tracker.ceph.com/issues/14686>`_, `pr#7590 <http://github.com/ceph/ceph/pull/7590>`_, Xinze Chi)
232 * osd: Protect against excessively large object map sizes (`issue#15121 <http://tracker.ceph.com/issues/15121>`_, `pr#8401 <http://github.com/ceph/ceph/pull/8401>`_, Jason Dillaman)
233 * osd/ReplicatedPG: do not proxy read *and* process op locally (`issue#15171 <http://tracker.ceph.com/issues/15171>`_, `pr#8187 <http://github.com/ceph/ceph/pull/8187>`_, Sage Weil)
234 * osd: scrub bogus results when missing a clone (`issue#14875 <http://tracker.ceph.com/issues/14875>`_, `issue#14874 <http://tracker.ceph.com/issues/14874>`_, `issue#14877 <http://tracker.ceph.com/issues/14877>`_, `issue#10098 <http://tracker.ceph.com/issues/10098>`_, `issue#14878 <http://tracker.ceph.com/issues/14878>`_, `issue#14881 <http://tracker.ceph.com/issues/14881>`_, `issue#14882 <http://tracker.ceph.com/issues/14882>`_, `issue#14883 <http://tracker.ceph.com/issues/14883>`_, `issue#14879 <http://tracker.ceph.com/issues/14879>`_, `issue#10290 <http://tracker.ceph.com/issues/10290>`_, `issue#12740 <http://tracker.ceph.com/issues/12740>`_, `issue#12738 <http://tracker.ceph.com/issues/12738>`_, `issue#14880 <http://tracker.ceph.com/issues/14880>`_, `issue#11135 <http://tracker.ceph.com/issues/11135>`_, `issue#14876 <http://tracker.ceph.com/issues/14876>`_, `issue#10809 <http://tracker.ceph.com/issues/10809>`_, `issue#12193 <http://tracker.ceph.com/issues/12193>`_, `issue#11237 <http://tracker.ceph.com/issues/11237>`_, `pr#7702 <http://github.com/ceph/ceph/pull/7702>`_, Xinze Chi, Sage Weil, John Spray, Kefu Chai, Mykola Golub, David Zafman)
235 * osd: Unable to bring up OSD's after dealing with FULL cluster (OSD assert with /include/interval_set.h: 386: FAILED assert(_size >= 0)) (`issue#14428 <http://tracker.ceph.com/issues/14428>`_, `pr#7415 <http://github.com/ceph/ceph/pull/7415>`_, Alexey Sheplyakov)
236 * osd: use GMT time for the object name of hitsets (`issue#13192 <http://tracker.ceph.com/issues/13192>`_, `issue#9732 <http://tracker.ceph.com/issues/9732>`_, `issue#12968 <http://tracker.ceph.com/issues/12968>`_, `pr#7883 <http://github.com/ceph/ceph/pull/7883>`_, Kefu Chai, David Zafman)
237 * qa/workunits/post-file.sh: sudo (`issue#14586 <http://tracker.ceph.com/issues/14586>`_, `pr#7456 <http://github.com/ceph/ceph/pull/7456>`_, Sage Weil)
238 * qa/workunits: remove 'mds setmap' from workunits (`pr#8123 <http://github.com/ceph/ceph/pull/8123>`_, Sage Weil)
239 * rgw: default quota params (`issue#12997 <http://tracker.ceph.com/issues/12997>`_, `pr#7188 <http://github.com/ceph/ceph/pull/7188>`_, Daniel Gryniewicz)
240 * rgw: make rgw_fronends more forgiving of whitespace (`issue#12038 <http://tracker.ceph.com/issues/12038>`_, `pr#7414 <http://github.com/ceph/ceph/pull/7414>`_, Matt Benjamin)
241 * rgw: radosgw-admin bucket check --fix not work (`issue#14215 <http://tracker.ceph.com/issues/14215>`_, `pr#7185 <http://github.com/ceph/ceph/pull/7185>`_, Weijun Duan)
242 * rpm package building fails if the build machine has lttng and babeltrace development packages installed locally (`issue#14844 <http://tracker.ceph.com/issues/14844>`_, `pr#8440 <http://github.com/ceph/ceph/pull/8440>`_, Kefu Chai)
243 * rpm: redhat-lsb-core dependency was dropped, but is still needed (`issue#14906 <http://tracker.ceph.com/issues/14906>`_, `pr#7876 <http://github.com/ceph/ceph/pull/7876>`_, Nathan Cutler)
244 * test_bit_vector.cc uses magic numbers against #defines that vary (`issue#14747 <http://tracker.ceph.com/issues/14747>`_, `pr#7672 <http://github.com/ceph/ceph/pull/7672>`_, Jason Dillaman)
245 * test/librados/tier.cc doesn't completely clean up EC pools (`issue#13878 <http://tracker.ceph.com/issues/13878>`_, `pr#8052 <http://github.com/ceph/ceph/pull/8052>`_, Loic Dachary, Dan Mick)
246 * tests: bufferlist: do not expect !is_page_aligned() after unaligned rebuild (`issue#15305 <http://tracker.ceph.com/issues/15305>`_, `pr#8272 <http://github.com/ceph/ceph/pull/8272>`_, Kefu Chai)
247 * tools: fix race condition in seq/rand bench (part 1) (`issue#14968 <http://tracker.ceph.com/issues/14968>`_, `issue#14873 <http://tracker.ceph.com/issues/14873>`_, `pr#7896 <http://github.com/ceph/ceph/pull/7896>`_, Alexey Sheplyakov, Piotr Dałek)
248 * tools: fix race condition in seq/rand bench (part 2) (`issue#14873 <http://tracker.ceph.com/issues/14873>`_, `pr#7817 <http://github.com/ceph/ceph/pull/7817>`_, Alexey Sheplyakov)
249 * tools/rados: add bench smoke tests (`issue#14971 <http://tracker.ceph.com/issues/14971>`_, `pr#7903 <http://github.com/ceph/ceph/pull/7903>`_, Piotr Dałek)
250 * tools, test: Add ceph-objectstore-tool to operate on the meta collection (`issue#14977 <http://tracker.ceph.com/issues/14977>`_, `pr#7911 <http://github.com/ceph/ceph/pull/7911>`_, David Zafman)
251 * unittest_crypto: benchmark 100,000 CryptoKey::encrypt() calls (`issue#14863 <http://tracker.ceph.com/issues/14863>`_, `pr#7801 <http://github.com/ceph/ceph/pull/7801>`_, Sage Weil)
252
253
254 v0.94.6 Hammer
255 ======================
256
257 This Hammer point release fixes a range of bugs, most notably a fix
258 for unbounded growth of the monitor's leveldb store, and a workaround
259 in the OSD to keep most xattrs small enough to be stored inline in XFS
260 inodes.
261
262 We recommend that all hammer v0.94.x users upgrade.
263
264 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.6.txt>`.
265
266 Notable Changes
267 ---------------
268 * build/ops: Ceph daemon failed to start, because the service name was already used. (`issue#13474 <http://tracker.ceph.com/issues/13474>`_, `pr#6832 <http://github.com/ceph/ceph/pull/6832>`_, Chuanhong Wang)
269 * build/ops: LTTng-UST tracing should be dynamically enabled (`issue#13274 <http://tracker.ceph.com/issues/13274>`_, `pr#6415 <http://github.com/ceph/ceph/pull/6415>`_, Jason Dillaman)
270 * build/ops: ceph upstart script rbdmap.conf incorrectly processes parameters (`issue#13214 <http://tracker.ceph.com/issues/13214>`_, `pr#6159 <http://github.com/ceph/ceph/pull/6159>`_, Sage Weil)
271 * build/ops: ceph.spec.in License line does not reflect COPYING (`issue#12935 <http://tracker.ceph.com/issues/12935>`_, `pr#6680 <http://github.com/ceph/ceph/pull/6680>`_, Nathan Cutler)
272 * build/ops: ceph.spec.in libcephfs_jni1 has no %post and %postun (`issue#12927 <http://tracker.ceph.com/issues/12927>`_, `pr#5789 <http://github.com/ceph/ceph/pull/5789>`_, Owen Synge)
273 * build/ops: configure.ac: no use to add "+" before ac_ext=c (`issue#14330 <http://tracker.ceph.com/issues/14330>`_, `pr#6973 <http://github.com/ceph/ceph/pull/6973>`_, Kefu Chai, Robin H. Johnson)
274 * build/ops: deb: strip tracepoint libraries from Wheezy/Precise builds (`issue#14801 <http://tracker.ceph.com/issues/14801>`_, `pr#7316 <http://github.com/ceph/ceph/pull/7316>`_, Jason Dillaman)
275 * build/ops: init script reload doesn't work on EL7 (`issue#13709 <http://tracker.ceph.com/issues/13709>`_, `pr#7187 <http://github.com/ceph/ceph/pull/7187>`_, Hervé Rousseau)
276 * build/ops: init-rbdmap uses distro-specific functions (`issue#12415 <http://tracker.ceph.com/issues/12415>`_, `pr#6528 <http://github.com/ceph/ceph/pull/6528>`_, Boris Ranto)
277 * build/ops: logrotate reload error on Ubuntu 14.04 (`issue#11330 <http://tracker.ceph.com/issues/11330>`_, `pr#5787 <http://github.com/ceph/ceph/pull/5787>`_, Sage Weil)
278 * build/ops: miscellaneous spec file fixes (`issue#12931 <http://tracker.ceph.com/issues/12931>`_, `issue#12994 <http://tracker.ceph.com/issues/12994>`_, `issue#12924 <http://tracker.ceph.com/issues/12924>`_, `issue#12360 <http://tracker.ceph.com/issues/12360>`_, `pr#5790 <http://github.com/ceph/ceph/pull/5790>`_, Boris Ranto, Nathan Cutler, Owen Synge, Travis Rhoden, Ken Dreyer)
279 * build/ops: pass tcmalloc env through to ceph-os (`issue#14802 <http://tracker.ceph.com/issues/14802>`_, `pr#7365 <http://github.com/ceph/ceph/pull/7365>`_, Sage Weil)
280 * build/ops: rbd-replay-* moved from ceph-test-dbg to ceph-common-dbg as well (`issue#13785 <http://tracker.ceph.com/issues/13785>`_, `pr#6580 <http://github.com/ceph/ceph/pull/6580>`_, Loic Dachary)
281 * build/ops: unknown argument --quiet in udevadm settle (`issue#13560 <http://tracker.ceph.com/issues/13560>`_, `pr#6530 <http://github.com/ceph/ceph/pull/6530>`_, Jason Dillaman)
282 * common: Objecter: pool op callback may hang forever. (`issue#13642 <http://tracker.ceph.com/issues/13642>`_, `pr#6588 <http://github.com/ceph/ceph/pull/6588>`_, xie xingguo)
283 * common: Objecter: potential null pointer access when do pool_snap_list. (`issue#13639 <http://tracker.ceph.com/issues/13639>`_, `pr#6839 <http://github.com/ceph/ceph/pull/6839>`_, xie xingguo)
284 * common: ThreadPool add/remove work queue methods not thread safe (`issue#12662 <http://tracker.ceph.com/issues/12662>`_, `pr#5889 <http://github.com/ceph/ceph/pull/5889>`_, Jason Dillaman)
285 * common: auth/cephx: large amounts of log are produced by osd (`issue#13610 <http://tracker.ceph.com/issues/13610>`_, `pr#6835 <http://github.com/ceph/ceph/pull/6835>`_, Qiankun Zheng)
286 * common: client nonce collision due to unshared pid namespaces (`issue#13032 <http://tracker.ceph.com/issues/13032>`_, `pr#6151 <http://github.com/ceph/ceph/pull/6151>`_, Josh Durgin)
287 * common: common/Thread:pthread_attr_destroy(thread_attr) when done with it (`issue#12570 <http://tracker.ceph.com/issues/12570>`_, `pr#6157 <http://github.com/ceph/ceph/pull/6157>`_, Piotr Dałek)
288 * common: log: Log.cc: Assign LOG_DEBUG priority to syslog calls (`issue#13993 <http://tracker.ceph.com/issues/13993>`_, `pr#6994 <http://github.com/ceph/ceph/pull/6994>`_, Brad Hubbard)
289 * common: objecter: cancellation bugs (`issue#13071 <http://tracker.ceph.com/issues/13071>`_, `pr#6155 <http://github.com/ceph/ceph/pull/6155>`_, Jianpeng Ma)
290 * common: pure virtual method called (`issue#13636 <http://tracker.ceph.com/issues/13636>`_, `pr#6587 <http://github.com/ceph/ceph/pull/6587>`_, Jason Dillaman)
291 * common: small probability sigabrt when setting rados_osd_op_timeout (`issue#13208 <http://tracker.ceph.com/issues/13208>`_, `pr#6143 <http://github.com/ceph/ceph/pull/6143>`_, Ruifeng Yang)
292 * common: wrong conditional for boolean function KeyServer::get_auth() (`issue#9756 <http://tracker.ceph.com/issues/9756>`_, `issue#13424 <http://tracker.ceph.com/issues/13424>`_, `pr#6213 <http://github.com/ceph/ceph/pull/6213>`_, Nathan Cutler)
293 * crush: crash if we see CRUSH_ITEM_NONE in early rule step (`issue#13477 <http://tracker.ceph.com/issues/13477>`_, `pr#6430 <http://github.com/ceph/ceph/pull/6430>`_, Sage Weil)
294 * doc: man: document listwatchers cmd in "rados" manpage (`issue#14556 <http://tracker.ceph.com/issues/14556>`_, `pr#7434 <http://github.com/ceph/ceph/pull/7434>`_, Kefu Chai)
295 * doc: regenerate man pages, add orphans commands to radosgw-admin(8) (`issue#14637 <http://tracker.ceph.com/issues/14637>`_, `pr#7524 <http://github.com/ceph/ceph/pull/7524>`_, Ken Dreyer)
296 * fs: CephFS restriction on removing cache tiers is overly strict (`issue#11504 <http://tracker.ceph.com/issues/11504>`_, `pr#6402 <http://github.com/ceph/ceph/pull/6402>`_, John Spray)
297 * fs: fsstress.sh fails (`issue#12710 <http://tracker.ceph.com/issues/12710>`_, `pr#7454 <http://github.com/ceph/ceph/pull/7454>`_, Yan, Zheng)
298 * librados: LibRadosWatchNotify.WatchNotify2Timeout (`issue#13114 <http://tracker.ceph.com/issues/13114>`_, `pr#6336 <http://github.com/ceph/ceph/pull/6336>`_, Sage Weil)
299 * librbd: ImageWatcher shouldn't block the notification thread (`issue#14373 <http://tracker.ceph.com/issues/14373>`_, `pr#7407 <http://github.com/ceph/ceph/pull/7407>`_, Jason Dillaman)
300 * librbd: diff_iterate needs to handle holes in parent images (`issue#12885 <http://tracker.ceph.com/issues/12885>`_, `pr#6097 <http://github.com/ceph/ceph/pull/6097>`_, Jason Dillaman)
301 * librbd: fix merge-diff for >2GB diff-files (`issue#14030 <http://tracker.ceph.com/issues/14030>`_, `pr#6980 <http://github.com/ceph/ceph/pull/6980>`_, Jason Dillaman)
302 * librbd: invalidate object map on error even w/o holding lock (`issue#13372 <http://tracker.ceph.com/issues/13372>`_, `pr#6289 <http://github.com/ceph/ceph/pull/6289>`_, Jason Dillaman)
303 * librbd: reads larger than cache size hang (`issue#13164 <http://tracker.ceph.com/issues/13164>`_, `pr#6354 <http://github.com/ceph/ceph/pull/6354>`_, Lu Shi)
304 * mds: ceph mds add_data_pool check for EC pool is wrong (`issue#12426 <http://tracker.ceph.com/issues/12426>`_, `pr#5766 <http://github.com/ceph/ceph/pull/5766>`_, John Spray)
305 * mon: MonitorDBStore: get_next_key() only if prefix matches (`issue#11786 <http://tracker.ceph.com/issues/11786>`_, `pr#5361 <http://github.com/ceph/ceph/pull/5361>`_, Joao Eduardo Luis)
306 * mon: OSDMonitor: do not assume a session exists in send_incremental() (`issue#14236 <http://tracker.ceph.com/issues/14236>`_, `pr#7150 <http://github.com/ceph/ceph/pull/7150>`_, Joao Eduardo Luis)
307 * mon: check for store writeablility before participating in election (`issue#13089 <http://tracker.ceph.com/issues/13089>`_, `pr#6144 <http://github.com/ceph/ceph/pull/6144>`_, Sage Weil)
308 * mon: compact full epochs also (`issue#14537 <http://tracker.ceph.com/issues/14537>`_, `pr#7446 <http://github.com/ceph/ceph/pull/7446>`_, Kefu Chai)
309 * mon: include min_last_epoch_clean as part of PGMap::print_summary and PGMap::dump (`issue#13198 <http://tracker.ceph.com/issues/13198>`_, `pr#6152 <http://github.com/ceph/ceph/pull/6152>`_, Guang Yang)
310 * mon: map_cache can become inaccurate if osd does not receive the osdmaps (`issue#10930 <http://tracker.ceph.com/issues/10930>`_, `pr#5773 <http://github.com/ceph/ceph/pull/5773>`_, Kefu Chai)
311 * mon: should not set isvalid = true when cephx_verify_authorizer return false (`issue#13525 <http://tracker.ceph.com/issues/13525>`_, `pr#6391 <http://github.com/ceph/ceph/pull/6391>`_, Ruifeng Yang)
312 * osd: Ceph Pools' MAX AVAIL is 0 if some OSDs' weight is 0 (`issue#13840 <http://tracker.ceph.com/issues/13840>`_, `pr#6834 <http://github.com/ceph/ceph/pull/6834>`_, Chengyuan Li)
313 * osd: FileStore calls syncfs(2) even it is not supported (`issue#12512 <http://tracker.ceph.com/issues/12512>`_, `pr#5530 <http://github.com/ceph/ceph/pull/5530>`_, Kefu Chai)
314 * osd: FileStore: potential memory leak if getattrs fails. (`issue#13597 <http://tracker.ceph.com/issues/13597>`_, `pr#6420 <http://github.com/ceph/ceph/pull/6420>`_, xie xingguo)
315 * osd: IO error on kvm/rbd with an erasure coded pool tier (`issue#12012 <http://tracker.ceph.com/issues/12012>`_, `pr#5897 <http://github.com/ceph/ceph/pull/5897>`_, Kefu Chai)
316 * osd: OSD::build_past_intervals_parallel() shall reset primary and up_primary when begin a new past_interval. (`issue#13471 <http://tracker.ceph.com/issues/13471>`_, `pr#6398 <http://github.com/ceph/ceph/pull/6398>`_, xiexingguo)
317 * osd: ReplicatedBackend: populate recovery_info.size for clone (bug symptom is size mismatch on replicated backend on a clone in scrub) (`issue#12828 <http://tracker.ceph.com/issues/12828>`_, `pr#6153 <http://github.com/ceph/ceph/pull/6153>`_, Samuel Just)
318 * osd: ReplicatedPG: wrong result code checking logic during sparse_read (`issue#14151 <http://tracker.ceph.com/issues/14151>`_, `pr#7179 <http://github.com/ceph/ceph/pull/7179>`_, xie xingguo)
319 * osd: ReplicatedPG::hit_set_trim osd/ReplicatedPG.cc: 11006: FAILED assert(obc) (`issue#13192 <http://tracker.ceph.com/issues/13192>`_, `issue#9732 <http://tracker.ceph.com/issues/9732>`_, `issue#12968 <http://tracker.ceph.com/issues/12968>`_, `pr#5825 <http://github.com/ceph/ceph/pull/5825>`_, Kefu Chai, Zhiqiang Wang, Samuel Just, David Zafman)
320 * osd: avoid multi set osd_op.outdata in tier pool (`issue#12540 <http://tracker.ceph.com/issues/12540>`_, `pr#6060 <http://github.com/ceph/ceph/pull/6060>`_, Xinze Chi)
321 * osd: bug with cache/tiering and snapshot reads (`issue#12748 <http://tracker.ceph.com/issues/12748>`_, `pr#6589 <http://github.com/ceph/ceph/pull/6589>`_, Kefu Chai)
322 * osd: ceph osd pool stats broken in hammer (`issue#13843 <http://tracker.ceph.com/issues/13843>`_, `pr#7180 <http://github.com/ceph/ceph/pull/7180>`_, BJ Lougee)
323 * osd: ceph-disk prepare fails if device is a symlink (`issue#13438 <http://tracker.ceph.com/issues/13438>`_, `pr#7176 <http://github.com/ceph/ceph/pull/7176>`_, Joe Julian)
324 * osd: check for full before changing the cached obc (hammer) (`issue#13098 <http://tracker.ceph.com/issues/13098>`_, `pr#6918 <http://github.com/ceph/ceph/pull/6918>`_, Alexey Sheplyakov)
325 * osd: config_opts: increase suicide timeout to 300 to match recovery (`issue#14376 <http://tracker.ceph.com/issues/14376>`_, `pr#7236 <http://github.com/ceph/ceph/pull/7236>`_, Samuel Just)
326 * osd: disable filestore_xfs_extsize by default (`issue#14397 <http://tracker.ceph.com/issues/14397>`_, `pr#7411 <http://github.com/ceph/ceph/pull/7411>`_, Ken Dreyer)
327 * osd: do not cache unused memory in attrs (`issue#12565 <http://tracker.ceph.com/issues/12565>`_, `pr#6499 <http://github.com/ceph/ceph/pull/6499>`_, Xinze Chi, Ning Yao)
328 * osd: dumpling incrementals do not work properly on hammer and newer (`issue#13234 <http://tracker.ceph.com/issues/13234>`_, `pr#6132 <http://github.com/ceph/ceph/pull/6132>`_, Samuel Just)
329 * osd: filestore: fix peek_queue for OpSequencer (`issue#13209 <http://tracker.ceph.com/issues/13209>`_, `pr#6145 <http://github.com/ceph/ceph/pull/6145>`_, Xinze Chi)
330 * osd: hit set clear repops fired in same epoch as map change -- segfault since they fall into the new interval even though the repops are cleared (`issue#12809 <http://tracker.ceph.com/issues/12809>`_, `pr#5890 <http://github.com/ceph/ceph/pull/5890>`_, Samuel Just)
331 * osd: object_info_t::decode() has wrong version (`issue#13462 <http://tracker.ceph.com/issues/13462>`_, `pr#6335 <http://github.com/ceph/ceph/pull/6335>`_, David Zafman)
332 * osd: osd/OSD.cc: 2469: FAILED assert(pg_stat_queue.empty()) on shutdown (`issue#14212 <http://tracker.ceph.com/issues/14212>`_, `pr#7178 <http://github.com/ceph/ceph/pull/7178>`_, Sage Weil)
333 * osd: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started) (`issue#14015 <http://tracker.ceph.com/issues/14015>`_, `pr#7177 <http://github.com/ceph/ceph/pull/7177>`_, David Zafman)
334 * osd: osd/PG.cc: 3837: FAILED assert(0 == "Running incompatible OSD") (`issue#11661 <http://tracker.ceph.com/issues/11661>`_, `pr#7206 <http://github.com/ceph/ceph/pull/7206>`_, David Zafman)
335 * osd: osd/ReplicatedPG: Recency fix (`issue#14320 <http://tracker.ceph.com/issues/14320>`_, `pr#7207 <http://github.com/ceph/ceph/pull/7207>`_, Sage Weil, Robert LeBlanc)
336 * osd: pg stuck in replay (`issue#13116 <http://tracker.ceph.com/issues/13116>`_, `pr#6401 <http://github.com/ceph/ceph/pull/6401>`_, Sage Weil)
337 * osd: race condition detected during send_failures (`issue#13821 <http://tracker.ceph.com/issues/13821>`_, `pr#6755 <http://github.com/ceph/ceph/pull/6755>`_, Sage Weil)
338 * osd: randomize scrub times (`issue#10973 <http://tracker.ceph.com/issues/10973>`_, `pr#6199 <http://github.com/ceph/ceph/pull/6199>`_, Kefu Chai)
339 * osd: requeue_scrub when kick_object_context_blocked (`issue#12515 <http://tracker.ceph.com/issues/12515>`_, `pr#5891 <http://github.com/ceph/ceph/pull/5891>`_, Xinze Chi)
340 * osd: revert: use GMT time for hitsets (`issue#13812 <http://tracker.ceph.com/issues/13812>`_, `pr#6644 <http://github.com/ceph/ceph/pull/6644>`_, Loic Dachary)
341 * osd: segfault in agent_work (`issue#13199 <http://tracker.ceph.com/issues/13199>`_, `pr#6146 <http://github.com/ceph/ceph/pull/6146>`_, Samuel Just)
342 * osd: should recalc the min_last_epoch_clean when decode PGMap (`issue#13112 <http://tracker.ceph.com/issues/13112>`_, `pr#6154 <http://github.com/ceph/ceph/pull/6154>`_, Kefu Chai)
343 * osd: smaller object_info_t xattrs (`issue#14803 <http://tracker.ceph.com/issues/14803>`_, `pr#6544 <http://github.com/ceph/ceph/pull/6544>`_, Sage Weil)
344 * osd: we do not ignore notify from down osds (`issue#12990 <http://tracker.ceph.com/issues/12990>`_, `pr#6158 <http://github.com/ceph/ceph/pull/6158>`_, Samuel Just)
345 * rbd: QEMU hangs after creating snapshot and stopping VM (`issue#13726 <http://tracker.ceph.com/issues/13726>`_, `pr#6586 <http://github.com/ceph/ceph/pull/6586>`_, Jason Dillaman)
346 * rbd: TaskFinisher::cancel should remove event from SafeTimer (`issue#14476 <http://tracker.ceph.com/issues/14476>`_, `pr#7417 <http://github.com/ceph/ceph/pull/7417>`_, Douglas Fuller)
347 * rbd: avoid re-writing old-format image header on resize (`issue#13674 <http://tracker.ceph.com/issues/13674>`_, `pr#6585 <http://github.com/ceph/ceph/pull/6585>`_, Jason Dillaman)
348 * rbd: fix bench-write (`issue#14225 <http://tracker.ceph.com/issues/14225>`_, `pr#7183 <http://github.com/ceph/ceph/pull/7183>`_, Sage Weil)
349 * rbd: rbd-replay does not check for EOF and goes to endless loop (`issue#14452 <http://tracker.ceph.com/issues/14452>`_, `pr#7416 <http://github.com/ceph/ceph/pull/7416>`_, Mykola Golub)
350 * rbd: rbd-replay-prep and rbd-replay improvements (`issue#13221 <http://tracker.ceph.com/issues/13221>`_, `issue#13220 <http://tracker.ceph.com/issues/13220>`_, `issue#13378 <http://tracker.ceph.com/issues/13378>`_, `pr#6286 <http://github.com/ceph/ceph/pull/6286>`_, Jason Dillaman)
351 * rbd: verify self-managed snapshot functionality on image create (`issue#13633 <http://tracker.ceph.com/issues/13633>`_, `pr#7182 <http://github.com/ceph/ceph/pull/7182>`_, Jason Dillaman)
352 * rgw: Make RGW_MAX_PUT_SIZE configurable (`issue#6999 <http://tracker.ceph.com/issues/6999>`_, `pr#7441 <http://github.com/ceph/ceph/pull/7441>`_, Vladislav Odintsov, Yuan Zhou)
353 * rgw: Setting ACL on Object removes ETag (`issue#12955 <http://tracker.ceph.com/issues/12955>`_, `pr#6620 <http://github.com/ceph/ceph/pull/6620>`_, Brian Felton)
354 * rgw: backport content-type casing (`issue#12939 <http://tracker.ceph.com/issues/12939>`_, `pr#5910 <http://github.com/ceph/ceph/pull/5910>`_, Robin H. Johnson)
355 * rgw: bucket listing hangs on versioned buckets (`issue#12913 <http://tracker.ceph.com/issues/12913>`_, `pr#6352 <http://github.com/ceph/ceph/pull/6352>`_, Yehuda Sadeh)
356 * rgw: fix wrong etag calculation during POST on S3 bucket. (`issue#11241 <http://tracker.ceph.com/issues/11241>`_, `pr#7442 <http://github.com/ceph/ceph/pull/7442>`_, Vladislav Odintsov, Radoslaw Zarzynski)
357 * rgw: get bucket location returns region name, not region api name (`issue#13458 <http://tracker.ceph.com/issues/13458>`_, `pr#6349 <http://github.com/ceph/ceph/pull/6349>`_, Yehuda Sadeh)
358 * rgw: missing handling of encoding-type=url when listing keys in bucket (`issue#12735 <http://tracker.ceph.com/issues/12735>`_, `pr#6527 <http://github.com/ceph/ceph/pull/6527>`_, Jeff Weber)
359 * rgw: orphan tool should be careful about removing head objects (`issue#12958 <http://tracker.ceph.com/issues/12958>`_, `pr#6351 <http://github.com/ceph/ceph/pull/6351>`_, Yehuda Sadeh)
360 * rgw: orphans finish segfaults (`issue#13824 <http://tracker.ceph.com/issues/13824>`_, `pr#7186 <http://github.com/ceph/ceph/pull/7186>`_, Igor Fedotov)
361 * rgw: rgw-admin: document orphans commands in usage (`issue#14516 <http://tracker.ceph.com/issues/14516>`_, `pr#7526 <http://github.com/ceph/ceph/pull/7526>`_, Yehuda Sadeh)
362 * rgw: swift API returns more than real object count and bytes used when retrieving account metadata (`issue#13140 <http://tracker.ceph.com/issues/13140>`_, `pr#6512 <http://github.com/ceph/ceph/pull/6512>`_, Sangdi Xu)
363 * rgw: swift use Civetweb ssl can not get right url (`issue#13628 <http://tracker.ceph.com/issues/13628>`_, `pr#6491 <http://github.com/ceph/ceph/pull/6491>`_, Weijun Duan)
364 * rgw: value of Swift API's X-Object-Manifest header is not url_decoded during segment look up (`issue#12728 <http://tracker.ceph.com/issues/12728>`_, `pr#6353 <http://github.com/ceph/ceph/pull/6353>`_, Radoslaw Zarzynski)
365 * tests: fixed broken Makefiles after integration of ttng into rados (`issue#13210 <http://tracker.ceph.com/issues/13210>`_, `pr#6322 <http://github.com/ceph/ceph/pull/6322>`_, Sebastien Ponce)
366 * tests: fsx failed to compile (`issue#14384 <http://tracker.ceph.com/issues/14384>`_, `pr#7501 <http://github.com/ceph/ceph/pull/7501>`_, Greg Farnum)
367 * tests: notification slave needs to wait for master (`issue#13810 <http://tracker.ceph.com/issues/13810>`_, `pr#7226 <http://github.com/ceph/ceph/pull/7226>`_, Jason Dillaman)
368 * tests: qa: remove legacy OS support from rbd/qemu-iotests (`issue#13483 <http://tracker.ceph.com/issues/13483>`_, `issue#14385 <http://tracker.ceph.com/issues/14385>`_, `pr#7252 <http://github.com/ceph/ceph/pull/7252>`_, Vasu Kulkarni, Jason Dillaman)
369 * tests: testprofile must be removed before it is re-created (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6450 <http://github.com/ceph/ceph/pull/6450>`_, Loic Dachary)
370 * tools: ceph-monstore-tool must do out_store.close() (`issue#10093 <http://tracker.ceph.com/issues/10093>`_, `pr#7347 <http://github.com/ceph/ceph/pull/7347>`_, huangjun)
371 * tools: heavy memory shuffling in rados bench (`issue#12946 <http://tracker.ceph.com/issues/12946>`_, `pr#5810 <http://github.com/ceph/ceph/pull/5810>`_, Piotr Dałek)
372 * tools: race condition in rados bench (`issue#12947 <http://tracker.ceph.com/issues/12947>`_, `pr#6791 <http://github.com/ceph/ceph/pull/6791>`_, Piotr Dałek)
373 * tools: tool for artificially inflate the leveldb of the mon store for testing purposes (`issue#10093 <http://tracker.ceph.com/issues/10093>`_, `issue#11815 <http://tracker.ceph.com/issues/11815>`_, `issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#7412 <http://github.com/ceph/ceph/pull/7412>`_, Cilang Zhao, Bo Cai, Kefu Chai, huangjun, Joao Eduardo Luis)
374
375 v0.94.5 Hammer
376 ==============
377
378 This Hammer point release fixes a critical regression in librbd that can cause
379 QEMU/KVM to crash when caching is enabled on images that have been cloned.
380
381 All v0.94.4 Hammer users are strongly encouraged to upgrade.
382
383 Notable Changes
384 ---------------
385 * librbd: potential assertion failure during cache read (`issue#13559 <http://tracker.ceph.com/issues/13559>`_, `pr#6348 <http://github.com/ceph/ceph/pull/6348>`_, Jason Dillaman)
386 * osd: osd/ReplicatedPG: remove stray debug line (`issue#13455 <http://tracker.ceph.com/issues/13455>`_, `pr#6362 <http://github.com/ceph/ceph/pull/6362>`_, Sage Weil)
387 * tests: qemu workunit refers to apt-mirror.front.sepia.ceph.com (`issue#13420 <http://tracker.ceph.com/issues/13420>`_, `pr#6330 <http://github.com/ceph/ceph/pull/6330>`_, Yuan Zhou)
388
389 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.5.txt>`.
390
391 v0.94.4 Hammer
392 ==============
393
394 This Hammer point release fixes several important bugs in Hammer, as well as
395 fixing interoperability issues that are required before an upgrade to
396 Infernalis. That is, all users of earlier version of Hammer or any
397 version of Firefly will first need to upgrade to hammer v0.94.4 or
398 later before upgrading to Infernalis (or future releases).
399
400 All v0.94.x Hammer users are strongly encouraged to upgrade.
401
402 Notable Changes
403 ---------------
404 * build/ops: ceph.spec.in: 50-rbd.rules conditional is wrong (`issue#12166 <http://tracker.ceph.com/issues/12166>`_, `pr#5207 <http://github.com/ceph/ceph/pull/5207>`_, Nathan Cutler)
405 * build/ops: ceph.spec.in: ceph-common needs python-argparse on older distros, but doesn't require it (`issue#12034 <http://tracker.ceph.com/issues/12034>`_, `pr#5216 <http://github.com/ceph/ceph/pull/5216>`_, Nathan Cutler)
406 * build/ops: ceph.spec.in: radosgw requires apache for SUSE only -- makes no sense (`issue#12358 <http://tracker.ceph.com/issues/12358>`_, `pr#5411 <http://github.com/ceph/ceph/pull/5411>`_, Nathan Cutler)
407 * build/ops: ceph.spec.in: rpm: cephfs_java not fully conditionalized (`issue#11991 <http://tracker.ceph.com/issues/11991>`_, `pr#5202 <http://github.com/ceph/ceph/pull/5202>`_, Nathan Cutler)
408 * build/ops: ceph.spec.in: rpm: not possible to turn off Java (`issue#11992 <http://tracker.ceph.com/issues/11992>`_, `pr#5203 <http://github.com/ceph/ceph/pull/5203>`_, Owen Synge)
409 * build/ops: ceph.spec.in: running fdupes unnecessarily (`issue#12301 <http://tracker.ceph.com/issues/12301>`_, `pr#5223 <http://github.com/ceph/ceph/pull/5223>`_, Nathan Cutler)
410 * build/ops: ceph.spec.in: snappy-devel for all supported distros (`issue#12361 <http://tracker.ceph.com/issues/12361>`_, `pr#5264 <http://github.com/ceph/ceph/pull/5264>`_, Nathan Cutler)
411 * build/ops: ceph.spec.in: SUSE/openSUSE builds need libbz2-devel (`issue#11629 <http://tracker.ceph.com/issues/11629>`_, `pr#5204 <http://github.com/ceph/ceph/pull/5204>`_, Nathan Cutler)
412 * build/ops: ceph.spec.in: useless %py_requires breaks SLE11-SP3 build (`issue#12351 <http://tracker.ceph.com/issues/12351>`_, `pr#5412 <http://github.com/ceph/ceph/pull/5412>`_, Nathan Cutler)
413 * build/ops: error in ext_mime_map_init() when /etc/mime.types is missing (`issue#11864 <http://tracker.ceph.com/issues/11864>`_, `pr#5385 <http://github.com/ceph/ceph/pull/5385>`_, Ken Dreyer)
414 * build/ops: upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s) (`issue#11798 <http://tracker.ceph.com/issues/11798>`_, `pr#5930 <http://github.com/ceph/ceph/pull/5930>`_, Sage Weil)
415 * build/ops: With root as default user, unable to have multiple RGW instances running (`issue#10927 <http://tracker.ceph.com/issues/10927>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
416 * build/ops: With root as default user, unable to have multiple RGW instances running (`issue#11140 <http://tracker.ceph.com/issues/11140>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
417 * build/ops: With root as default user, unable to have multiple RGW instances running (`issue#11686 <http://tracker.ceph.com/issues/11686>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
418 * build/ops: With root as default user, unable to have multiple RGW instances running (`issue#12407 <http://tracker.ceph.com/issues/12407>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
419 * cli: ceph: cli throws exception on unrecognized errno (`issue#11354 <http://tracker.ceph.com/issues/11354>`_, `pr#5368 <http://github.com/ceph/ceph/pull/5368>`_, Kefu Chai)
420 * cli: ceph tell: broken error message / misleading hinting (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#5371 <http://github.com/ceph/ceph/pull/5371>`_, Kefu Chai)
421 * common: arm: all programs that link to librados2 hang forever on startup (`issue#12505 <http://tracker.ceph.com/issues/12505>`_, `pr#5366 <http://github.com/ceph/ceph/pull/5366>`_, Boris Ranto)
422 * common: buffer: critical bufferlist::zero bug (`issue#12252 <http://tracker.ceph.com/issues/12252>`_, `pr#5365 <http://github.com/ceph/ceph/pull/5365>`_, Haomai Wang)
423 * common: ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects (`issue#13070 <http://tracker.ceph.com/issues/13070>`_, `pr#5551 <http://github.com/ceph/ceph/pull/5551>`_, Sage Weil)
424 * common: do not insert emtpy ptr when rebuild emtpy bufferlist (`issue#12775 <http://tracker.ceph.com/issues/12775>`_, `pr#5764 <http://github.com/ceph/ceph/pull/5764>`_, Xinze Chi)
425 * common: [ FAILED ] TestLibRBD.BlockingAIO (`issue#12479 <http://tracker.ceph.com/issues/12479>`_, `pr#5768 <http://github.com/ceph/ceph/pull/5768>`_, Jason Dillaman)
426 * common: LibCephFS.GetPoolId failure (`issue#12598 <http://tracker.ceph.com/issues/12598>`_, `pr#5887 <http://github.com/ceph/ceph/pull/5887>`_, Yan, Zheng)
427 * common: Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy (`issue#11762 <http://tracker.ceph.com/issues/11762>`_, `pr#5378 <http://github.com/ceph/ceph/pull/5378>`_, Ketor Meng)
428 * common: object_map_update fails with -EINVAL return code (`issue#12611 <http://tracker.ceph.com/issues/12611>`_, `pr#5559 <http://github.com/ceph/ceph/pull/5559>`_, Jason Dillaman)
429 * common: Pipe: Drop connect_seq increase line (`issue#13093 <http://tracker.ceph.com/issues/13093>`_, `pr#5908 <http://github.com/ceph/ceph/pull/5908>`_, Haomai Wang)
430 * common: recursive lock of md_config_t (0) (`issue#12614 <http://tracker.ceph.com/issues/12614>`_, `pr#5759 <http://github.com/ceph/ceph/pull/5759>`_, Josh Durgin)
431 * crush: ceph osd crush reweight-subtree does not reweight parent node (`issue#11855 <http://tracker.ceph.com/issues/11855>`_, `pr#5374 <http://github.com/ceph/ceph/pull/5374>`_, Sage Weil)
432 * doc: update docs to point to download.ceph.com (`issue#13162 <http://tracker.ceph.com/issues/13162>`_, `pr#6156 <http://github.com/ceph/ceph/pull/6156>`_, Alfredo Deza)
433 * fs: ceph-fuse 0.94.2-1trusty segfaults / aborts (`issue#12297 <http://tracker.ceph.com/issues/12297>`_, `pr#5381 <http://github.com/ceph/ceph/pull/5381>`_, Greg Farnum)
434 * fs: segfault launching ceph-fuse with bad --name (`issue#12417 <http://tracker.ceph.com/issues/12417>`_, `pr#5382 <http://github.com/ceph/ceph/pull/5382>`_, John Spray)
435 * librados: Change radosgw pools default crush ruleset (`issue#11640 <http://tracker.ceph.com/issues/11640>`_, `pr#5754 <http://github.com/ceph/ceph/pull/5754>`_, Yuan Zhou)
436 * librbd: correct issues discovered via lockdep / helgrind (`issue#12345 <http://tracker.ceph.com/issues/12345>`_, `pr#5296 <http://github.com/ceph/ceph/pull/5296>`_, Jason Dillaman)
437 * librbd: Crash during TestInternal.MultipleResize (`issue#12664 <http://tracker.ceph.com/issues/12664>`_, `pr#5769 <http://github.com/ceph/ceph/pull/5769>`_, Jason Dillaman)
438 * librbd: deadlock during cooperative exclusive lock transition (`issue#11537 <http://tracker.ceph.com/issues/11537>`_, `pr#5319 <http://github.com/ceph/ceph/pull/5319>`_, Jason Dillaman)
439 * librbd: Possible crash while concurrently writing and shrinking an image (`issue#11743 <http://tracker.ceph.com/issues/11743>`_, `pr#5318 <http://github.com/ceph/ceph/pull/5318>`_, Jason Dillaman)
440 * mon: add a cache layer over MonitorDBStore (`issue#12638 <http://tracker.ceph.com/issues/12638>`_, `pr#5697 <http://github.com/ceph/ceph/pull/5697>`_, Kefu Chai)
441 * mon: fix crush testing for new pools (`issue#13400 <http://tracker.ceph.com/issues/13400>`_, `pr#6192 <http://github.com/ceph/ceph/pull/6192>`_, Sage Weil)
442 * mon: get pools health'info have error (`issue#12402 <http://tracker.ceph.com/issues/12402>`_, `pr#5369 <http://github.com/ceph/ceph/pull/5369>`_, renhwztetecs)
443 * mon: implicit erasure code crush ruleset is not validated (`issue#11814 <http://tracker.ceph.com/issues/11814>`_, `pr#5276 <http://github.com/ceph/ceph/pull/5276>`_, Loic Dachary)
444 * mon: PaxosService: call post_refresh() instead of post_paxos_update() (`issue#11470 <http://tracker.ceph.com/issues/11470>`_, `pr#5359 <http://github.com/ceph/ceph/pull/5359>`_, Joao Eduardo Luis)
445 * mon: pgmonitor: wrong at/near target max“ reporting (`issue#12401 <http://tracker.ceph.com/issues/12401>`_, `pr#5370 <http://github.com/ceph/ceph/pull/5370>`_, huangjun)
446 * mon: register_new_pgs() should check ruleno instead of its index (`issue#12210 <http://tracker.ceph.com/issues/12210>`_, `pr#5377 <http://github.com/ceph/ceph/pull/5377>`_, Xinze Chi)
447 * mon: Show osd as NONE in ceph osd map <pool> <object> output (`issue#11820 <http://tracker.ceph.com/issues/11820>`_, `pr#5376 <http://github.com/ceph/ceph/pull/5376>`_, Shylesh Kumar)
448 * mon: the output is wrong when runing ceph osd reweight (`issue#12251 <http://tracker.ceph.com/issues/12251>`_, `pr#5372 <http://github.com/ceph/ceph/pull/5372>`_, Joao Eduardo Luis)
449 * osd: allow peek_map_epoch to return an error (`issue#13060 <http://tracker.ceph.com/issues/13060>`_, `pr#5892 <http://github.com/ceph/ceph/pull/5892>`_, Sage Weil)
450 * osd: cache agent is idle although one object is left in the cache (`issue#12673 <http://tracker.ceph.com/issues/12673>`_, `pr#5765 <http://github.com/ceph/ceph/pull/5765>`_, Loic Dachary)
451 * osd: copy-from doesn't preserve truncate_{seq,size} (`issue#12551 <http://tracker.ceph.com/issues/12551>`_, `pr#5885 <http://github.com/ceph/ceph/pull/5885>`_, Samuel Just)
452 * osd: crash creating/deleting pools (`issue#12429 <http://tracker.ceph.com/issues/12429>`_, `pr#5527 <http://github.com/ceph/ceph/pull/5527>`_, John Spray)
453 * osd: fix repair when recorded digest is wrong (`issue#12577 <http://tracker.ceph.com/issues/12577>`_, `pr#5468 <http://github.com/ceph/ceph/pull/5468>`_, Sage Weil)
454 * osd: include/ceph_features: define HAMMER_0_94_4 feature (`issue#13026 <http://tracker.ceph.com/issues/13026>`_, `pr#5687 <http://github.com/ceph/ceph/pull/5687>`_, Sage Weil)
455 * osd: is_new_interval() fixes (`issue#10399 <http://tracker.ceph.com/issues/10399>`_, `pr#5691 <http://github.com/ceph/ceph/pull/5691>`_, Jason Dillaman)
456 * osd: is_new_interval() fixes (`issue#11771 <http://tracker.ceph.com/issues/11771>`_, `pr#5691 <http://github.com/ceph/ceph/pull/5691>`_, Jason Dillaman)
457 * osd: long standing slow requests: connection->session->waiting_for_map->connection ref cycle (`issue#12338 <http://tracker.ceph.com/issues/12338>`_, `pr#5761 <http://github.com/ceph/ceph/pull/5761>`_, Samuel Just)
458 * osd: Mutex Assert from PipeConnection::try_get_pipe (`issue#12437 <http://tracker.ceph.com/issues/12437>`_, `pr#5758 <http://github.com/ceph/ceph/pull/5758>`_, David Zafman)
459 * 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 <http://tracker.ceph.com/issues/12162>`_, `pr#5373 <http://github.com/ceph/ceph/pull/5373>`_, Guang G Yang)
460 * osd: PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#12652 <http://tracker.ceph.com/issues/12652>`_, `pr#5763 <http://github.com/ceph/ceph/pull/5763>`_, Sage Weil)
461 * osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (`issue#11358 <http://tracker.ceph.com/issues/11358>`_, `pr#5380 <http://github.com/ceph/ceph/pull/5380>`_, Samuel Just)
462 * osd: read on chunk-aligned xattr not handled (`issue#12309 <http://tracker.ceph.com/issues/12309>`_, `pr#5367 <http://github.com/ceph/ceph/pull/5367>`_, Sage Weil)
463 * osd: suicide timeout during peering - search for missing objects (`issue#12523 <http://tracker.ceph.com/issues/12523>`_, `pr#5762 <http://github.com/ceph/ceph/pull/5762>`_, Guang G Yang)
464 * osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (`issue#12223 <http://tracker.ceph.com/issues/12223>`_, `pr#5757 <http://github.com/ceph/ceph/pull/5757>`_, Samuel Just)
465 * rbd: crash during shutdown after writeback blocked by IO errors (`issue#12597 <http://tracker.ceph.com/issues/12597>`_, `pr#5767 <http://github.com/ceph/ceph/pull/5767>`_, Jianpeng Ma)
466 * rgw: add delimiter to prefix only when path is specified (`issue#12960 <http://tracker.ceph.com/issues/12960>`_, `pr#5860 <http://github.com/ceph/ceph/pull/5860>`_, Sylvain Baubeau)
467 * rgw: create a tool for orphaned objects cleanup (`issue#9604 <http://tracker.ceph.com/issues/9604>`_, `pr#5717 <http://github.com/ceph/ceph/pull/5717>`_, Yehuda Sadeh)
468 * rgw: don't preserve acls when copying object (`issue#11563 <http://tracker.ceph.com/issues/11563>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
469 * rgw: don't preserve acls when copying object (`issue#12370 <http://tracker.ceph.com/issues/12370>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
470 * rgw: don't preserve acls when copying object (`issue#13015 <http://tracker.ceph.com/issues/13015>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
471 * rgw: Ensure that swift keys don't include backslashes (`issue#7647 <http://tracker.ceph.com/issues/7647>`_, `pr#5716 <http://github.com/ceph/ceph/pull/5716>`_, Yehuda Sadeh)
472 * rgw: GWWatcher::handle_error -> common/Mutex.cc: 95: FAILED assert(r == 0) (`issue#12208 <http://tracker.ceph.com/issues/12208>`_, `pr#6164 <http://github.com/ceph/ceph/pull/6164>`_, Yehuda Sadeh)
473 * rgw: HTTP return code is not being logged by CivetWeb (`issue#12432 <http://tracker.ceph.com/issues/12432>`_, `pr#5498 <http://github.com/ceph/ceph/pull/5498>`_, Yehuda Sadeh)
474 * rgw: init_rados failed leads to repeated delete (`issue#12978 <http://tracker.ceph.com/issues/12978>`_, `pr#6165 <http://github.com/ceph/ceph/pull/6165>`_, Xiaowei Chen)
475 * rgw: init some manifest fields when handling explicit objs (`issue#11455 <http://tracker.ceph.com/issues/11455>`_, `pr#5732 <http://github.com/ceph/ceph/pull/5732>`_, Yehuda Sadeh)
476 * rgw: Keystone Fernet tokens break auth (`issue#12761 <http://tracker.ceph.com/issues/12761>`_, `pr#6162 <http://github.com/ceph/ceph/pull/6162>`_, Abhishek Lekshmanan)
477 * rgw: region data still exist in region-map after region-map update (`issue#12964 <http://tracker.ceph.com/issues/12964>`_, `pr#6163 <http://github.com/ceph/ceph/pull/6163>`_, dwj192)
478 * rgw: remove trailing :port from host for purposes of subdomain matching (`issue#12353 <http://tracker.ceph.com/issues/12353>`_, `pr#6042 <http://github.com/ceph/ceph/pull/6042>`_, Yehuda Sadeh)
479 * rgw: rest-bench common/WorkQueue.cc: 54: FAILED assert(_threads.empty()) (`issue#3896 <http://tracker.ceph.com/issues/3896>`_, `pr#5383 <http://github.com/ceph/ceph/pull/5383>`_, huangjun)
480 * rgw: returns requested bucket name raw in Bucket response header (`issue#12537 <http://tracker.ceph.com/issues/12537>`_, `pr#5715 <http://github.com/ceph/ceph/pull/5715>`_, Yehuda Sadeh)
481 * rgw: segmentation fault when rgw_gc_max_objs > HASH_PRIME (`issue#12630 <http://tracker.ceph.com/issues/12630>`_, `pr#5719 <http://github.com/ceph/ceph/pull/5719>`_, Ruifeng Yang)
482 * rgw: segments are read during HEAD on Swift DLO (`issue#12780 <http://tracker.ceph.com/issues/12780>`_, `pr#6160 <http://github.com/ceph/ceph/pull/6160>`_, Yehuda Sadeh)
483 * rgw: setting max number of buckets for user via ceph.conf option (`issue#12714 <http://tracker.ceph.com/issues/12714>`_, `pr#6166 <http://github.com/ceph/ceph/pull/6166>`_, Vikhyat Umrao)
484 * rgw: Swift API: X-Trans-Id header is wrongly formatted (`issue#12108 <http://tracker.ceph.com/issues/12108>`_, `pr#5721 <http://github.com/ceph/ceph/pull/5721>`_, Radoslaw Zarzynski)
485 * rgw: testGetContentType and testHead failed (`issue#11091 <http://tracker.ceph.com/issues/11091>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
486 * rgw: testGetContentType and testHead failed (`issue#11438 <http://tracker.ceph.com/issues/11438>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
487 * rgw: testGetContentType and testHead failed (`issue#12157 <http://tracker.ceph.com/issues/12157>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
488 * rgw: testGetContentType and testHead failed (`issue#12158 <http://tracker.ceph.com/issues/12158>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
489 * rgw: testGetContentType and testHead failed (`issue#12363 <http://tracker.ceph.com/issues/12363>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
490 * rgw: the arguments 'domain' should not be assigned when return false (`issue#12629 <http://tracker.ceph.com/issues/12629>`_, `pr#5720 <http://github.com/ceph/ceph/pull/5720>`_, Ruifeng Yang)
491 * tests: qa/workunits/cephtool/test.sh: don't assume crash_replay_interval=45 (`issue#13406 <http://tracker.ceph.com/issues/13406>`_, `pr#6172 <http://github.com/ceph/ceph/pull/6172>`_, Sage Weil)
492 * tests: TEST_crush_rule_create_erasure consistently fails on i386 builder (`issue#12419 <http://tracker.ceph.com/issues/12419>`_, `pr#6201 <http://github.com/ceph/ceph/pull/6201>`_, Loic Dachary)
493 * tools: ceph-disk zap should ensure block device (`issue#11272 <http://tracker.ceph.com/issues/11272>`_, `pr#5755 <http://github.com/ceph/ceph/pull/5755>`_, Loic Dachary)
494
495 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.4.txt>`.
496
497
498 v0.94.3 Hammer
499 ==============
500
501 This Hammer point release fixes a critical (though rare) data
502 corruption bug that could be triggered when logs are rotated via
503 SIGHUP. It also fixes a range of other important bugs in the OSD,
504 monitor, RGW, RGW, and CephFS.
505
506 All v0.94.x Hammer users are strongly encouraged to upgrade.
507
508 Upgrading
509 ---------
510
511 * The ``pg ls-by-{pool,primary,osd}`` commands and ``pg ls`` now take
512 the argument ``recovering`` instead of ``recovery`` in order to
513 include the recovering pgs in the listed pgs.
514
515 Notable Changes
516 ---------------
517 * librbd: aio calls may block (`issue#11770 <http://tracker.ceph.com/issues/11770>`_, `pr#4875 <http://github.com/ceph/ceph/pull/4875>`_, Jason Dillaman)
518 * osd: make the all osd/filestore thread pool suicide timeouts separately configurable (`issue#11701 <http://tracker.ceph.com/issues/11701>`_, `pr#5159 <http://github.com/ceph/ceph/pull/5159>`_, Samuel Just)
519 * mon: ceph fails to compile with boost 1.58 (`issue#11982 <http://tracker.ceph.com/issues/11982>`_, `pr#5122 <http://github.com/ceph/ceph/pull/5122>`_, Kefu Chai)
520 * tests: TEST_crush_reject_empty must not run a mon (`issue#12285,11975 <http://tracker.ceph.com/issues/12285,11975>`_, `pr#5208 <http://github.com/ceph/ceph/pull/5208>`_, Kefu Chai)
521 * osd: FAILED assert(!old_value.deleted()) in upgrade:giant-x-hammer-distro-basic-multi run (`issue#11983 <http://tracker.ceph.com/issues/11983>`_, `pr#5121 <http://github.com/ceph/ceph/pull/5121>`_, Samuel Just)
522 * build/ops: linking ceph to tcmalloc causes segfault on SUSE SLE11-SP3 (`issue#12368 <http://tracker.ceph.com/issues/12368>`_, `pr#5265 <http://github.com/ceph/ceph/pull/5265>`_, Thorsten Behrens)
523 * common: utf8 and old gcc breakage on RHEL6.5 (`issue#7387 <http://tracker.ceph.com/issues/7387>`_, `pr#4687 <http://github.com/ceph/ceph/pull/4687>`_, Kefu Chai)
524 * crush: take crashes due to invalid arg (`issue#11740 <http://tracker.ceph.com/issues/11740>`_, `pr#4891 <http://github.com/ceph/ceph/pull/4891>`_, Sage Weil)
525 * rgw: need conversion tool to handle fixes following #11974 (`issue#12502 <http://tracker.ceph.com/issues/12502>`_, `pr#5384 <http://github.com/ceph/ceph/pull/5384>`_, Yehuda Sadeh)
526 * rgw: Swift API: support for 202 Accepted response code on container creation (`issue#12299 <http://tracker.ceph.com/issues/12299>`_, `pr#5214 <http://github.com/ceph/ceph/pull/5214>`_, Radoslaw Zarzynski)
527 * common: Log::reopen_log_file: take m_flush_mutex (`issue#12520 <http://tracker.ceph.com/issues/12520>`_, `pr#5405 <http://github.com/ceph/ceph/pull/5405>`_, Samuel Just)
528 * rgw: Properly respond to the Connection header with Civetweb (`issue#12398 <http://tracker.ceph.com/issues/12398>`_, `pr#5284 <http://github.com/ceph/ceph/pull/5284>`_, Wido den Hollander)
529 * rgw: multipart list part response returns incorrect field (`issue#12399 <http://tracker.ceph.com/issues/12399>`_, `pr#5285 <http://github.com/ceph/ceph/pull/5285>`_, Henry Chang)
530 * build/ops: ceph.spec.in: 95-ceph-osd.rules, mount.ceph, and mount.fuse.ceph not installed properly on SUSE (`issue#12397 <http://tracker.ceph.com/issues/12397>`_, `pr#5283 <http://github.com/ceph/ceph/pull/5283>`_, Nathan Cutler)
531 * rgw: radosgw-admin dumps user info twice (`issue#12400 <http://tracker.ceph.com/issues/12400>`_, `pr#5286 <http://github.com/ceph/ceph/pull/5286>`_, guce)
532 * doc: fix doc build (`issue#12180 <http://tracker.ceph.com/issues/12180>`_, `pr#5095 <http://github.com/ceph/ceph/pull/5095>`_, Kefu Chai)
533 * tests: backport 11493 fixes, and test, preventing ec cache pools (`issue#12314 <http://tracker.ceph.com/issues/12314>`_, `pr#4961 <http://github.com/ceph/ceph/pull/4961>`_, Samuel Just)
534 * rgw: does not send Date HTTP header when civetweb frontend is used (`issue#11872 <http://tracker.ceph.com/issues/11872>`_, `pr#5228 <http://github.com/ceph/ceph/pull/5228>`_, Radoslaw Zarzynski)
535 * mon: pg ls is broken (`issue#11910 <http://tracker.ceph.com/issues/11910>`_, `pr#5160 <http://github.com/ceph/ceph/pull/5160>`_, Kefu Chai)
536 * librbd: A client opening an image mid-resize can result in the object map being invalidated (`issue#12237 <http://tracker.ceph.com/issues/12237>`_, `pr#5279 <http://github.com/ceph/ceph/pull/5279>`_, Jason Dillaman)
537 * doc: missing man pages for ceph-create-keys, ceph-disk-* (`issue#11862 <http://tracker.ceph.com/issues/11862>`_, `pr#4846 <http://github.com/ceph/ceph/pull/4846>`_, Nathan Cutler)
538 * tools: ceph-post-file fails on rhel7 (`issue#11876 <http://tracker.ceph.com/issues/11876>`_, `pr#5038 <http://github.com/ceph/ceph/pull/5038>`_, Sage Weil)
539 * build/ops: rcceph script is buggy (`issue#12090 <http://tracker.ceph.com/issues/12090>`_, `pr#5028 <http://github.com/ceph/ceph/pull/5028>`_, Owen Synge)
540 * rgw: Bucket header is enclosed by quotes (`issue#11874 <http://tracker.ceph.com/issues/11874>`_, `pr#4862 <http://github.com/ceph/ceph/pull/4862>`_, Wido den Hollander)
541 * build/ops: packaging: add SuSEfirewall2 service files (`issue#12092 <http://tracker.ceph.com/issues/12092>`_, `pr#5030 <http://github.com/ceph/ceph/pull/5030>`_, Tim Serong)
542 * rgw: Keystone PKI token expiration is not enforced (`issue#11722 <http://tracker.ceph.com/issues/11722>`_, `pr#4884 <http://github.com/ceph/ceph/pull/4884>`_, Anton Aksola)
543 * build/ops: debian/control: ceph-common (>> 0.94.2) must be >= 0.94.2-2 (`issue#12529,11998 <http://tracker.ceph.com/issues/12529,11998>`_, `pr#5417 <http://github.com/ceph/ceph/pull/5417>`_, Loic Dachary)
544 * mon: Clock skew causes missing summary and confuses Calamari (`issue#11879 <http://tracker.ceph.com/issues/11879>`_, `pr#4868 <http://github.com/ceph/ceph/pull/4868>`_, Thorsten Behrens)
545 * rgw: rados objects wronly deleted (`issue#12099 <http://tracker.ceph.com/issues/12099>`_, `pr#5117 <http://github.com/ceph/ceph/pull/5117>`_, wuxingyi)
546 * tests: kernel_untar_build fails on EL7 (`issue#12098 <http://tracker.ceph.com/issues/12098>`_, `pr#5119 <http://github.com/ceph/ceph/pull/5119>`_, Greg Farnum)
547 * fs: Fh ref count will leak if readahead does not need to do read from osd (`issue#12319 <http://tracker.ceph.com/issues/12319>`_, `pr#5427 <http://github.com/ceph/ceph/pull/5427>`_, Zhi Zhang)
548 * mon: OSDMonitor: allow addition of cache pool with non-empty snaps with co… (`issue#12595 <http://tracker.ceph.com/issues/12595>`_, `pr#5252 <http://github.com/ceph/ceph/pull/5252>`_, Samuel Just)
549 * mon: MDSMonitor: handle MDSBeacon messages properly (`issue#11979 <http://tracker.ceph.com/issues/11979>`_, `pr#5123 <http://github.com/ceph/ceph/pull/5123>`_, Kefu Chai)
550 * tools: ceph-disk: get_partition_type fails on /dev/cciss... (`issue#11760 <http://tracker.ceph.com/issues/11760>`_, `pr#4892 <http://github.com/ceph/ceph/pull/4892>`_, islepnev)
551 * build/ops: max files open limit for OSD daemon is too low (`issue#12087 <http://tracker.ceph.com/issues/12087>`_, `pr#5026 <http://github.com/ceph/ceph/pull/5026>`_, Owen Synge)
552 * mon: add an "osd crush tree" command (`issue#11833 <http://tracker.ceph.com/issues/11833>`_, `pr#5248 <http://github.com/ceph/ceph/pull/5248>`_, Kefu Chai)
553 * mon: mon crashes when "ceph osd tree 85 --format json" (`issue#11975 <http://tracker.ceph.com/issues/11975>`_, `pr#4936 <http://github.com/ceph/ceph/pull/4936>`_, Kefu Chai)
554 * build/ops: ceph / ceph-dbg steal ceph-objecstore-tool from ceph-test / ceph-test-dbg (`issue#11806 <http://tracker.ceph.com/issues/11806>`_, `pr#5069 <http://github.com/ceph/ceph/pull/5069>`_, Loic Dachary)
555 * rgw: DragonDisk fails to create directories via S3: MissingContentLength (`issue#12042 <http://tracker.ceph.com/issues/12042>`_, `pr#5118 <http://github.com/ceph/ceph/pull/5118>`_, Yehuda Sadeh)
556 * build/ops: /usr/bin/ceph from ceph-common is broken without installing ceph (`issue#11998 <http://tracker.ceph.com/issues/11998>`_, `pr#5206 <http://github.com/ceph/ceph/pull/5206>`_, Ken Dreyer)
557 * build/ops: systemd: Increase max files open limit for OSD daemon (`issue#11964 <http://tracker.ceph.com/issues/11964>`_, `pr#5040 <http://github.com/ceph/ceph/pull/5040>`_, Owen Synge)
558 * build/ops: rgw/logrotate.conf calls service with wrong init script name (`issue#12044 <http://tracker.ceph.com/issues/12044>`_, `pr#5055 <http://github.com/ceph/ceph/pull/5055>`_, wuxingyi)
559 * common: OPT_INT option interprets 3221225472 as -1073741824, and crashes in Throttle::Throttle() (`issue#11738 <http://tracker.ceph.com/issues/11738>`_, `pr#4889 <http://github.com/ceph/ceph/pull/4889>`_, Kefu Chai)
560 * doc: doc/release-notes: v0.94.2 (`issue#11492 <http://tracker.ceph.com/issues/11492>`_, `pr#4934 <http://github.com/ceph/ceph/pull/4934>`_, Sage Weil)
561 * common: admin_socket: close socket descriptor in destructor (`issue#11706 <http://tracker.ceph.com/issues/11706>`_, `pr#4657 <http://github.com/ceph/ceph/pull/4657>`_, Jon Bernard)
562 * rgw: Object copy bug (`issue#11755 <http://tracker.ceph.com/issues/11755>`_, `pr#4885 <http://github.com/ceph/ceph/pull/4885>`_, Javier M. Mellid)
563 * rgw: empty json response when getting user quota (`issue#12245 <http://tracker.ceph.com/issues/12245>`_, `pr#5237 <http://github.com/ceph/ceph/pull/5237>`_, wuxingyi)
564 * fs: cephfs Dumper tries to load whole journal into memory at once (`issue#11999 <http://tracker.ceph.com/issues/11999>`_, `pr#5120 <http://github.com/ceph/ceph/pull/5120>`_, John Spray)
565 * rgw: Fix tool for #11442 does not correctly fix objects created via multipart uploads (`issue#12242 <http://tracker.ceph.com/issues/12242>`_, `pr#5229 <http://github.com/ceph/ceph/pull/5229>`_, Yehuda Sadeh)
566 * rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (`issue#12243 <http://tracker.ceph.com/issues/12243>`_, `pr#5231 <http://github.com/ceph/ceph/pull/5231>`_, Yehuda Sadeh)
567 * osd: stuck incomplete (`issue#12362 <http://tracker.ceph.com/issues/12362>`_, `pr#5269 <http://github.com/ceph/ceph/pull/5269>`_, Samuel Just)
568 * osd: start_flush: filter out removed snaps before determining snapc's (`issue#11911 <http://tracker.ceph.com/issues/11911>`_, `pr#4899 <http://github.com/ceph/ceph/pull/4899>`_, Samuel Just)
569 * librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1) (`issue#12239 <http://tracker.ceph.com/issues/12239>`_, `pr#5243 <http://github.com/ceph/ceph/pull/5243>`_, Jason Dillaman)
570 * librbd: new QA client upgrade tests (`issue#12109 <http://tracker.ceph.com/issues/12109>`_, `pr#5046 <http://github.com/ceph/ceph/pull/5046>`_, Jason Dillaman)
571 * librbd: [ FAILED ] TestLibRBD.ExclusiveLockTransition (`issue#12238 <http://tracker.ceph.com/issues/12238>`_, `pr#5241 <http://github.com/ceph/ceph/pull/5241>`_, Jason Dillaman)
572 * rgw: Swift API: XML document generated in response for GET on account does not contain account name (`issue#12323 <http://tracker.ceph.com/issues/12323>`_, `pr#5227 <http://github.com/ceph/ceph/pull/5227>`_, Radoslaw Zarzynski)
573 * rgw: keystone does not support chunked input (`issue#12322 <http://tracker.ceph.com/issues/12322>`_, `pr#5226 <http://github.com/ceph/ceph/pull/5226>`_, Hervé Rousseau)
574 * mds: MDS is crashed (mds/CDir.cc: 1391: FAILED assert(!is_complete())) (`issue#11737 <http://tracker.ceph.com/issues/11737>`_, `pr#4886 <http://github.com/ceph/ceph/pull/4886>`_, Yan, Zheng)
575 * cli: ceph: cli interactive mode does not understand quotes (`issue#11736 <http://tracker.ceph.com/issues/11736>`_, `pr#4776 <http://github.com/ceph/ceph/pull/4776>`_, Kefu Chai)
576 * librbd: add valgrind memory checks for unit tests (`issue#12384 <http://tracker.ceph.com/issues/12384>`_, `pr#5280 <http://github.com/ceph/ceph/pull/5280>`_, Zhiqiang Wang)
577 * build/ops: admin/build-doc: script fails silently under certain circumstances (`issue#11902 <http://tracker.ceph.com/issues/11902>`_, `pr#4877 <http://github.com/ceph/ceph/pull/4877>`_, John Spray)
578 * osd: Fixes for rados ops with snaps (`issue#11908 <http://tracker.ceph.com/issues/11908>`_, `pr#4902 <http://github.com/ceph/ceph/pull/4902>`_, Samuel Just)
579 * build/ops: ceph.spec.in: ceph-common subpackage def needs tweaking for SUSE/openSUSE (`issue#12308 <http://tracker.ceph.com/issues/12308>`_, `pr#4883 <http://github.com/ceph/ceph/pull/4883>`_, Nathan Cutler)
580 * fs: client: reference counting 'struct Fh' (`issue#12088 <http://tracker.ceph.com/issues/12088>`_, `pr#5222 <http://github.com/ceph/ceph/pull/5222>`_, Yan, Zheng)
581 * build/ops: ceph.spec: update OpenSUSE BuildRequires (`issue#11611 <http://tracker.ceph.com/issues/11611>`_, `pr#4667 <http://github.com/ceph/ceph/pull/4667>`_, Loic Dachary)
582
583 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.3.txt>`.
584
585
586
587 v0.94.2 Hammer
588 ==============
589
590 This Hammer point release fixes a few critical bugs in RGW that can
591 prevent objects starting with underscore from behaving properly and
592 that prevent garbage collection of deleted objects when using the
593 Civetweb standalone mode.
594
595 All v0.94.x Hammer users are strongly encouraged to upgrade, and to
596 make note of the repair procedure below if RGW is in use.
597
598 Upgrading from previous Hammer release
599 --------------------------------------
600
601 Bug #11442 introduced a change that made rgw objects that start with underscore
602 incompatible with previous versions. The fix to that bug reverts to the
603 previous behavior. In order to be able to access objects that start with an
604 underscore and were created in prior Hammer releases, following the upgrade it
605 is required to run (for each affected bucket)::
606
607 $ radosgw-admin bucket check --check-head-obj-locator \
608 --bucket=<bucket> [--fix]
609
610 Notable changes
611 ---------------
612
613 * build: compilation error: No high-precision counter available (armhf, powerpc..) (#11432, James Page)
614 * ceph-dencoder links to libtcmalloc, and shouldn't (#10691, Boris Ranto)
615 * ceph-disk: disk zap sgdisk invocation (#11143, Owen Synge)
616 * ceph-disk: use a new disk as journal disk,ceph-disk prepare fail (#10983, Loic Dachary)
617 * ceph-objectstore-tool should be in the ceph server package (#11376, Ken Dreyer)
618 * librados: can get stuck in redirect loop if osdmap epoch == last_force_op_resend (#11026, Jianpeng Ma)
619 * librbd: A retransmit of proxied flatten request can result in -EINVAL (Jason Dillaman)
620 * librbd: ImageWatcher should cancel in-flight ops on watch error (#11363, Jason Dillaman)
621 * librbd: Objectcacher setting max object counts too low (#7385, Jason Dillaman)
622 * librbd: Periodic failure of TestLibRBD.DiffIterateStress (#11369, Jason Dillaman)
623 * librbd: Queued AIO reference counters not properly updated (#11478, Jason Dillaman)
624 * librbd: deadlock in image refresh (#5488, Jason Dillaman)
625 * librbd: notification race condition on snap_create (#11342, Jason Dillaman)
626 * mds: Hammer uclient checking (#11510, John Spray)
627 * mds: remove caps from revoking list when caps are voluntarily released (#11482, Yan, Zheng)
628 * messenger: double clear of pipe in reaper (#11381, Haomai Wang)
629 * mon: Total size of OSDs is a maginitude less than it is supposed to be. (#11534, Zhe Zhang)
630 * osd: don't check order in finish_proxy_read (#11211, Zhiqiang Wang)
631 * osd: handle old semi-deleted pgs after upgrade (#11429, Samuel Just)
632 * osd: object creation by write cannot use an offset on an erasure coded pool (#11507, Jianpeng Ma)
633 * rgw: Improve rgw HEAD request by avoiding read the body of the first chunk (#11001, Guang Yang)
634 * rgw: civetweb is hitting a limit (number of threads 1024) (#10243, Yehuda Sadeh)
635 * rgw: civetweb should use unique request id (#10295, Orit Wasserman)
636 * rgw: critical fixes for hammer (#11447, #11442, Yehuda Sadeh)
637 * rgw: fix swift COPY headers (#10662, #10663, #11087, #10645, Radoslaw Zarzynski)
638 * rgw: improve performance for large object (multiple chunks) GET (#11322, Guang Yang)
639 * rgw: init-radosgw: run RGW as root (#11453, Ken Dreyer)
640 * rgw: keystone token cache does not work correctly (#11125, Yehuda Sadeh)
641 * rgw: make quota/gc thread configurable for starting (#11047, Guang Yang)
642 * rgw: make swift responses of RGW return last-modified, content-length, x-trans-id headers.(#10650, Radoslaw Zarzynski)
643 * rgw: merge manifests correctly when there's prefix override (#11622, Yehuda Sadeh)
644 * rgw: quota not respected in POST object (#11323, Sergey Arkhipov)
645 * rgw: restore buffer of multipart upload after EEXIST (#11604, Yehuda Sadeh)
646 * rgw: shouldn't need to disable rgw_socket_path if frontend is configured (#11160, Yehuda Sadeh)
647 * rgw: swift: Response header of GET request for container does not contain X-Container-Object-Count, X-Container-Bytes-Used and x-trans-id headers (#10666, Dmytro Iurchenko)
648 * rgw: swift: Response header of POST request for object does not contain content-length and x-trans-id headers (#10661, Radoslaw Zarzynski)
649 * rgw: swift: response for GET/HEAD on container does not contain the X-Timestamp header (#10938, Radoslaw Zarzynski)
650 * rgw: swift: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used (#11036, #10971, Radoslaw Zarzynski)
651 * rgw: swift: wrong handling of empty metadata on Swift container (#11088, Radoslaw Zarzynski)
652 * tests: TestFlatIndex.cc races with TestLFNIndex.cc (#11217, Xinze Chi)
653 * tests: ceph-helpers kill_daemons fails when kill fails (#11398, Loic Dachary)
654
655 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.2.txt>`.
656
657
658 v0.94.1 Hammer
659 ==============
660
661 This bug fix release fixes a few critical issues with CRUSH. The most
662 important addresses a bug in feature bit enforcement that may prevent
663 pre-hammer clients from communicating with the cluster during an
664 upgrade. This only manifests in some cases (for example, when the
665 'rack' type is in use in the CRUSH map, and possibly other cases), but for
666 safety we strongly recommend that all users use 0.94.1 instead of 0.94 when
667 upgrading.
668
669 There is also a fix in the new straw2 buckets when OSD weights are 0.
670
671 We recommend that all v0.94 users upgrade.
672
673 Notable changes
674 ---------------
675
676 * crush: fix divide-by-0 in straw2 (#11357 Sage Weil)
677 * crush: fix has_v4_buckets (#11364 Sage Weil)
678 * osd: fix negative degraded objects during backfilling (#7737 Guang Yang)
679
680 For more detailed information, see :download:`the complete changelog <../changelog/v0.94.1.txt>`.
681
682
683 v0.94 Hammer
684 ============
685
686 This major release is expected to form the basis of the next long-term
687 stable series. It is intended to supersede v0.80.x Firefly.
688
689 Highlights since Giant include:
690
691 * *RADOS Performance*: a range of improvements have been made in the
692 OSD and client-side librados code that improve the throughput on
693 flash backends and improve parallelism and scaling on fast machines.
694 * *Simplified RGW deployment*: the ceph-deploy tool now has a new
695 'ceph-deploy rgw create HOST' command that quickly deploys a
696 instance of the S3/Swift gateway using the embedded Civetweb server.
697 This is vastly simpler than the previous Apache-based deployment.
698 There are a few rough edges (e.g., around SSL support) but we
699 encourage users to try `the new method`_.
700 * *RGW object versioning*: RGW now supports the S3 object versioning
701 API, which preserves old version of objects instead of overwriting
702 them.
703 * *RGW bucket sharding*: RGW can now shard the bucket index for large
704 buckets across, improving performance for very large buckets.
705 * *RBD object maps*: RBD now has an object map function that tracks
706 which parts of the image are allocating, improving performance for
707 clones and for commands like export and delete.
708 * *RBD mandatory locking*: RBD has a new mandatory locking framework
709 (still disabled by default) that adds additional safeguards to
710 prevent multiple clients from using the same image at the same time.
711 * *RBD copy-on-read*: RBD now supports copy-on-read for image clones,
712 improving performance for some workloads.
713 * *CephFS snapshot improvements*: Many many bugs have been fixed with
714 CephFS snapshots. Although they are still disabled by default,
715 stability has improved significantly.
716 * *CephFS Recovery tools*: We have built some journal recovery and
717 diagnostic tools. Stability and performance of single-MDS systems is
718 vastly improved in Giant, and more improvements have been made now
719 in Hammer. Although we still recommend caution when storing
720 important data in CephFS, we do encourage testing for non-critical
721 workloads so that we can better gauge the feature, usability,
722 performance, and stability gaps.
723 * *CRUSH improvements*: We have added a new straw2 bucket algorithm
724 that reduces the amount of data migration required when changes are
725 made to the cluster.
726 * *Shingled erasure codes (SHEC)*: The OSDs now have experimental
727 support for shingled erasure codes, which allow a small amount of
728 additional storage to be traded for improved recovery performance.
729 * *RADOS cache tiering*: A series of changes have been made in the
730 cache tiering code that improve performance and reduce latency.
731 * *RDMA support*: There is now experimental support the RDMA via the
732 Accelio (libxio) library.
733 * *New administrator commands*: The 'ceph osd df' command shows
734 pertinent details on OSD disk utilizations. The 'ceph pg ls ...'
735 command makes it much simpler to query PG states while diagnosing
736 cluster issues.
737
738 .. _the new method: ../start/quick-ceph-deploy/#add-an-rgw-instance
739
740 Other highlights since Firefly include:
741
742 * *CephFS*: we have fixed a raft of bugs in CephFS and built some
743 basic journal recovery and diagnostic tools. Stability and
744 performance of single-MDS systems is vastly improved in Giant.
745 Although we do not yet recommend CephFS for production deployments,
746 we do encourage testing for non-critical workloads so that we can
747 better gauge the feature, usability, performance, and stability
748 gaps.
749 * *Local Recovery Codes*: the OSDs now support an erasure-coding scheme
750 that stores some additional data blocks to reduce the IO required to
751 recover from single OSD failures.
752 * *Degraded vs misplaced*: the Ceph health reports from 'ceph -s' and
753 related commands now make a distinction between data that is
754 degraded (there are fewer than the desired number of copies) and
755 data that is misplaced (stored in the wrong location in the
756 cluster). The distinction is important because the latter does not
757 compromise data safety.
758 * *Tiering improvements*: we have made several improvements to the
759 cache tiering implementation that improve performance. Most
760 notably, objects are not promoted into the cache tier by a single
761 read; they must be found to be sufficiently hot before that happens.
762 * *Monitor performance*: the monitors now perform writes to the local
763 data store asynchronously, improving overall responsiveness.
764 * *Recovery tools*: the ceph-objectstore-tool is greatly expanded to
765 allow manipulation of an individual OSDs data store for debugging
766 and repair purposes. This is most heavily used by our QA
767 infrastructure to exercise recovery code.
768
769 I would like to take this opportunity to call out the amazing growth
770 in contributors to Ceph beyond the core development team from Inktank.
771 Hammer features major new features and improvements from Intel, Fujitsu,
772 UnitedStack, Yahoo, UbuntuKylin, CohortFS, Mellanox, CERN, Deutsche
773 Telekom, Mirantis, and SanDisk.
774
775 Dedication
776 ----------
777
778 This release is dedicated in memoriam to Sandon Van Ness, aka
779 Houkouonchi, who unexpectedly passed away a few weeks ago. Sandon was
780 responsible for maintaining the large and complex Sepia lab that
781 houses the Ceph project's build and test infrastructure. His efforts
782 have made an important impact on our ability to reliably test Ceph
783 with a relatively small group of people. He was a valued member of
784 the team and we will miss him. H is also for Houkouonchi.
785
786 Upgrading
787 ---------
788
789 * If your existing cluster is running a version older than v0.80.x
790 Firefly, please first upgrade to the latest Firefly release before
791 moving on to Giant. We have not tested upgrades directly from
792 Emperor, Dumpling, or older releases.
793
794 We *have* tested:
795
796 * Firefly to Hammer
797 * Giant to Hammer
798 * Dumpling to Firefly to Hammer
799
800 * Please upgrade daemons in the following order:
801
802 #. Monitors
803 #. OSDs
804 #. MDSs and/or radosgw
805
806 Note that the relative ordering of OSDs and monitors should not matter, but
807 we primarily tested upgrading monitors first.
808
809 * The ceph-osd daemons will perform a disk-format upgrade improve the
810 PG metadata layout and to repair a minor bug in the on-disk format.
811 It may take a minute or two for this to complete, depending on how
812 many objects are stored on the node; do not be alarmed if they do
813 not marked "up" by the cluster immediately after starting.
814
815 * If upgrading from v0.93, set
816 osd enable degraded writes = false
817
818 on all osds prior to upgrading. The degraded writes feature has
819 been reverted due to 11155.
820
821 * The LTTNG tracing in librbd and librados is disabled in the release packages
822 until we find a way to avoid violating distro security policies when linking
823 libust.
824
825 Upgrading from v0.87.x Giant
826 ----------------------------
827
828 * librbd and librados include lttng tracepoints on distros with
829 liblttng 2.4 or later (only Ubuntu Trusty for the ceph.com
830 packages). When running a daemon that uses these libraries, i.e. an
831 application that calls fork(2) or clone(2) without exec(3), you must
832 set LD_PRELOAD=liblttng-ust-fork.so.0 to prevent a crash in the
833 lttng atexit handler when the process exits. The only ceph tool that
834 requires this is rbd-fuse.
835
836 * If rgw_socket_path is defined and rgw_frontends defines a
837 socket_port and socket_host, we now allow the rgw_frontends settings
838 to take precedence. This change should only affect users who have
839 made non-standard changes to their radosgw configuration.
840
841 * If you are upgrading specifically from v0.92, you must stop all OSD
842 daemons and flush their journals (``ceph-osd -i NNN
843 --flush-journal``) before upgrading. There was a transaction
844 encoding bug in v0.92 that broke compatibility. Upgrading from v0.93,
845 v0.91, or anything earlier is safe.
846
847 * The experimental 'keyvaluestore-dev' OSD backend has been renamed
848 'keyvaluestore' (for simplicity) and marked as experimental. To
849 enable this untested feature and acknowledge that you understand
850 that it is untested and may destroy data, you need to add the
851 following to your ceph.conf::
852
853 enable experimental unrecoverable data corrupting features = keyvaluestore
854
855 * The following librados C API function calls take a 'flags' argument whose value
856 is now correctly interpreted:
857
858 rados_write_op_operate()
859 rados_aio_write_op_operate()
860 rados_read_op_operate()
861 rados_aio_read_op_operate()
862
863 The flags were not correctly being translated from the librados constants to the
864 internal values. Now they are. Any code that is passing flags to these methods
865 should be audited to ensure that they are using the correct LIBRADOS_OP_FLAG_*
866 constants.
867
868 * The 'rados' CLI 'copy' and 'cppool' commands now use the copy-from operation,
869 which means the latest CLI cannot run these commands against pre-firefly OSDs.
870
871 * The librados watch/notify API now includes a watch_flush() operation to flush
872 the async queue of notify operations. This should be called by any watch/notify
873 user prior to rados_shutdown().
874
875 * The 'category' field for objects has been removed. This was originally added
876 to track PG stat summations over different categories of objects for use by
877 radosgw. It is no longer has any known users and is prone to abuse because it
878 can lead to a pg_stat_t structure that is unbounded. The librados API calls
879 that accept this field now ignore it, and the OSD no longer tracks the
880 per-category summations.
881
882 * The output for 'rados df' has changed. The 'category' level has been
883 eliminated, so there is now a single stat object per pool. The structure of
884 the JSON output is different, and the plaintext output has one less column.
885
886 * The 'rados create <objectname> [category]' optional category argument is no
887 longer supported or recognized.
888
889 * rados.py's Rados class no longer has a __del__ method; it was causing
890 problems on interpreter shutdown and use of threads. If your code has
891 Rados objects with limited lifetimes and you're concerned about locked
892 resources, call Rados.shutdown() explicitly.
893
894 * There is a new version of the librados watch/notify API with vastly
895 improved semantics. Any applications using this interface are
896 encouraged to migrate to the new API. The old API calls are marked
897 as deprecated and will eventually be removed.
898
899 * The librados rados_unwatch() call used to be safe to call on an
900 invalid handle. The new version has undefined behavior when passed
901 a bogus value (for example, when rados_watch() returns an error and
902 handle is not defined).
903
904 * The structure of the formatted 'pg stat' command is changed for the
905 portion that counts states by name to avoid using the '+' character
906 (which appears in state names) as part of the XML token (it is not
907 legal).
908
909 * Previously, the formatted output of 'ceph pg stat -f ...' was a full
910 pg dump that included all metadata about all PGs in the system. It
911 is now a concise summary of high-level PG stats, just like the
912 unformatted 'ceph pg stat' command.
913
914 * All JSON dumps of floating point values were incorrecting surrounding the
915 value with quotes. These quotes have been removed. Any consumer of structured
916 JSON output that was consuming the floating point values was previously having
917 to interpret the quoted string and will most likely need to be fixed to take
918 the unquoted number.
919
920 * New ability to list all objects from all namespaces that can fail or
921 return incomplete results when not all OSDs have been upgraded.
922 Features rados --all ls, rados cppool, rados export, rados
923 cache-flush-evict-all and rados cache-try-flush-evict-all can also
924 fail or return incomplete results.
925
926 * Due to a change in the Linux kernel version 3.18 and the limits of the FUSE
927 interface, ceph-fuse needs be mounted as root on at least some systems. See
928 issues #9997, #10277, and #10542 for details.
929
930 Upgrading from v0.80x Firefly (additional notes)
931 ------------------------------------------------
932
933 * The client-side caching for librbd is now enabled by default (rbd
934 cache = true). A safety option (rbd cache writethrough until flush
935 = true) is also enabled so that writeback caching is not used until
936 the library observes a 'flush' command, indicating that the librbd
937 users is passing that operation through from the guest VM. This
938 avoids potential data loss when used with older versions of qemu
939 that do not support flush.
940
941 leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
942 leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
943 leveldb_block_size = 64*1024 = 65536 // 64KB
944 leveldb_compression = false
945 leveldb_log = ""
946
947 OSDs will still maintain the following osd-specific defaults:
948
949 leveldb_log = ""
950
951 * The 'rados getxattr ...' command used to add a gratuitous newline to the attr
952 value; it now does not.
953
954 * The ``*_kb perf`` counters on the monitor have been removed. These are
955 replaced with a new set of ``*_bytes`` counters (e.g., ``cluster_osd_kb`` is
956 replaced by ``cluster_osd_bytes``).
957
958 * The ``rd_kb`` and ``wr_kb`` fields in the JSON dumps for pool stats (accessed
959 via the ``ceph df detail -f json-pretty`` and related commands) have been
960 replaced with corresponding ``*_bytes`` fields. Similarly, the
961 ``total_space``, ``total_used``, and ``total_avail`` fields are replaced with
962 ``total_bytes``, ``total_used_bytes``, and ``total_avail_bytes`` fields.
963
964 * The ``rados df --format=json`` output ``read_bytes`` and ``write_bytes``
965 fields were incorrectly reporting ops; this is now fixed.
966
967 * The ``rados df --format=json`` output previously included ``read_kb`` and
968 ``write_kb`` fields; these have been removed. Please use ``read_bytes`` and
969 ``write_bytes`` instead (and divide by 1024 if appropriate).
970
971 * The experimental keyvaluestore-dev OSD backend had an on-disk format
972 change that prevents existing OSD data from being upgraded. This
973 affects developers and testers only.
974
975 * mon-specific and osd-specific leveldb options have been removed.
976 From this point onward users should use the `leveldb_*` generic
977 options and add the options in the appropriate sections of their
978 configuration files. Monitors will still maintain the following
979 monitor-specific defaults:
980
981 leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
982 leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
983 leveldb_block_size = 64*1024 = 65536 // 64KB
984 leveldb_compression = false
985 leveldb_log = ""
986
987 OSDs will still maintain the following osd-specific defaults:
988
989 leveldb_log = ""
990
991 * CephFS support for the legacy anchor table has finally been removed.
992 Users with file systems created before firefly should ensure that inodes
993 with multiple hard links are modified *prior* to the upgrade to ensure that
994 the backtraces are written properly. For example::
995
996 sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
997
998 * We disallow nonsensical 'tier cache-mode' transitions. From this point
999 onward, 'writeback' can only transition to 'forward' and 'forward'
1000 can transition to 1) 'writeback' if there are dirty objects, or 2) any if
1001 there are no dirty objects.
1002
1003
1004 Notable changes since v0.93
1005 ---------------------------
1006
1007 * build: a few cmake fixes (Matt Benjamin)
1008 * build: fix build on RHEL/CentOS 5.9 (Rohan Mars)
1009 * build: reorganize Makefile to allow modular builds (Boris Ranto)
1010 * ceph-fuse: be more forgiving on remount (#10982 Greg Farnum)
1011 * ceph: improve CLI parsing (#11093 David Zafman)
1012 * common: fix cluster logging to default channel (#11177 Sage Weil)
1013 * crush: fix parsing of straw2 buckets (#11015 Sage Weil)
1014 * doc: update man pages (David Zafman)
1015 * librados: fix leak in C_TwoContexts (Xiong Yiliang)
1016 * librados: fix leak in watch/notify path (Sage Weil)
1017 * librbd: fix and improve AIO cache invalidation (#10958 Jason Dillaman)
1018 * librbd: fix memory leak (Jason Dillaman)
1019 * librbd: fix ordering/queueing of resize operations (Jason Dillaman)
1020 * librbd: validate image is r/w on resize/flatten (Jason Dillaman)
1021 * librbd: various internal locking fixes (Jason Dillaman)
1022 * lttng: tracing is disabled until we streamline dependencies (Josh Durgin)
1023 * mon: add bootstrap-rgw profile (Sage Weil)
1024 * mon: do not pollute mon dir with CSV files from CRUSH check (Loic Dachary)
1025 * mon: fix clock drift time check interval (#10546 Joao Eduardo Luis)
1026 * mon: fix units in store stats (Joao Eduardo Luis)
1027 * mon: improve error handling on erasure code profile set (#10488, #11144 Loic Dachary)
1028 * mon: set {read,write}_tier on 'osd tier add-cache ...' (Jianpeng Ma)
1029 * ms: xio: fix misc bugs (Matt Benjamin, Vu Pham)
1030 * osd: DBObjectMap: fix locking to prevent rare crash (#9891 Samuel Just)
1031 * osd: fix and document last_epoch_started semantics (Samuel Just)
1032 * osd: fix divergent entry handling on PG split (Samuel Just)
1033 * osd: fix leak on shutdown (Kefu Chai)
1034 * osd: fix recording of digest on scrub (Samuel Just)
1035 * osd: fix whiteout handling (Sage Weil)
1036 * rbd: allow v2 striping parameters for clones and imports (Jason Dillaman)
1037 * rbd: fix formatted output of image features (Jason Dillaman)
1038 * rbd: updat eman page (Ilya Dryomov)
1039 * rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
1040 * rgw: enable IPv6 for civetweb (#10965 Yehuda Sadeh)
1041 * rgw: fix sysvinit script when rgw_socket_path is not defined (#11159 Yehuda Sadeh, Dan Mick)
1042 * rgw: pass civetweb configurables through (#10907 Yehuda Sadeh)
1043 * rgw: use new watch/notify API (Yehuda Sadeh, Sage Weil)
1044 * osd: reverted degraded writes feature due to 11155
1045
1046 Notable changes since v0.87.x Giant
1047 -----------------------------------
1048
1049 * add experimental features option (Sage Weil)
1050 * arch: fix NEON feaeture detection (#10185 Loic Dachary)
1051 * asyncmsgr: misc fixes (Haomai Wang)
1052 * buffer: add 'shareable' construct (Matt Benjamin)
1053 * buffer: add list::get_contiguous (Sage Weil)
1054 * buffer: avoid rebuild if buffer already contiguous (Jianpeng Ma)
1055 * build: CMake support (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
1056 * build: a few cmake fixes (Matt Benjamin)
1057 * build: aarch64 build fixes (Noah Watkins, Haomai Wang)
1058 * build: adjust build deps for yasm, virtualenv (Jianpeng Ma)
1059 * build: fix 'make check' races (#10384 Loic Dachary)
1060 * build: fix build on RHEL/CentOS 5.9 (Rohan Mars)
1061 * build: fix pkg names when libkeyutils is missing (Pankag Garg, Ken Dreyer)
1062 * build: improve build dependency tooling (Loic Dachary)
1063 * build: reorganize Makefile to allow modular builds (Boris Ranto)
1064 * build: support for jemalloc (Shishir Gowda)
1065 * ceph-disk: Scientific Linux support (Dan van der Ster)
1066 * ceph-disk: allow journal partition re-use (#10146 Loic Dachary, Dav van der Ster)
1067 * ceph-disk: call partx/partprobe consistency (#9721 Loic Dachary)
1068 * ceph-disk: do not re-use partition if encryption is required (Loic Dachary)
1069 * ceph-disk: fix dmcrypt key permissions (Loic Dachary)
1070 * ceph-disk: fix umount race condition (#10096 Blaine Gardner)
1071 * ceph-disk: improved systemd support (Owen Synge)
1072 * ceph-disk: init=none option (Loic Dachary)
1073 * ceph-disk: misc fixes (Christos Stavrakakis)
1074 * ceph-disk: respect --statedir for keyring (Loic Dachary)
1075 * ceph-disk: set guid if reusing journal partition (Dan van der Ster)
1076 * ceph-disk: support LUKS for encrypted partitions (Andrew Bartlett, Loic Dachary)
1077 * ceph-fuse, libcephfs: POSIX file lock support (Yan, Zheng)
1078 * ceph-fuse, libcephfs: allow xattr caps in inject_release_failure (#9800 John Spray)
1079 * ceph-fuse, libcephfs: fix I_COMPLETE_ORDERED checks (#9894 Yan, Zheng)
1080 * ceph-fuse, libcephfs: fix cap flush overflow (Greg Farnum, Yan, Zheng)
1081 * ceph-fuse, libcephfs: fix root inode xattrs (Yan, Zheng)
1082 * ceph-fuse, libcephfs: preserve dir ordering (#9178 Yan, Zheng)
1083 * ceph-fuse, libcephfs: trim inodes before reconnecting to MDS (Yan, Zheng)
1084 * ceph-fuse,libcephfs: add support for O_NOFOLLOW and O_PATH (Greg Farnum)
1085 * ceph-fuse,libcephfs: resend requests before completing cap reconnect (#10912 Yan, Zheng)
1086 * ceph-fuse: be more forgiving on remount (#10982 Greg Farnum)
1087 * ceph-fuse: fix dentry invalidation on 3.18+ kernels (#9997 Yan, Zheng)
1088 * ceph-fuse: fix kernel cache trimming (#10277 Yan, Zheng)
1089 * ceph-fuse: select kernel cache invalidation mechanism based on kernel version (Greg Farnum)
1090 * ceph-monstore-tool: fix shutdown (#10093 Loic Dachary)
1091 * ceph-monstore-tool: fix/improve CLI (Joao Eduardo Luis)
1092 * ceph-objectstore-tool: fix import (#10090 David Zafman)
1093 * ceph-objectstore-tool: improved import (David Zafman)
1094 * ceph-objectstore-tool: many improvements and tests (David Zafman)
1095 * ceph-objectstore-tool: many many improvements (David Zafman)
1096 * ceph-objectstore-tool: misc improvements, fixes (#9870 #9871 David Zafman)
1097 * ceph.spec: package rbd-replay-prep (Ken Dreyer)
1098 * ceph: add 'ceph osd df [tree]' command (#10452 Mykola Golub)
1099 * ceph: do not parse injectargs twice (Loic Dachary)
1100 * ceph: fix 'ceph tell ...' command validation (#10439 Joao Eduardo Luis)
1101 * ceph: improve 'ceph osd tree' output (Mykola Golub)
1102 * ceph: improve CLI parsing (#11093 David Zafman)
1103 * ceph: make 'ceph -s' output more readable (Sage Weil)
1104 * ceph: make 'ceph -s' show PG state counts in sorted order (Sage Weil)
1105 * ceph: make 'ceph tell mon.* version' work (Mykola Golub)
1106 * ceph: new 'ceph tell mds.$name_or_rank_or_gid' (John Spray)
1107 * ceph: show primary-affinity in 'ceph osd tree' (Mykola Golub)
1108 * ceph: test robustness (Joao Eduardo Luis)
1109 * ceph_objectstore_tool: behave with sharded flag (#9661 David Zafman)
1110 * cephfs-journal-tool: add recover_dentries function (#9883 John Spray)
1111 * cephfs-journal-tool: fix journal import (#10025 John Spray)
1112 * cephfs-journal-tool: skip up to expire_pos (#9977 John Spray)
1113 * cleanup rados.h definitions with macros (Ilya Dryomov)
1114 * common: add 'perf reset ...' admin command (Jianpeng Ma)
1115 * common: add TableFormatter (Andreas Peters)
1116 * common: add newline to flushed json output (Sage Weil)
1117 * common: check syncfs() return code (Jianpeng Ma)
1118 * common: do not unlock rwlock on destruction (Federico Simoncelli)
1119 * common: filtering for 'perf dump' (John Spray)
1120 * common: fix Formatter factory breakage (#10547 Loic Dachary)
1121 * common: fix block device discard check (#10296 Sage Weil)
1122 * common: make json-pretty output prettier (Sage Weil)
1123 * common: remove broken CEPH_LOCKDEP optoin (Kefu Chai)
1124 * common: shared_cache unit tests (Cheng Cheng)
1125 * common: support new gperftools header locations (Key Dreyer)
1126 * config: add $cctid meta variable (Adam Crume)
1127 * crush: fix buffer overrun for poorly formed rules (#9492 Johnu George)
1128 * crush: fix detach_bucket (#10095 Sage Weil)
1129 * crush: fix parsing of straw2 buckets (#11015 Sage Weil)
1130 * crush: fix several bugs in adjust_item_weight (Rongze Zhu)
1131 * crush: fix tree bucket behavior (Rongze Zhu)
1132 * crush: improve constness (Loic Dachary)
1133 * crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
1134 * crush: straw bucket weight calculation fixes (#9998 Sage Weil)
1135 * crush: update tries stats for indep rules (#10349 Loic Dachary)
1136 * crush: use larger choose_tries value for erasure code rulesets (#10353 Loic Dachary)
1137 * crushtool: add --location <id> command (Sage Weil, Loic Dachary)
1138 * debian,rpm: move RBD udev rules to ceph-common (#10864 Ken Dreyer)
1139 * debian: split python-ceph into python-{rbd,rados,cephfs} (Boris Ranto)
1140 * default to libnss instead of crypto++ (Federico Gimenez)
1141 * doc: CephFS disaster recovery guidance (John Spray)
1142 * doc: CephFS for early adopters (John Spray)
1143 * doc: add build-doc guidlines for Fedora and CentOS/RHEL (Nilamdyuti Goswami)
1144 * doc: add dumpling to firefly upgrade section (#7679 John Wilkins)
1145 * doc: ceph osd reweight vs crush weight (Laurent Guerby)
1146 * doc: do not suggest dangerous XFS nobarrier option (Dan van der Ster)
1147 * doc: document erasure coded pool operations (#9970 Loic Dachary)
1148 * doc: document the LRC per-layer plugin configuration (Yuan Zhou)
1149 * doc: enable rbd cache on openstack deployments (Sebastien Han)
1150 * doc: erasure code doc updates (Loic Dachary)
1151 * doc: file system osd config settings (Kevin Dalley)
1152 * doc: fix OpenStack Glance docs (#10478 Sebastien Han)
1153 * doc: improved installation nots on CentOS/RHEL installs (John Wilkins)
1154 * doc: key/value store config reference (John Wilkins)
1155 * doc: misc cleanups (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
1156 * doc: misc improvements (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
1157 * doc: misc updates (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
1158 * doc: misc updates (Alfredo Deza, VRan Liu)
1159 * doc: misc updates (Nilamdyuti Goswami, John Wilkins)
1160 * doc: new man pages (Nilamdyuti Goswami)
1161 * doc: preflight doc fixes (John Wilkins)
1162 * doc: replace cloudfiles with swiftclient Python Swift example (Tim Freund)
1163 * doc: update PG count guide (Gerben Meijer, Laurent Guerby, Loic Dachary)
1164 * doc: update man pages (David Zafman)
1165 * doc: update openstack docs for Juno (Sebastien Han)
1166 * doc: update release descriptions (Ken Dreyer)
1167 * doc: update sepia hardware inventory (Sandon Van Ness)
1168 * erasure-code: add mSHEC erasure code support (Takeshi Miyamae)
1169 * erasure-code: improved docs (#10340 Loic Dachary)
1170 * erasure-code: set max_size to 20 (#10363 Loic Dachary)
1171 * fix cluster logging from non-mon daemons (Sage Weil)
1172 * init-ceph: check for systemd-run before using it (Boris Ranto)
1173 * install-deps.sh: do not require sudo when root (Loic Dachary)
1174 * keyvaluestore: misc fixes (Haomai Wang)
1175 * keyvaluestore: performance improvements (Haomai Wang)
1176 * libcephfs,ceph-fuse: add 'status' asok (John Spray)
1177 * libcephfs,ceph-fuse: fix getting zero-length xattr (#10552 Yan, Zheng)
1178 * libcephfs: fix dirfrag trimming (#10387 Yan, Zheng)
1179 * libcephfs: fix mount timeout (#10041 Yan, Zheng)
1180 * libcephfs: fix test (#10415 Yan, Zheng)
1181 * libcephfs: fix use-afer-free on umount (#10412 Yan, Zheng)
1182 * libcephfs: include ceph and git version in client metadata (Sage Weil)
1183 * librados, osd: new watch/notify implementation (Sage Weil)
1184 * librados: add blacklist_add convenience method (Jason Dillaman)
1185 * librados: add rados_pool_get_base_tier() call (Adam Crume)
1186 * librados: add watch_flush() operation (Sage Weil, Haomai Wang)
1187 * librados: avoid memcpy on getxattr, read (Jianpeng Ma)
1188 * librados: cap buffer length (Loic Dachary)
1189 * librados: create ioctx by pool id (Jason Dillaman)
1190 * librados: do notify completion in fast-dispatch (Sage Weil)
1191 * librados: drop 'category' feature (Sage Weil)
1192 * librados: expose rados_{read|write}_op_assert_version in C API (Kim Vandry)
1193 * librados: fix infinite loop with skipped map epochs (#9986 Ding Dinghua)
1194 * librados: fix iterator operator= bugs (#10082 David Zafman, Yehuda Sadeh)
1195 * librados: fix leak in C_TwoContexts (Xiong Yiliang)
1196 * librados: fix leak in watch/notify path (Sage Weil)
1197 * librados: fix null deref when pool DNE (#9944 Sage Weil)
1198 * librados: fix objecter races (#9617 Josh Durgin)
1199 * librados: fix pool deletion handling (#10372 Sage Weil)
1200 * librados: fix pool name caching (#10458 Radoslaw Zarzynski)
1201 * librados: fix resource leak, misc bugs (#10425 Radoslaw Zarzynski)
1202 * librados: fix some watch/notify locking (Jason Dillaman, Josh Durgin)
1203 * librados: fix timer race from recent refactor (Sage Weil)
1204 * librados: new fadvise API (Ma Jianpeng)
1205 * librados: only export public API symbols (Jason Dillaman)
1206 * librados: remove shadowed variable (Kefu Chain)
1207 * librados: translate op flags from C APIs (Matthew Richards)
1208 * libradosstriper: fix remove() (Dongmao Zhang)
1209 * libradosstriper: fix shutdown hang (Dongmao Zhang)
1210 * libradosstriper: fix stat strtoll (Dongmao Zhang)
1211 * libradosstriper: fix trunc method (#10129 Sebastien Ponce)
1212 * libradosstriper: fix write_full when ENOENT (#10758 Sebastien Ponce)
1213 * libradosstriper: misc fixes (Sebastien Ponce)
1214 * librbd: CRC protection for RBD image map (Jason Dillaman)
1215 * librbd: add missing python docstrings (Jason Dillaman)
1216 * librbd: add per-image object map for improved performance (Jason Dillaman)
1217 * librbd: add readahead (Adam Crume)
1218 * librbd: add support for an "object map" indicating which objects exist (Jason Dillaman)
1219 * librbd: adjust internal locking (Josh Durgin, Jason Dillaman)
1220 * librbd: better handling of watch errors (Jason Dillaman)
1221 * librbd: complete pending ops before closing image (#10299 Josh Durgin)
1222 * librbd: coordinate maint operations through lock owner (Jason Dillaman)
1223 * librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
1224 * librbd: differentiate between R/O vs R/W features (Jason Dillaman)
1225 * librbd: don't close a closed parent in failure path (#10030 Jason Dillaman)
1226 * librbd: enforce write ordering with a snapshot (Jason Dillaman)
1227 * librbd: exclusive image locking (Jason Dillaman)
1228 * librbd: fadvise API (Ma Jianpeng)
1229 * librbd: fadvise-style hints; add misc hints for certain operations (Jianpeng Ma)
1230 * librbd: fix and improve AIO cache invalidation (#10958 Jason Dillaman)
1231 * librbd: fix cache tiers in list_children and snap_unprotect (Adam Crume)
1232 * librbd: fix coverity false-positives (Jason Dillaman)
1233 * librbd: fix diff test (#10002 Josh Durgin)
1234 * librbd: fix list_children from invalid pool ioctxs (#10123 Jason Dillaman)
1235 * librbd: fix locking for readahead (#10045 Jason Dillaman)
1236 * librbd: fix memory leak (Jason Dillaman)
1237 * librbd: fix ordering/queueing of resize operations (Jason Dillaman)
1238 * librbd: fix performance regression in ObjectCacher (#9513 Adam Crume)
1239 * librbd: fix snap create races (Jason Dillaman)
1240 * librbd: fix write vs import race (#10590 Jason Dillaman)
1241 * librbd: flush AIO operations asynchronously (#10714 Jason Dillaman)
1242 * librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
1243 * librbd: lttng tracepoints (Adam Crume)
1244 * librbd: make async versions of long-running maint operations (Jason Dillaman)
1245 * librbd: misc fixes (Xinxin Shu, Jason Dillaman)
1246 * librbd: mock tests (Jason Dillaman)
1247 * librbd: only export public API symbols (Jason Dillaman)
1248 * librbd: optionally blacklist clients before breaking locks (#10761 Jason Dillaman)
1249 * librbd: prevent copyup during shrink (Jason Dillaman)
1250 * librbd: refactor unit tests to use fixtures (Jason Dillaman)
1251 * librbd: validate image is r/w on resize/flatten (Jason Dillaman)
1252 * librbd: various internal locking fixes (Jason Dillaman)
1253 * many coverity fixes (Danny Al-Gaaf)
1254 * many many coverity cleanups (Danny Al-Gaaf)
1255 * mds: 'flush journal' admin command (John Spray)
1256 * mds: ENOSPC and OSDMap epoch barriers (#7317 John Spray)
1257 * mds: a whole bunch of initial scrub infrastructure (Greg Farnum)
1258 * mds: add cephfs-table-tool (John Spray)
1259 * mds: asok command for fetching subtree map (John Spray)
1260 * mds: avoid sending traceless replies in most cases (Yan, Zheng)
1261 * mds: constify MDSCacheObjects (John Spray)
1262 * mds: dirfrag buf fix (Yan, Zheng)
1263 * mds: disallow most commands on inactive MDS's (Greg Farnum)
1264 * mds: drop dentries, leases on deleted directories (#10164 Yan, Zheng)
1265 * mds: export dir asok command (John Spray)
1266 * mds: fix MDLog IO callback deadlock (John Spray)
1267 * mds: fix compat_version for MClientSession (#9945 John Spray)
1268 * mds: fix deadlock during journal probe vs purge (#10229 Yan, Zheng)
1269 * mds: fix race trimming log segments (Yan, Zheng)
1270 * mds: fix reply snapbl (Yan, Zheng)
1271 * mds: fix sessionmap lifecycle bugs (Yan, Zheng)
1272 * mds: fix stray/purge perfcounters (#10388 John Spray)
1273 * mds: handle heartbeat_reset during shutdown (#10382 John Spray)
1274 * mds: handle zero-size xattr (#10335 Yan, Zheng)
1275 * mds: initialize root inode xattr version (Yan, Zheng)
1276 * mds: introduce auth caps (John Spray)
1277 * mds: many many snapshot-related fixes (Yan, Zheng)
1278 * mds: misc bugs (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
1279 * mds: refactor, improve Session storage (John Spray)
1280 * mds: store backtrace for stray dir (Yan, Zheng)
1281 * mds: subtree quota support (Yunchuan Wen)
1282 * mds: verify backtrace when fetching dirfrag (#9557 Yan, Zheng)
1283 * memstore: free space tracking (John Spray)
1284 * misc cleanup (Danny Al-Gaaf, David Anderson)
1285 * misc coverity fixes (Danny Al-Gaaf)
1286 * misc coverity fixes (Danny Al-Gaaf)
1287 * misc: various valgrind fixes and cleanups (Danny Al-Gaaf)
1288 * mon: 'osd crush reweight-all' command (Sage Weil)
1289 * mon: add 'ceph osd rename-bucket ...' command (Loic Dachary)
1290 * mon: add bootstrap-rgw profile (Sage Weil)
1291 * mon: add max pgs per osd warning (Sage Weil)
1292 * mon: add noforward flag for some mon commands (Mykola Golub)
1293 * mon: allow adding tiers to fs pools (#10135 John Spray)
1294 * mon: allow full flag to be manually cleared (#9323 Sage Weil)
1295 * mon: clean up auth list output (Loic Dachary)
1296 * mon: delay failure injection (Joao Eduardo Luis)
1297 * mon: disallow empty pool names (#10555 Wido den Hollander)
1298 * mon: do not deactivate last mds (#10862 John Spray)
1299 * mon: do not pollute mon dir with CSV files from CRUSH check (Loic Dachary)
1300 * mon: drop old ceph_mon_store_converter (Sage Weil)
1301 * mon: fix 'ceph pg dump_stuck degraded' (Xinxin Shu)
1302 * mon: fix 'mds fail' for standby MDSs (John Spray)
1303 * mon: fix 'osd crush link' id resolution (John Spray)
1304 * mon: fix 'profile osd' use of config-key function on mon (#10844 Joao Eduardo Luis)
1305 * mon: fix *_ratio* units and types (Sage Weil)
1306 * mon: fix JSON dumps to dump floats as flots and not strings (Sage Weil)
1307 * mon: fix MDS health status from peons (#10151 John Spray)
1308 * mon: fix caching for min_last_epoch_clean (#9987 Sage Weil)
1309 * mon: fix clock drift time check interval (#10546 Joao Eduardo Luis)
1310 * mon: fix compatset initalization during mkfs (Joao Eduardo Luis)
1311 * mon: fix error output for add_data_pool (#9852 Joao Eduardo Luis)
1312 * mon: fix feature tracking during elections (Joao Eduardo Luis)
1313 * mon: fix formatter 'pg stat' command output (Sage Weil)
1314 * mon: fix mds gid/rank/state parsing (John Spray)
1315 * mon: fix misc error paths (Joao Eduardo Luis)
1316 * mon: fix paxos off-by-one corner case (#9301 Sage Weil)
1317 * mon: fix paxos timeouts (#10220 Joao Eduardo Luis)
1318 * mon: fix stashed monmap encoding (#5203 Xie Rui)
1319 * mon: fix units in store stats (Joao Eduardo Luis)
1320 * mon: get canonical OSDMap from leader (#10422 Sage Weil)
1321 * mon: ignore failure reports from before up_from (#10762 Dan van der Ster, Sage Weil)
1322 * mon: implement 'fs reset' command (John Spray)
1323 * mon: improve error handling on erasure code profile set (#10488, #11144 Loic Dachary)
1324 * mon: improved corrupt CRUSH map detection (Joao Eduardo Luis)
1325 * mon: include entity name in audit log for forwarded requests (#9913 Joao Eduardo Luis)
1326 * mon: include pg_temp count in osdmap summary (Sage Weil)
1327 * mon: log health summary to cluster log (#9440 Joao Eduardo Luis)
1328 * mon: make 'mds fail' idempotent (John Spray)
1329 * mon: make pg dump {sum,pgs,pgs_brief} work for format=plain (#5963 #6759 Mykola Golub)
1330 * mon: new 'ceph pool ls [detail]' command (Sage Weil)
1331 * mon: new pool safety flags nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
1332 * mon: new, friendly 'ceph pg ls ...' command (Xinxin Shu)
1333 * mon: paxos: allow reads while proposing (#9321 #9322 Joao Eduardo Luis)
1334 * mon: prevent MDS transition from STOPPING (#10791 Greg Farnum)
1335 * mon: propose all pending work in one transaction (Sage Weil)
1336 * mon: remove pg_temps for nonexistent pools (Joao Eduardo Luis)
1337 * mon: require mon_allow_pool_delete option to remove pools (Sage Weil)
1338 * mon: respect down flag when promoting standbys (John Spray)
1339 * mon: set globalid prealloc to larger value (Sage Weil)
1340 * mon: set {read,write}_tier on 'osd tier add-cache ...' (Jianpeng Ma)
1341 * mon: skip zeroed osd stats in get_rule_avail (#10257 Joao Eduardo Luis)
1342 * mon: validate min_size range (Jianpeng Ma)
1343 * mon: wait for writeable before cross-proposing (#9794 Joao Eduardo Luis)
1344 * mount.ceph: fix suprious error message (#10351 Yan, Zheng)
1345 * ms: xio: fix misc bugs (Matt Benjamin, Vu Pham)
1346 * msgr: async: bind threads to CPU cores, improved poll (Haomai Wang)
1347 * msgr: async: many fixes, unit tests (Haomai Wang)
1348 * msgr: async: several fixes (Haomai Wang)
1349 * msgr: asyncmessenger: add kqueue support (#9926 Haomai Wang)
1350 * msgr: avoid useless new/delete (Haomai Wang)
1351 * msgr: fix RESETSESSION bug (#10080 Greg Farnum)
1352 * msgr: fix crc configuration (Mykola Golub)
1353 * msgr: fix delay injection bug (#9910 Sage Weil, Greg Farnum)
1354 * msgr: misc unit tests (Haomai Wang)
1355 * msgr: new AsymcMessenger alternative implementation (Haomai Wang)
1356 * msgr: prefetch data when doing recv (Yehuda Sadeh)
1357 * msgr: simple: fix rare deadlock (Greg Farnum)
1358 * msgr: simple: retry binding to port on failure (#10029 Wido den Hollander)
1359 * msgr: xio: XioMessenger RDMA support (Casey Bodley, Vu Pham, Matt Benjamin)
1360 * objectstore: deprecate collection attrs (Sage Weil)
1361 * osd, librados: fadvise-style librados hints (Jianpeng Ma)
1362 * osd, librados: fix xattr_cmp_u64 (Dongmao Zhang)
1363 * osd, librados: revamp PG listing API to handle namespaces (#9031 #9262 #9438 David Zafman)
1364 * osd, mds: 'ops' as shorthand for 'dump_ops_in_flight' on asok (Sage Weil)
1365 * osd, mon: add checksums to all OSDMaps (Sage Weil)
1366 * osd, mon: send intiial pg create time from mon to osd (#9887 David Zafman)
1367 * osd,mon: add 'norebalance' flag (Kefu Chai)
1368 * osd,mon: specify OSD features explicitly in MOSDBoot (#10911 Sage Weil)
1369 * osd: DBObjectMap: fix locking to prevent rare crash (#9891 Samuel Just)
1370 * osd: EIO on whole-object reads when checksum is wrong (Sage Weil)
1371 * osd: add erasure code corpus (Loic Dachary)
1372 * osd: add fadvise flags to ObjectStore API (Jianpeng Ma)
1373 * osd: add get_latest_osdmap asok command (#9483 #9484 Mykola Golub)
1374 * osd: add misc tests (Loic Dachary, Danny Al-Gaaf)
1375 * osd: add option to prioritize heartbeat network traffic (Jian Wen)
1376 * osd: add support for the SHEC erasure-code algorithm (Takeshi Miyamae, Loic Dachary)
1377 * osd: allow deletion of objects with watcher (#2339 Sage Weil)
1378 * osd: allow recovery while below min_size (Samuel Just)
1379 * osd: allow recovery with fewer than min_size OSDs (Samuel Just)
1380 * osd: allow sparse read for Push/Pull (Haomai Wang)
1381 * osd: allow whiteout deletion in cache pool (Sage Weil)
1382 * osd: allow writes to degraded objects (Samuel Just)
1383 * osd: allow writes to degraded objects (Samuel Just)
1384 * osd: avoid publishing unchanged PG stats (Sage Weil)
1385 * osd: batch pg log trim (Xinze Chi)
1386 * osd: cache pool: ignore min flush age when cache is full (Xinze Chi)
1387 * osd: cache recent ObjectContexts (Dong Yuan)
1388 * osd: cache reverse_nibbles hash value (Dong Yuan)
1389 * osd: clean up internal ObjectStore interface (Sage Weil)
1390 * osd: cleanup boost optionals (William Kennington)
1391 * osd: clear cache on interval change (Samuel Just)
1392 * osd: do no proxy reads unless target OSDs are new (#10788 Sage Weil)
1393 * osd: do not abort deep scrub on missing hinfo (#10018 Loic Dachary)
1394 * osd: do not update digest on inconsistent object (#10524 Samuel Just)
1395 * osd: don't record digests for snapdirs (#10536 Samuel Just)
1396 * osd: drop upgrade support for pre-dumpling (Sage Weil)
1397 * osd: enable and use posix_fadvise (Sage Weil)
1398 * osd: erasure coding: allow bench.sh to test ISA backend (Yuan Zhou)
1399 * osd: erasure-code: encoding regression tests, corpus (#9420 Loic Dachary)
1400 * osd: erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
1401 * osd: erasure-code: jerasure support for NEON (Loic Dachary)
1402 * osd: erasure-code: relax cauchy w restrictions (#10325 David Zhang, Loic Dachary)
1403 * osd: erasure-code: update gf-complete to latest upstream (Loic Dachary)
1404 * osd: expose non-journal backends via ceph-osd CLI (Hoamai Wang)
1405 * osd: filejournal: don't cache journal when not using direct IO (Jianpeng Ma)
1406 * osd: fix JSON output for stray OSDs (Loic Dachary)
1407 * osd: fix OSDCap parser on old (el6) boost::spirit (#10757 Kefu Chai)
1408 * osd: fix OSDCap parsing on el6 (#10757 Kefu Chai)
1409 * osd: fix ObjectStore::Transaction encoding version (#10734 Samuel Just)
1410 * osd: fix WBTHrottle perf counters (Haomai Wang)
1411 * osd: fix and document last_epoch_started semantics (Samuel Just)
1412 * osd: fix auth object selection during repair (#10524 Samuel Just)
1413 * osd: fix backfill bug (#10150 Samuel Just)
1414 * osd: fix bug in pending digest updates (#10840 Samuel Just)
1415 * osd: fix cancel_proxy_read_ops (Sage Weil)
1416 * osd: fix cleanup of interrupted pg deletion (#10617 Sage Weil)
1417 * osd: fix divergent entry handling on PG split (Samuel Just)
1418 * osd: fix ghobject_t formatted output to include shard (#10063 Loic Dachary)
1419 * osd: fix ioprio option (Mykola Golub)
1420 * osd: fix ioprio options (Loic Dachary)
1421 * osd: fix journal shutdown race (Sage Weil)
1422 * osd: fix journal wrapping bug (#10883 David Zafman)
1423 * osd: fix leak in SnapTrimWQ (#10421 Kefu Chai)
1424 * osd: fix leak on shutdown (Kefu Chai)
1425 * osd: fix memstore free space calculation (Xiaoxi Chen)
1426 * osd: fix mixed-version peering issues (Samuel Just)
1427 * osd: fix object age eviction (Zhiqiang Wang)
1428 * osd: fix object atime calculation (Xinze Chi)
1429 * osd: fix object digest update bug (#10840 Samuel Just)
1430 * osd: fix occasional peering stalls (#10431 Sage Weil)
1431 * osd: fix ordering issue with new transaction encoding (#10534 Dong Yuan)
1432 * osd: fix osd peer check on scrub messages (#9555 Sage Weil)
1433 * osd: fix past_interval display bug (#9752 Loic Dachary)
1434 * osd: fix past_interval generation (#10427 #10430 David Zafman)
1435 * osd: fix pgls filter ops (#9439 David Zafman)
1436 * osd: fix recording of digest on scrub (Samuel Just)
1437 * osd: fix scrub delay bug (#10693 Samuel Just)
1438 * osd: fix scrub vs try-flush bug (#8011 Samuel Just)
1439 * osd: fix short read handling on push (#8121 David Zafman)
1440 * osd: fix stderr with -f or -d (Dan Mick)
1441 * osd: fix transaction accounting (Jianpeng Ma)
1442 * osd: fix watch reconnect race (#10441 Sage Weil)
1443 * osd: fix watch timeout cache state update (#10784 David Zafman)
1444 * osd: fix whiteout handling (Sage Weil)
1445 * osd: flush snapshots from cache tier immediately (Sage Weil)
1446 * osd: force promotion of watch/notify ops (Zhiqiang Wang)
1447 * osd: handle no-op write with snapshot (#10262 Sage Weil)
1448 * osd: improve idempotency detection across cache promotion/demotion (#8935 Sage Weil, Samuel Just)
1449 * osd: include activating peers in blocked_by (#10477 Sage Weil)
1450 * osd: jerasure and gf-complete updates from upstream (#10216 Loic Dachary)
1451 * osd: journal: check fsync/fdatasync result (Jianpeng Ma)
1452 * osd: journal: fix alignment checks, avoid useless memmove (Jianpeng Ma)
1453 * osd: journal: fix hang on shutdown (#10474 David Zafman)
1454 * osd: journal: fix header.committed_up_to (Xinze Chi)
1455 * osd: journal: fix journal zeroing when direct IO is enabled (Xie Rui)
1456 * osd: journal: initialize throttle (Ning Yao)
1457 * osd: journal: misc bug fixes (#6003 David Zafman, Samuel Just)
1458 * osd: journal: update committed_thru after replay (#6756 Samuel Just)
1459 * osd: keyvaluestore: cleanup dead code (Ning Yao)
1460 * osd: keyvaluestore: fix getattr semantics (Haomai Wang)
1461 * osd: keyvaluestore: fix key ordering (#10119 Haomai Wang)
1462 * osd: keyvaluestore_dev: optimization (Chendi Xue)
1463 * osd: limit in-flight read requests (Jason Dillaman)
1464 * osd: log when scrub or repair starts (Loic Dachary)
1465 * osd: make misdirected op checks robust for EC pools (#9835 Sage Weil)
1466 * osd: memstore: fix size limit (Xiaoxi Chen)
1467 * osd: misc FIEMAP fixes (Ma Jianpeng)
1468 * osd: misc cleanup (Xinze Chi, Yongyue Sun)
1469 * osd: misc optimizations (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
1470 * osd: misc scrub fixes (#10017 Loic Dachary)
1471 * osd: new 'activating' state between peering and active (Sage Weil)
1472 * osd: new optimized encoding for ObjectStore::Transaction (Dong Yuan)
1473 * osd: optimize Finisher (Xinze Chi)
1474 * osd: optimize WBThrottle map with unordered_map (Ning Yao)
1475 * osd: optimize filter_snapc (Ning Yao)
1476 * osd: preserve reqids for idempotency checks for promote/demote (Sage Weil, Zhiqiang Wang, Samuel Just)
1477 * osd: proxy read support (Zhiqiang Wang)
1478 * osd: proxy reads during cache promote (Zhiqiang Wang)
1479 * osd: remove dead locking code (Xinxin Shu)
1480 * osd: remove legacy classic scrub code (Sage Weil)
1481 * osd: remove unused fields in MOSDSubOp (Xiaoxi Chen)
1482 * osd: removed some dead code (Xinze Chi)
1483 * osd: replace MOSDSubOp messages with simpler, optimized MOSDRepOp (Xiaoxi Chen)
1484 * osd: restrict scrub to certain times of day (Xinze Chi)
1485 * osd: rocksdb: fix shutdown (Hoamai Wang)
1486 * osd: store PG metadata in per-collection objects for better concurrency (Sage Weil)
1487 * osd: store whole-object checksums on scrub, write_full (Sage Weil)
1488 * osd: support for discard for journal trim (Jianpeng Ma)
1489 * osd: use FIEMAP_FLAGS_SYNC instead of fsync (Jianpeng Ma)
1490 * osd: verify kernel is new enough before using XFS extsize ioctl, enable by default (#9956 Sage Weil)
1491 * pybind: fix memory leak in librados bindings (Billy Olsen)
1492 * pyrados: add object lock support (#6114 Mehdi Abaakouk)
1493 * pyrados: fix misnamed wait_* routings (#10104 Dan Mick)
1494 * pyrados: misc cleanups (Kefu Chai)
1495 * qa: add large auth ticket tests (Ilya Dryomov)
1496 * qa: fix mds tests (#10539 John Spray)
1497 * qa: fix osd create dup tests (#10083 Loic Dachary)
1498 * qa: ignore duplicates in rados ls (Josh Durgin)
1499 * qa: improve hadoop tests (Noah Watkins)
1500 * qa: many 'make check' improvements (Loic Dachary)
1501 * qa: misc tests (Loic Dachary, Yan, Zheng)
1502 * qa: parallelize make check (Loic Dachary)
1503 * qa: reorg fs quota tests (Greg Farnum)
1504 * qa: tolerate nearly-full disk for make check (Loic Dachary)
1505 * rados: fix put of /dev/null (Loic Dachary)
1506 * rados: fix usage (Jianpeng Ma)
1507 * rados: parse command-line arguments more strictly (#8983 Adam Crume)
1508 * rados: use copy-from operation for copy, cppool (Sage Weil)
1509 * radosgw-admin: add replicalog update command (Yehuda Sadeh)
1510 * rbd-fuse: clean up on shutdown (Josh Durgin)
1511 * rbd-fuse: fix memory leak (Adam Crume)
1512 * rbd-replay-many (Adam Crume)
1513 * rbd-replay: --anonymize flag to rbd-replay-prep (Adam Crume)
1514 * rbd: add 'merge-diff' function (MingXin Liu, Yunchuan Wen, Li Wang)
1515 * rbd: allow v2 striping parameters for clones and imports (Jason Dillaman)
1516 * rbd: fix 'rbd diff' for non-existent objects (Adam Crume)
1517 * rbd: fix buffer handling on image import (#10590 Jason Dillaman)
1518 * rbd: fix error when striping with format 1 (Sebastien Han)
1519 * rbd: fix export for image sizes over 2GB (Vicente Cheng)
1520 * rbd: fix formatted output of image features (Jason Dillaman)
1521 * rbd: leave exclusive lockin goff by default (Jason Dillaman)
1522 * rbd: updat eman page (Ilya Dryomov)
1523 * rbd: update init-rbdmap to fix dup mount point (Karel Striegel)
1524 * rbd: use IO hints for import, export, and bench operations (#10462 Jason Dillaman)
1525 * rbd: use rolling average for rbd bench-write throughput (Jason Dillaman)
1526 * rbd_recover_tool: RBD image recovery tool (Min Chen)
1527 * rgw: S3-style object versioning support (Yehuda Sadeh)
1528 * rgw: add location header when object is in another region (VRan Liu)
1529 * rgw: change multipart upload id magic (#10271 Yehuda Sadeh)
1530 * rgw: check keystone auth for S3 POST requests (#10062 Abhishek Lekshmanan)
1531 * rgw: check timestamp on s3 keystone auth (#10062 Abhishek Lekshmanan)
1532 * rgw: conditional PUT on ETag (#8562 Ray Lv)
1533 * rgw: create subuser if needed when creating user (#10103 Yehuda Sadeh)
1534 * rgw: decode http query params correction (#10271 Yehuda Sadeh)
1535 * rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
1536 * rgw: enable IPv6 for civetweb (#10965 Yehuda Sadeh)
1537 * rgw: extend replica log API (purge-all) (Yehuda Sadeh)
1538 * rgw: fail S3 POST if keystone not configured (#10688 Valery Tschopp, Yehuda Sadeh)
1539 * rgw: fix If-Modified-Since (VRan Liu)
1540 * rgw: fix XML header on get ACL request (#10106 Yehuda Sadeh)
1541 * rgw: fix bucket removal with data purge (Yehuda Sadeh)
1542 * rgw: fix content length check (#10701 Axel Dunkel, Yehuda Sadeh)
1543 * rgw: fix content-length update (#9576 Yehuda Sadeh)
1544 * rgw: fix disabling of max_size quota (#9907 Dong Lei)
1545 * rgw: fix error codes (#10334 #10329 Yehuda Sadeh)
1546 * rgw: fix incorrect len when len is 0 (#9877 Yehuda Sadeh)
1547 * rgw: fix object copy content type (#9478 Yehuda Sadeh)
1548 * rgw: fix partial GET in swift (#10553 Yehuda Sadeh)
1549 * rgw: fix replica log indexing (#8251 Yehuda Sadeh)
1550 * rgw: fix shutdown (#10472 Yehuda Sadeh)
1551 * rgw: fix swift metadata header name (Dmytro Iurchenko)
1552 * rgw: fix sysvinit script when rgw_socket_path is not defined (#11159 Yehuda Sadeh, Dan Mick)
1553 * rgw: fix user stags in get-user-info API (#9359 Ray Lv)
1554 * rgw: include XML ns on get ACL request (#10106 Yehuda Sadeh)
1555 * rgw: index swift keys appropriately (#10471 Yehuda Sadeh)
1556 * rgw: make sysvinit script set ulimit -n properly (Sage Weil)
1557 * rgw: misc fixes (#10307 Yehuda Sadeh)
1558 * rgw: only track cleanup for objects we write (#10311 Yehuda Sadeh)
1559 * rgw: pass civetweb configurables through (#10907 Yehuda Sadeh)
1560 * rgw: prevent illegal bucket policy that doesn't match placement rule (Yehuda Sadeh)
1561 * rgw: remove multipart entries from bucket index on abort (#10719 Yehuda Sadeh)
1562 * rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
1563 * rgw: respond with 204 to POST on containers (#10667 Yuan Zhou)
1564 * rgw: return timestamp on GET/HEAD (#8911 Yehuda Sadeh)
1565 * rgw: reuse fcgx connection struct (#10194 Yehuda Sadeh)
1566 * rgw: run radosgw as apache with systemd (#10125 Loic Dachary)
1567 * rgw: send explicit HTTP status string (Yehuda Sadeh)
1568 * rgw: set ETag on object copy (#9479 Yehuda Sadeh)
1569 * rgw: set length for keystone token validation request (#7796 Yehuda Sadeh, Mark Kirkwood)
1570 * rgw: support X-Storage-Policy header for Swift storage policy compat (Yehuda Sadeh)
1571 * rgw: support multiple host names (#7467 Yehuda Sadeh)
1572 * rgw: swift: dump container's custom metadata (#10665 Ahmad Faheem, Dmytro Iurchenko)
1573 * rgw: swift: support Accept header for response format (#10746 Dmytro Iurchenko)
1574 * rgw: swift: support for X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
1575 * rgw: tweak error codes (#10329 #10334 Yehuda Sadeh)
1576 * rgw: update bucket index on attr changes, for multi-site sync (#5595 Yehuda Sadeh)
1577 * rgw: use \r\n for http headers (#9254 Yehuda Sadeh)
1578 * rgw: use gc for multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
1579 * rgw: use new watch/notify API (Yehuda Sadeh, Sage Weil)
1580 * rpm: misc fixes (Key Dreyer)
1581 * rpm: move rgw logrotate to radosgw subpackage (Ken Dreyer)
1582 * systemd: better systemd unit files (Owen Synge)
1583 * sysvinit: fix race in 'stop' (#10389 Loic Dachary)
1584 * test: fix bufferlist tests (Jianpeng Ma)
1585 * tests: ability to run unit tests under docker (Loic Dachary)
1586 * tests: centos-6 dockerfile (#10755 Loic Dachary)
1587 * tests: improve docker-based tests (Loic Dachary)
1588 * tests: unit tests for shared_cache (Dong Yuan)
1589 * udev: fix rules for CentOS7/RHEL7 (Loic Dachary)
1590 * use clock_gettime instead of gettimeofday (Jianpeng Ma)
1591 * vstart.sh: set up environment for s3-tests (Luis Pabon)
1592 * vstart.sh: work with cmake (Yehuda Sadeh)
1593
1594
1595
1596
1597
1598
1599 v0.93
1600 =====
1601
1602 This is the first release candidate for Hammer, and includes all of
1603 the features that will be present in the final release. We welcome
1604 and encourage any and all testing in non-production clusters to identify
1605 any problems with functionality, stability, or performance before the
1606 final Hammer release.
1607
1608 We suggest some caution in one area: librbd. There is a lot of new
1609 functionality around object maps and locking that is disabled by
1610 default but may still affect stability for existing images. We are
1611 continuing to shake out those bugs so that the final Hammer release
1612 (probably v0.94) will be rock solid.
1613
1614 Major features since Giant include:
1615
1616 * cephfs: journal scavenger repair tool (John Spray)
1617 * crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
1618 * doc: improved guidance for CephFS early adopters (John Spray)
1619 * librbd: add per-image object map for improved performance (Jason Dillaman)
1620 * librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng)
1621 * librados: fadvise-style IO hints (Jianpeng Ma)
1622 * mds: many many snapshot-related fixes (Yan, Zheng)
1623 * mon: new 'ceph osd df' command (Mykola Golub)
1624 * mon: new 'ceph pg ls ...' command (Xinxin Shu)
1625 * osd: improved performance for high-performance backends
1626 * osd: improved recovery behavior (Samuel Just)
1627 * osd: improved cache tier behavior with reads (Zhiqiang Wang)
1628 * rgw: S3-compatible bucket versioning support (Yehuda Sadeh)
1629 * rgw: large bucket index sharding (Guang Yang, Yehuda Sadeh)
1630 * RDMA "xio" messenger support (Matt Benjamin, Vu Pham)
1631
1632 Upgrading
1633 ---------
1634
1635 * If you are upgrading from v0.92, you must stop all OSD daemons and flush their
1636 journals (``ceph-osd -i NNN --flush-journal``) before upgrading. There was
1637 a transaction encoding bug in v0.92 that broke compatibility. Upgrading from
1638 v0.91 or anything earlier is safe.
1639
1640 * No special restrictions when upgrading from firefly or giant.
1641
1642 Notable Changes
1643 ---------------
1644
1645 * build: CMake support (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
1646 * ceph-disk: do not re-use partition if encryption is required (Loic Dachary)
1647 * ceph-disk: support LUKS for encrypted partitions (Andrew Bartlett, Loic Dachary)
1648 * ceph-fuse,libcephfs: add support for O_NOFOLLOW and O_PATH (Greg Farnum)
1649 * ceph-fuse,libcephfs: resend requests before completing cap reconnect (#10912 Yan, Zheng)
1650 * ceph-fuse: select kernel cache invalidation mechanism based on kernel version (Greg Farnum)
1651 * ceph-objectstore-tool: improved import (David Zafman)
1652 * ceph-objectstore-tool: misc improvements, fixes (#9870 #9871 David Zafman)
1653 * ceph: add 'ceph osd df [tree]' command (#10452 Mykola Golub)
1654 * ceph: fix 'ceph tell ...' command validation (#10439 Joao Eduardo Luis)
1655 * ceph: improve 'ceph osd tree' output (Mykola Golub)
1656 * cephfs-journal-tool: add recover_dentries function (#9883 John Spray)
1657 * common: add newline to flushed json output (Sage Weil)
1658 * common: filtering for 'perf dump' (John Spray)
1659 * common: fix Formatter factory breakage (#10547 Loic Dachary)
1660 * common: make json-pretty output prettier (Sage Weil)
1661 * crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
1662 * crush: update tries stats for indep rules (#10349 Loic Dachary)
1663 * crush: use larger choose_tries value for erasure code rulesets (#10353 Loic Dachary)
1664 * debian,rpm: move RBD udev rules to ceph-common (#10864 Ken Dreyer)
1665 * debian: split python-ceph into python-{rbd,rados,cephfs} (Boris Ranto)
1666 * doc: CephFS disaster recovery guidance (John Spray)
1667 * doc: CephFS for early adopters (John Spray)
1668 * doc: fix OpenStack Glance docs (#10478 Sebastien Han)
1669 * doc: misc updates (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
1670 * doc: replace cloudfiles with swiftclient Python Swift example (Tim Freund)
1671 * erasure-code: add mSHEC erasure code support (Takeshi Miyamae)
1672 * erasure-code: improved docs (#10340 Loic Dachary)
1673 * erasure-code: set max_size to 20 (#10363 Loic Dachary)
1674 * libcephfs,ceph-fuse: fix getting zero-length xattr (#10552 Yan, Zheng)
1675 * librados: add blacklist_add convenience method (Jason Dillaman)
1676 * librados: expose rados_{read|write}_op_assert_version in C API (Kim Vandry)
1677 * librados: fix pool name caching (#10458 Radoslaw Zarzynski)
1678 * librados: fix resource leak, misc bugs (#10425 Radoslaw Zarzynski)
1679 * librados: fix some watch/notify locking (Jason Dillaman, Josh Durgin)
1680 * libradosstriper: fix write_full when ENOENT (#10758 Sebastien Ponce)
1681 * librbd: CRC protection for RBD image map (Jason Dillaman)
1682 * librbd: add per-image object map for improved performance (Jason Dillaman)
1683 * librbd: add support for an "object map" indicating which objects exist (Jason Dillaman)
1684 * librbd: adjust internal locking (Josh Durgin, Jason Dillaman)
1685 * librbd: better handling of watch errors (Jason Dillaman)
1686 * librbd: coordinate maint operations through lock owner (Jason Dillaman)
1687 * librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
1688 * librbd: enforce write ordering with a snapshot (Jason Dillaman)
1689 * librbd: fadvise-style hints; add misc hints for certain operations (Jianpeng Ma)
1690 * librbd: fix coverity false-positives (Jason Dillaman)
1691 * librbd: fix snap create races (Jason Dillaman)
1692 * librbd: flush AIO operations asynchronously (#10714 Jason Dillaman)
1693 * librbd: make async versions of long-running maint operations (Jason Dillaman)
1694 * librbd: mock tests (Jason Dillaman)
1695 * librbd: optionally blacklist clients before breaking locks (#10761 Jason Dillaman)
1696 * librbd: prevent copyup during shrink (Jason Dillaman)
1697 * mds: add cephfs-table-tool (John Spray)
1698 * mds: avoid sending traceless replies in most cases (Yan, Zheng)
1699 * mds: export dir asok command (John Spray)
1700 * mds: fix stray/purge perfcounters (#10388 John Spray)
1701 * mds: handle heartbeat_reset during shutdown (#10382 John Spray)
1702 * mds: many many snapshot-related fixes (Yan, Zheng)
1703 * mds: refactor, improve Session storage (John Spray)
1704 * misc coverity fixes (Danny Al-Gaaf)
1705 * mon: add noforward flag for some mon commands (Mykola Golub)
1706 * mon: disallow empty pool names (#10555 Wido den Hollander)
1707 * mon: do not deactivate last mds (#10862 John Spray)
1708 * mon: drop old ceph_mon_store_converter (Sage Weil)
1709 * mon: fix 'ceph pg dump_stuck degraded' (Xinxin Shu)
1710 * mon: fix 'profile osd' use of config-key function on mon (#10844 Joao Eduardo Luis)
1711 * mon: fix compatset initalization during mkfs (Joao Eduardo Luis)
1712 * mon: fix feature tracking during elections (Joao Eduardo Luis)
1713 * mon: fix mds gid/rank/state parsing (John Spray)
1714 * mon: ignore failure reports from before up_from (#10762 Dan van der Ster, Sage Weil)
1715 * mon: improved corrupt CRUSH map detection (Joao Eduardo Luis)
1716 * mon: include pg_temp count in osdmap summary (Sage Weil)
1717 * mon: log health summary to cluster log (#9440 Joao Eduardo Luis)
1718 * mon: make 'mds fail' idempotent (John Spray)
1719 * mon: make pg dump {sum,pgs,pgs_brief} work for format=plain (#5963 #6759 Mykola Golub)
1720 * mon: new pool safety flags nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
1721 * mon: new, friendly 'ceph pg ls ...' command (Xinxin Shu)
1722 * mon: prevent MDS transition from STOPPING (#10791 Greg Farnum)
1723 * mon: propose all pending work in one transaction (Sage Weil)
1724 * mon: remove pg_temps for nonexistent pools (Joao Eduardo Luis)
1725 * mon: require mon_allow_pool_delete option to remove pools (Sage Weil)
1726 * mon: set globalid prealloc to larger value (Sage Weil)
1727 * mon: skip zeroed osd stats in get_rule_avail (#10257 Joao Eduardo Luis)
1728 * mon: validate min_size range (Jianpeng Ma)
1729 * msgr: async: bind threads to CPU cores, improved poll (Haomai Wang)
1730 * msgr: fix crc configuration (Mykola Golub)
1731 * msgr: misc unit tests (Haomai Wang)
1732 * msgr: xio: XioMessenger RDMA support (Casey Bodley, Vu Pham, Matt Benjamin)
1733 * osd, librados: fadvise-style librados hints (Jianpeng Ma)
1734 * osd, librados: fix xattr_cmp_u64 (Dongmao Zhang)
1735 * osd,mon: add 'norebalance' flag (Kefu Chai)
1736 * osd,mon: specify OSD features explicitly in MOSDBoot (#10911 Sage Weil)
1737 * osd: add option to prioritize heartbeat network traffic (Jian Wen)
1738 * osd: add support for the SHEC erasure-code algorithm (Takeshi Miyamae, Loic Dachary)
1739 * osd: allow recovery while below min_size (Samuel Just)
1740 * osd: allow recovery with fewer than min_size OSDs (Samuel Just)
1741 * osd: allow writes to degraded objects (Samuel Just)
1742 * osd: allow writes to degraded objects (Samuel Just)
1743 * osd: avoid publishing unchanged PG stats (Sage Weil)
1744 * osd: cache recent ObjectContexts (Dong Yuan)
1745 * osd: clear cache on interval change (Samuel Just)
1746 * osd: do no proxy reads unless target OSDs are new (#10788 Sage Weil)
1747 * osd: do not update digest on inconsistent object (#10524 Samuel Just)
1748 * osd: don't record digests for snapdirs (#10536 Samuel Just)
1749 * osd: fix OSDCap parser on old (el6) boost::spirit (#10757 Kefu Chai)
1750 * osd: fix OSDCap parsing on el6 (#10757 Kefu Chai)
1751 * osd: fix ObjectStore::Transaction encoding version (#10734 Samuel Just)
1752 * osd: fix auth object selection during repair (#10524 Samuel Just)
1753 * osd: fix bug in pending digest updates (#10840 Samuel Just)
1754 * osd: fix cancel_proxy_read_ops (Sage Weil)
1755 * osd: fix cleanup of interrupted pg deletion (#10617 Sage Weil)
1756 * osd: fix journal wrapping bug (#10883 David Zafman)
1757 * osd: fix leak in SnapTrimWQ (#10421 Kefu Chai)
1758 * osd: fix memstore free space calculation (Xiaoxi Chen)
1759 * osd: fix mixed-version peering issues (Samuel Just)
1760 * osd: fix object digest update bug (#10840 Samuel Just)
1761 * osd: fix ordering issue with new transaction encoding (#10534 Dong Yuan)
1762 * osd: fix past_interval generation (#10427 #10430 David Zafman)
1763 * osd: fix short read handling on push (#8121 David Zafman)
1764 * osd: fix watch timeout cache state update (#10784 David Zafman)
1765 * osd: force promotion of watch/notify ops (Zhiqiang Wang)
1766 * osd: improve idempotency detection across cache promotion/demotion (#8935 Sage Weil, Samuel Just)
1767 * osd: include activating peers in blocked_by (#10477 Sage Weil)
1768 * osd: jerasure and gf-complete updates from upstream (#10216 Loic Dachary)
1769 * osd: journal: check fsync/fdatasync result (Jianpeng Ma)
1770 * osd: journal: fix hang on shutdown (#10474 David Zafman)
1771 * osd: journal: fix header.committed_up_to (Xinze Chi)
1772 * osd: journal: initialize throttle (Ning Yao)
1773 * osd: journal: misc bug fixes (#6003 David Zafman, Samuel Just)
1774 * osd: misc cleanup (Xinze Chi, Yongyue Sun)
1775 * osd: new 'activating' state between peering and active (Sage Weil)
1776 * osd: preserve reqids for idempotency checks for promote/demote (Sage Weil, Zhiqiang Wang, Samuel Just)
1777 * osd: remove dead locking code (Xinxin Shu)
1778 * osd: restrict scrub to certain times of day (Xinze Chi)
1779 * osd: rocksdb: fix shutdown (Hoamai Wang)
1780 * pybind: fix memory leak in librados bindings (Billy Olsen)
1781 * qa: fix mds tests (#10539 John Spray)
1782 * qa: ignore duplicates in rados ls (Josh Durgin)
1783 * qa: improve hadoop tests (Noah Watkins)
1784 * qa: reorg fs quota tests (Greg Farnum)
1785 * rados: fix usage (Jianpeng Ma)
1786 * radosgw-admin: add replicalog update command (Yehuda Sadeh)
1787 * rbd-fuse: clean up on shutdown (Josh Durgin)
1788 * rbd: add 'merge-diff' function (MingXin Liu, Yunchuan Wen, Li Wang)
1789 * rbd: fix buffer handling on image import (#10590 Jason Dillaman)
1790 * rbd: leave exclusive lockin goff by default (Jason Dillaman)
1791 * rbd: update init-rbdmap to fix dup mount point (Karel Striegel)
1792 * rbd: use IO hints for import, export, and bench operations (#10462 Jason Dillaman)
1793 * rbd_recover_tool: RBD image recovery tool (Min Chen)
1794 * rgw: S3-style object versioning support (Yehuda Sadeh)
1795 * rgw: check keystone auth for S3 POST requests (#10062 Abhishek Lekshmanan)
1796 * rgw: extend replica log API (purge-all) (Yehuda Sadeh)
1797 * rgw: fail S3 POST if keystone not configured (#10688 Valery Tschopp, Yehuda Sadeh)
1798 * rgw: fix XML header on get ACL request (#10106 Yehuda Sadeh)
1799 * rgw: fix bucket removal with data purge (Yehuda Sadeh)
1800 * rgw: fix replica log indexing (#8251 Yehuda Sadeh)
1801 * rgw: fix swift metadata header name (Dmytro Iurchenko)
1802 * rgw: remove multipart entries from bucket index on abort (#10719 Yehuda Sadeh)
1803 * rgw: respond with 204 to POST on containers (#10667 Yuan Zhou)
1804 * rgw: reuse fcgx connection struct (#10194 Yehuda Sadeh)
1805 * rgw: support multiple host names (#7467 Yehuda Sadeh)
1806 * rgw: swift: dump container's custom metadata (#10665 Ahmad Faheem, Dmytro Iurchenko)
1807 * rgw: swift: support Accept header for response format (#10746 Dmytro Iurchenko)
1808 * rgw: swift: support for X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
1809 * rpm: move rgw logrotate to radosgw subpackage (Ken Dreyer)
1810 * tests: centos-6 dockerfile (#10755 Loic Dachary)
1811 * tests: unit tests for shared_cache (Dong Yuan)
1812 * vstart.sh: work with cmake (Yehuda Sadeh)
1813
1814
1815
1816 v0.92
1817 =====
1818
1819 This is the second-to-last chunk of new stuff before Hammer. Big items
1820 include additional checksums on OSD objects, proxied reads in the
1821 cache tier, image locking in RBD, optimized OSD Transaction and
1822 replication messages, and a big pile of RGW and MDS bug fixes.
1823
1824 Upgrading
1825 ---------
1826
1827 * The experimental 'keyvaluestore-dev' OSD backend has been renamed
1828 'keyvaluestore' (for simplicity) and marked as experimental. To
1829 enable this untested feature and acknowledge that you understand
1830 that it is untested and may destroy data, you need to add the
1831 following to your ceph.conf::
1832
1833 enable experimental unrecoverable data corrupting features = keyvaluestore
1834
1835 * The following librados C API function calls take a 'flags' argument whose value
1836 is now correctly interpreted:
1837
1838 rados_write_op_operate()
1839 rados_aio_write_op_operate()
1840 rados_read_op_operate()
1841 rados_aio_read_op_operate()
1842
1843 The flags were not correctly being translated from the librados constants to the
1844 internal values. Now they are. Any code that is passing flags to these methods
1845 should be audited to ensure that they are using the correct LIBRADOS_OP_FLAG_*
1846 constants.
1847
1848 * The 'rados' CLI 'copy' and 'cppool' commands now use the copy-from operation,
1849 which means the latest CLI cannot run these commands against pre-firefly OSDs.
1850
1851 * The librados watch/notify API now includes a watch_flush() operation to flush
1852 the async queue of notify operations. This should be called by any watch/notify
1853 user prior to rados_shutdown().
1854
1855 Notable Changes
1856 ---------------
1857
1858 * add experimental features option (Sage Weil)
1859 * build: fix 'make check' races (#10384 Loic Dachary)
1860 * build: fix pkg names when libkeyutils is missing (Pankag Garg, Ken Dreyer)
1861 * ceph: make 'ceph -s' show PG state counts in sorted order (Sage Weil)
1862 * ceph: make 'ceph tell mon.* version' work (Mykola Golub)
1863 * ceph-monstore-tool: fix/improve CLI (Joao Eduardo Luis)
1864 * ceph: show primary-affinity in 'ceph osd tree' (Mykola Golub)
1865 * common: add TableFormatter (Andreas Peters)
1866 * common: check syncfs() return code (Jianpeng Ma)
1867 * doc: do not suggest dangerous XFS nobarrier option (Dan van der Ster)
1868 * doc: misc updates (Nilamdyuti Goswami, John Wilkins)
1869 * install-deps.sh: do not require sudo when root (Loic Dachary)
1870 * libcephfs: fix dirfrag trimming (#10387 Yan, Zheng)
1871 * libcephfs: fix mount timeout (#10041 Yan, Zheng)
1872 * libcephfs: fix test (#10415 Yan, Zheng)
1873 * libcephfs: fix use-afer-free on umount (#10412 Yan, Zheng)
1874 * libcephfs: include ceph and git version in client metadata (Sage Weil)
1875 * librados: add watch_flush() operation (Sage Weil, Haomai Wang)
1876 * librados: avoid memcpy on getxattr, read (Jianpeng Ma)
1877 * librados: create ioctx by pool id (Jason Dillaman)
1878 * librados: do notify completion in fast-dispatch (Sage Weil)
1879 * librados: remove shadowed variable (Kefu Chain)
1880 * librados: translate op flags from C APIs (Matthew Richards)
1881 * librbd: differentiate between R/O vs R/W features (Jason Dillaman)
1882 * librbd: exclusive image locking (Jason Dillaman)
1883 * librbd: fix write vs import race (#10590 Jason Dillaman)
1884 * librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
1885 * mds: asok command for fetching subtree map (John Spray)
1886 * mds: constify MDSCacheObjects (John Spray)
1887 * misc: various valgrind fixes and cleanups (Danny Al-Gaaf)
1888 * mon: fix 'mds fail' for standby MDSs (John Spray)
1889 * mon: fix stashed monmap encoding (#5203 Xie Rui)
1890 * mon: implement 'fs reset' command (John Spray)
1891 * mon: respect down flag when promoting standbys (John Spray)
1892 * mount.ceph: fix suprious error message (#10351 Yan, Zheng)
1893 * msgr: async: many fixes, unit tests (Haomai Wang)
1894 * msgr: simple: retry binding to port on failure (#10029 Wido den Hollander)
1895 * osd: add fadvise flags to ObjectStore API (Jianpeng Ma)
1896 * osd: add get_latest_osdmap asok command (#9483 #9484 Mykola Golub)
1897 * osd: EIO on whole-object reads when checksum is wrong (Sage Weil)
1898 * osd: filejournal: don't cache journal when not using direct IO (Jianpeng Ma)
1899 * osd: fix ioprio option (Mykola Golub)
1900 * osd: fix scrub delay bug (#10693 Samuel Just)
1901 * osd: fix watch reconnect race (#10441 Sage Weil)
1902 * osd: handle no-op write with snapshot (#10262 Sage Weil)
1903 * osd: journal: fix journal zeroing when direct IO is enabled (Xie Rui)
1904 * osd: keyvaluestore: cleanup dead code (Ning Yao)
1905 * osd, mds: 'ops' as shorthand for 'dump_ops_in_flight' on asok (Sage Weil)
1906 * osd: memstore: fix size limit (Xiaoxi Chen)
1907 * osd: misc scrub fixes (#10017 Loic Dachary)
1908 * osd: new optimized encoding for ObjectStore::Transaction (Dong Yuan)
1909 * osd: optimize filter_snapc (Ning Yao)
1910 * osd: optimize WBThrottle map with unordered_map (Ning Yao)
1911 * osd: proxy reads during cache promote (Zhiqiang Wang)
1912 * osd: proxy read support (Zhiqiang Wang)
1913 * osd: remove legacy classic scrub code (Sage Weil)
1914 * osd: remove unused fields in MOSDSubOp (Xiaoxi Chen)
1915 * osd: replace MOSDSubOp messages with simpler, optimized MOSDRepOp (Xiaoxi Chen)
1916 * osd: store whole-object checksums on scrub, write_full (Sage Weil)
1917 * osd: verify kernel is new enough before using XFS extsize ioctl, enable by default (#9956 Sage Weil)
1918 * rados: use copy-from operation for copy, cppool (Sage Weil)
1919 * rgw: change multipart upload id magic (#10271 Yehuda Sadeh)
1920 * rgw: decode http query params correction (#10271 Yehuda Sadeh)
1921 * rgw: fix content length check (#10701 Axel Dunkel, Yehuda Sadeh)
1922 * rgw: fix partial GET in swift (#10553 Yehuda Sadeh)
1923 * rgw: fix shutdown (#10472 Yehuda Sadeh)
1924 * rgw: include XML ns on get ACL request (#10106 Yehuda Sadeh)
1925 * rgw: misc fixes (#10307 Yehuda Sadeh)
1926 * rgw: only track cleanup for objects we write (#10311 Yehuda Sadeh)
1927 * rgw: tweak error codes (#10329 #10334 Yehuda Sadeh)
1928 * rgw: use gc for multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
1929 * sysvinit: fix race in 'stop' (#10389 Loic Dachary)
1930 * test: fix bufferlist tests (Jianpeng Ma)
1931 * tests: improve docker-based tests (Loic Dachary)
1932
1933
1934 v0.91
1935 =====
1936
1937 We are quickly approaching the Hammer feature freeze but have a few
1938 more dev releases to go before we get there. The headline items are
1939 subtree-based quota support in CephFS (ceph-fuse/libcephfs client
1940 support only for now), a rewrite of the watch/notify librados API used
1941 by RBD and RGW, OSDMap checksums to ensure that maps are always
1942 consistent inside the cluster, new API calls in librados and librbd
1943 for IO hinting modeled after posix_fadvise, and improved storage of
1944 per-PG state.
1945
1946 We expect two more releases before the Hammer feature freeze (v0.93).
1947
1948 Upgrading
1949 ---------
1950
1951 * The 'category' field for objects has been removed. This was originally added
1952 to track PG stat summations over different categories of objects for use by
1953 radosgw. It is no longer has any known users and is prone to abuse because it
1954 can lead to a pg_stat_t structure that is unbounded. The librados API calls
1955 that accept this field now ignore it, and the OSD no longer tracks the
1956 per-category summations.
1957
1958 * The output for 'rados df' has changed. The 'category' level has been
1959 eliminated, so there is now a single stat object per pool. The structure of
1960 the JSON output is different, and the plaintext output has one less column.
1961
1962 * The 'rados create <objectname> [category]' optional category argument is no
1963 longer supported or recognized.
1964
1965 * rados.py's Rados class no longer has a __del__ method; it was causing
1966 problems on interpreter shutdown and use of threads. If your code has
1967 Rados objects with limited lifetimes and you're concerned about locked
1968 resources, call Rados.shutdown() explicitly.
1969
1970 * There is a new version of the librados watch/notify API with vastly
1971 improved semantics. Any applications using this interface are
1972 encouraged to migrate to the new API. The old API calls are marked
1973 as deprecated and will eventually be removed.
1974
1975 * The librados rados_unwatch() call used to be safe to call on an
1976 invalid handle. The new version has undefined behavior when passed
1977 a bogus value (for example, when rados_watch() returns an error and
1978 handle is not defined).
1979
1980 * The structure of the formatted 'pg stat' command is changed for the
1981 portion that counts states by name to avoid using the '+' character
1982 (which appears in state names) as part of the XML token (it is not
1983 legal).
1984
1985 Notable Changes
1986 ---------------
1987
1988 * asyncmsgr: misc fixes (Haomai Wang)
1989 * buffer: add 'shareable' construct (Matt Benjamin)
1990 * build: aarch64 build fixes (Noah Watkins, Haomai Wang)
1991 * build: support for jemalloc (Shishir Gowda)
1992 * ceph-disk: allow journal partition re-use (#10146 Loic Dachary, Dav van der Ster)
1993 * ceph-disk: misc fixes (Christos Stavrakakis)
1994 * ceph-fuse: fix kernel cache trimming (#10277 Yan, Zheng)
1995 * ceph-objectstore-tool: many many improvements (David Zafman)
1996 * common: support new gperftools header locations (Key Dreyer)
1997 * crush: straw bucket weight calculation fixes (#9998 Sage Weil)
1998 * doc: misc improvements (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
1999 * libcephfs,ceph-fuse: add 'status' asok (John Spray)
2000 * librados, osd: new watch/notify implementation (Sage Weil)
2001 * librados: drop 'category' feature (Sage Weil)
2002 * librados: fix pool deletion handling (#10372 Sage Weil)
2003 * librados: new fadvise API (Ma Jianpeng)
2004 * libradosstriper: fix remove() (Dongmao Zhang)
2005 * librbd: complete pending ops before closing image (#10299 Josh Durgin)
2006 * librbd: fadvise API (Ma Jianpeng)
2007 * mds: ENOSPC and OSDMap epoch barriers (#7317 John Spray)
2008 * mds: dirfrag buf fix (Yan, Zheng)
2009 * mds: disallow most commands on inactive MDS's (Greg Farnum)
2010 * mds: drop dentries, leases on deleted directories (#10164 Yan, Zheng)
2011 * mds: handle zero-size xattr (#10335 Yan, Zheng)
2012 * mds: subtree quota support (Yunchuan Wen)
2013 * memstore: free space tracking (John Spray)
2014 * misc cleanup (Danny Al-Gaaf, David Anderson)
2015 * mon: 'osd crush reweight-all' command (Sage Weil)
2016 * mon: allow full flag to be manually cleared (#9323 Sage Weil)
2017 * mon: delay failure injection (Joao Eduardo Luis)
2018 * mon: fix paxos timeouts (#10220 Joao Eduardo Luis)
2019 * mon: get canonical OSDMap from leader (#10422 Sage Weil)
2020 * msgr: fix RESETSESSION bug (#10080 Greg Farnum)
2021 * objectstore: deprecate collection attrs (Sage Weil)
2022 * osd, mon: add checksums to all OSDMaps (Sage Weil)
2023 * osd: allow deletion of objects with watcher (#2339 Sage Weil)
2024 * osd: allow sparse read for Push/Pull (Haomai Wang)
2025 * osd: cache reverse_nibbles hash value (Dong Yuan)
2026 * osd: drop upgrade support for pre-dumpling (Sage Weil)
2027 * osd: enable and use posix_fadvise (Sage Weil)
2028 * osd: erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
2029 * osd: erasure-code: jerasure support for NEON (Loic Dachary)
2030 * osd: erasure-code: relax cauchy w restrictions (#10325 David Zhang, Loic Dachary)
2031 * osd: erasure-code: update gf-complete to latest upstream (Loic Dachary)
2032 * osd: fix WBTHrottle perf counters (Haomai Wang)
2033 * osd: fix backfill bug (#10150 Samuel Just)
2034 * osd: fix occasional peering stalls (#10431 Sage Weil)
2035 * osd: fix scrub vs try-flush bug (#8011 Samuel Just)
2036 * osd: fix stderr with -f or -d (Dan Mick)
2037 * osd: misc FIEMAP fixes (Ma Jianpeng)
2038 * osd: optimize Finisher (Xinze Chi)
2039 * osd: store PG metadata in per-collection objects for better concurrency (Sage Weil)
2040 * pyrados: add object lock support (#6114 Mehdi Abaakouk)
2041 * pyrados: fix misnamed wait_* routings (#10104 Dan Mick)
2042 * pyrados: misc cleanups (Kefu Chai)
2043 * qa: add large auth ticket tests (Ilya Dryomov)
2044 * qa: many 'make check' improvements (Loic Dachary)
2045 * qa: misc tests (Loic Dachary, Yan, Zheng)
2046 * rgw: conditional PUT on ETag (#8562 Ray Lv)
2047 * rgw: fix error codes (#10334 #10329 Yehuda Sadeh)
2048 * rgw: index swift keys appropriately (#10471 Yehuda Sadeh)
2049 * rgw: prevent illegal bucket policy that doesn't match placement rule (Yehuda Sadeh)
2050 * rgw: run radosgw as apache with systemd (#10125 Loic Dachary)
2051 * rgw: support X-Storage-Policy header for Swift storage policy compat (Yehuda Sadeh)
2052 * rgw: use \r\n for http headers (#9254 Yehuda Sadeh)
2053 * rpm: misc fixes (Key Dreyer)
2054
2055
2056 v0.90
2057 =====
2058
2059 This is the last development release before Christmas. There are some
2060 API cleanups for librados and librbd, and lots of bug fixes across the
2061 board for the OSD, MDS, RGW, and CRUSH. The OSD also gets support for
2062 discard (potentially helpful on SSDs, although it is off by default), and there
2063 are several improvements to ceph-disk.
2064
2065 The next two development releases will be getting a slew of new
2066 functionality for hammer. Stay tuned!
2067
2068 Upgrading
2069 ---------
2070
2071 * Previously, the formatted output of 'ceph pg stat -f ...' was a full
2072 pg dump that included all metadata about all PGs in the system. It
2073 is now a concise summary of high-level PG stats, just like the
2074 unformatted 'ceph pg stat' command.
2075
2076 * All JSON dumps of floating point values were incorrecting surrounding the
2077 value with quotes. These quotes have been removed. Any consumer of structured
2078 JSON output that was consuming the floating point values was previously having
2079 to interpret the quoted string and will most likely need to be fixed to take
2080 the unquoted number.
2081
2082 Notable Changes
2083 ---------------
2084
2085 * arch: fix NEON feaeture detection (#10185 Loic Dachary)
2086 * build: adjust build deps for yasm, virtualenv (Jianpeng Ma)
2087 * build: improve build dependency tooling (Loic Dachary)
2088 * ceph-disk: call partx/partprobe consistency (#9721 Loic Dachary)
2089 * ceph-disk: fix dmcrypt key permissions (Loic Dachary)
2090 * ceph-disk: fix umount race condition (#10096 Blaine Gardner)
2091 * ceph-disk: init=none option (Loic Dachary)
2092 * ceph-monstore-tool: fix shutdown (#10093 Loic Dachary)
2093 * ceph-objectstore-tool: fix import (#10090 David Zafman)
2094 * ceph-objectstore-tool: many improvements and tests (David Zafman)
2095 * ceph.spec: package rbd-replay-prep (Ken Dreyer)
2096 * common: add 'perf reset ...' admin command (Jianpeng Ma)
2097 * common: do not unlock rwlock on destruction (Federico Simoncelli)
2098 * common: fix block device discard check (#10296 Sage Weil)
2099 * common: remove broken CEPH_LOCKDEP optoin (Kefu Chai)
2100 * crush: fix tree bucket behavior (Rongze Zhu)
2101 * doc: add build-doc guidlines for Fedora and CentOS/RHEL (Nilamdyuti Goswami)
2102 * doc: enable rbd cache on openstack deployments (Sebastien Han)
2103 * doc: improved installation nots on CentOS/RHEL installs (John Wilkins)
2104 * doc: misc cleanups (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
2105 * doc: new man pages (Nilamdyuti Goswami)
2106 * doc: update release descriptions (Ken Dreyer)
2107 * doc: update sepia hardware inventory (Sandon Van Ness)
2108 * librados: only export public API symbols (Jason Dillaman)
2109 * libradosstriper: fix stat strtoll (Dongmao Zhang)
2110 * libradosstriper: fix trunc method (#10129 Sebastien Ponce)
2111 * librbd: fix list_children from invalid pool ioctxs (#10123 Jason Dillaman)
2112 * librbd: only export public API symbols (Jason Dillaman)
2113 * many coverity fixes (Danny Al-Gaaf)
2114 * mds: 'flush journal' admin command (John Spray)
2115 * mds: fix MDLog IO callback deadlock (John Spray)
2116 * mds: fix deadlock during journal probe vs purge (#10229 Yan, Zheng)
2117 * mds: fix race trimming log segments (Yan, Zheng)
2118 * mds: store backtrace for stray dir (Yan, Zheng)
2119 * mds: verify backtrace when fetching dirfrag (#9557 Yan, Zheng)
2120 * mon: add max pgs per osd warning (Sage Weil)
2121 * mon: fix *_ratio* units and types (Sage Weil)
2122 * mon: fix JSON dumps to dump floats as flots and not strings (Sage Weil)
2123 * mon: fix formatter 'pg stat' command output (Sage Weil)
2124 * msgr: async: several fixes (Haomai Wang)
2125 * msgr: simple: fix rare deadlock (Greg Farnum)
2126 * osd: batch pg log trim (Xinze Chi)
2127 * osd: clean up internal ObjectStore interface (Sage Weil)
2128 * osd: do not abort deep scrub on missing hinfo (#10018 Loic Dachary)
2129 * osd: fix ghobject_t formatted output to include shard (#10063 Loic Dachary)
2130 * osd: fix osd peer check on scrub messages (#9555 Sage Weil)
2131 * osd: fix pgls filter ops (#9439 David Zafman)
2132 * osd: flush snapshots from cache tier immediately (Sage Weil)
2133 * osd: keyvaluestore: fix getattr semantics (Haomai Wang)
2134 * osd: keyvaluestore: fix key ordering (#10119 Haomai Wang)
2135 * osd: limit in-flight read requests (Jason Dillaman)
2136 * osd: log when scrub or repair starts (Loic Dachary)
2137 * osd: support for discard for journal trim (Jianpeng Ma)
2138 * qa: fix osd create dup tests (#10083 Loic Dachary)
2139 * rgw: add location header when object is in another region (VRan Liu)
2140 * rgw: check timestamp on s3 keystone auth (#10062 Abhishek Lekshmanan)
2141 * rgw: make sysvinit script set ulimit -n properly (Sage Weil)
2142 * systemd: better systemd unit files (Owen Synge)
2143 * tests: ability to run unit tests under docker (Loic Dachary)
2144
2145
2146 v0.89
2147 =====
2148
2149 This is the second development release since Giant. The big items
2150 include the first batch of scrub patchs from Greg for CephFS, a rework
2151 in the librados object listing API to properly handle namespaces, and
2152 a pile of bug fixes for RGW. There are also several smaller issues
2153 fixed up in the performance area with buffer alignment and memory
2154 copies, osd cache tiering agent, and various CephFS fixes.
2155
2156 Upgrading
2157 ---------
2158
2159 * New ability to list all objects from all namespaces can fail or
2160 return incomplete results when not all OSDs have been upgraded.
2161 Features rados --all ls, rados cppool, rados export, rados
2162 cache-flush-evict-all and rados cache-try-flush-evict-all can also
2163 fail or return incomplete results.
2164
2165 Notable Changes
2166 ---------------
2167
2168 * buffer: add list::get_contiguous (Sage Weil)
2169 * buffer: avoid rebuild if buffer already contiguous (Jianpeng Ma)
2170 * ceph-disk: improved systemd support (Owen Synge)
2171 * ceph-disk: set guid if reusing journal partition (Dan van der Ster)
2172 * ceph-fuse, libcephfs: allow xattr caps in inject_release_failure (#9800 John Spray)
2173 * ceph-fuse, libcephfs: fix I_COMPLETE_ORDERED checks (#9894 Yan, Zheng)
2174 * ceph-fuse: fix dentry invalidation on 3.18+ kernels (#9997 Yan, Zheng)
2175 * crush: fix detach_bucket (#10095 Sage Weil)
2176 * crush: fix several bugs in adjust_item_weight (Rongze Zhu)
2177 * doc: add dumpling to firefly upgrade section (#7679 John Wilkins)
2178 * doc: document erasure coded pool operations (#9970 Loic Dachary)
2179 * doc: file system osd config settings (Kevin Dalley)
2180 * doc: key/value store config reference (John Wilkins)
2181 * doc: update openstack docs for Juno (Sebastien Han)
2182 * fix cluster logging from non-mon daemons (Sage Weil)
2183 * init-ceph: check for systemd-run before using it (Boris Ranto)
2184 * librados: fix infinite loop with skipped map epochs (#9986 Ding Dinghua)
2185 * librados: fix iterator operator= bugs (#10082 David Zafman, Yehuda Sadeh)
2186 * librados: fix null deref when pool DNE (#9944 Sage Weil)
2187 * librados: fix timer race from recent refactor (Sage Weil)
2188 * libradosstriper: fix shutdown hang (Dongmao Zhang)
2189 * librbd: don't close a closed parent in failure path (#10030 Jason Dillaman)
2190 * librbd: fix diff test (#10002 Josh Durgin)
2191 * librbd: fix locking for readahead (#10045 Jason Dillaman)
2192 * librbd: refactor unit tests to use fixtures (Jason Dillaman)
2193 * many many coverity cleanups (Danny Al-Gaaf)
2194 * mds: a whole bunch of initial scrub infrastructure (Greg Farnum)
2195 * mds: fix compat_version for MClientSession (#9945 John Spray)
2196 * mds: fix reply snapbl (Yan, Zheng)
2197 * mon: allow adding tiers to fs pools (#10135 John Spray)
2198 * mon: fix MDS health status from peons (#10151 John Spray)
2199 * mon: fix caching for min_last_epoch_clean (#9987 Sage Weil)
2200 * mon: fix error output for add_data_pool (#9852 Joao Eduardo Luis)
2201 * mon: include entity name in audit log for forwarded requests (#9913 Joao Eduardo Luis)
2202 * mon: paxos: allow reads while proposing (#9321 #9322 Joao Eduardo Luis)
2203 * msgr: asyncmessenger: add kqueue support (#9926 Haomai Wang)
2204 * osd, librados: revamp PG listing API to handle namespaces (#9031 #9262 #9438 David Zafman)
2205 * osd, mon: send intiial pg create time from mon to osd (#9887 David Zafman)
2206 * osd: allow whiteout deletion in cache pool (Sage Weil)
2207 * osd: cache pool: ignore min flush age when cache is full (Xinze Chi)
2208 * osd: erasure coding: allow bench.sh to test ISA backend (Yuan Zhou)
2209 * osd: erasure-code: encoding regression tests, corpus (#9420 Loic Dachary)
2210 * osd: fix journal shutdown race (Sage Weil)
2211 * osd: fix object age eviction (Zhiqiang Wang)
2212 * osd: fix object atime calculation (Xinze Chi)
2213 * osd: fix past_interval display bug (#9752 Loic Dachary)
2214 * osd: journal: fix alignment checks, avoid useless memmove (Jianpeng Ma)
2215 * osd: journal: update committed_thru after replay (#6756 Samuel Just)
2216 * osd: keyvaluestore_dev: optimization (Chendi Xue)
2217 * osd: make misdirected op checks robust for EC pools (#9835 Sage Weil)
2218 * osd: removed some dead code (Xinze Chi)
2219 * qa: parallelize make check (Loic Dachary)
2220 * qa: tolerate nearly-full disk for make check (Loic Dachary)
2221 * rgw: create subuser if needed when creating user (#10103 Yehuda Sadeh)
2222 * rgw: fix If-Modified-Since (VRan Liu)
2223 * rgw: fix content-length update (#9576 Yehuda Sadeh)
2224 * rgw: fix disabling of max_size quota (#9907 Dong Lei)
2225 * rgw: fix incorrect len when len is 0 (#9877 Yehuda Sadeh)
2226 * rgw: fix object copy content type (#9478 Yehuda Sadeh)
2227 * rgw: fix user stags in get-user-info API (#9359 Ray Lv)
2228 * rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
2229 * rgw: return timestamp on GET/HEAD (#8911 Yehuda Sadeh)
2230 * rgw: set ETag on object copy (#9479 Yehuda Sadeh)
2231 * rgw: update bucket index on attr changes, for multi-site sync (#5595 Yehuda Sadeh)
2232
2233
2234 v0.88
2235 =====
2236
2237 This is the first development release after Giant. The two main
2238 features merged this round are the new AsyncMessenger (an alternative
2239 implementation of the network layer) from Haomai Wang at UnitedStack,
2240 and support for POSIX file locks in ceph-fuse and libcephfs from Yan,
2241 Zheng. There is also a big pile of smaller items that re merged while
2242 we were stabilizing Giant, including a range of smaller performance
2243 and bug fixes and some new tracepoints for LTTNG.
2244
2245 Notable Changes
2246 ---------------
2247
2248 * ceph-disk: Scientific Linux support (Dan van der Ster)
2249 * ceph-disk: respect --statedir for keyring (Loic Dachary)
2250 * ceph-fuse, libcephfs: POSIX file lock support (Yan, Zheng)
2251 * ceph-fuse, libcephfs: fix cap flush overflow (Greg Farnum, Yan, Zheng)
2252 * ceph-fuse, libcephfs: fix root inode xattrs (Yan, Zheng)
2253 * ceph-fuse, libcephfs: preserve dir ordering (#9178 Yan, Zheng)
2254 * ceph-fuse, libcephfs: trim inodes before reconnecting to MDS (Yan, Zheng)
2255 * ceph: do not parse injectargs twice (Loic Dachary)
2256 * ceph: make 'ceph -s' output more readable (Sage Weil)
2257 * ceph: new 'ceph tell mds.$name_or_rank_or_gid' (John Spray)
2258 * ceph: test robustness (Joao Eduardo Luis)
2259 * ceph_objectstore_tool: behave with sharded flag (#9661 David Zafman)
2260 * cephfs-journal-tool: fix journal import (#10025 John Spray)
2261 * cephfs-journal-tool: skip up to expire_pos (#9977 John Spray)
2262 * cleanup rados.h definitions with macros (Ilya Dryomov)
2263 * common: shared_cache unit tests (Cheng Cheng)
2264 * config: add $cctid meta variable (Adam Crume)
2265 * crush: fix buffer overrun for poorly formed rules (#9492 Johnu George)
2266 * crush: improve constness (Loic Dachary)
2267 * crushtool: add --location <id> command (Sage Weil, Loic Dachary)
2268 * default to libnss instead of crypto++ (Federico Gimenez)
2269 * doc: ceph osd reweight vs crush weight (Laurent Guerby)
2270 * doc: document the LRC per-layer plugin configuration (Yuan Zhou)
2271 * doc: erasure code doc updates (Loic Dachary)
2272 * doc: misc updates (Alfredo Deza, VRan Liu)
2273 * doc: preflight doc fixes (John Wilkins)
2274 * doc: update PG count guide (Gerben Meijer, Laurent Guerby, Loic Dachary)
2275 * keyvaluestore: misc fixes (Haomai Wang)
2276 * keyvaluestore: performance improvements (Haomai Wang)
2277 * librados: add rados_pool_get_base_tier() call (Adam Crume)
2278 * librados: cap buffer length (Loic Dachary)
2279 * librados: fix objecter races (#9617 Josh Durgin)
2280 * libradosstriper: misc fixes (Sebastien Ponce)
2281 * librbd: add missing python docstrings (Jason Dillaman)
2282 * librbd: add readahead (Adam Crume)
2283 * librbd: fix cache tiers in list_children and snap_unprotect (Adam Crume)
2284 * librbd: fix performance regression in ObjectCacher (#9513 Adam Crume)
2285 * librbd: lttng tracepoints (Adam Crume)
2286 * librbd: misc fixes (Xinxin Shu, Jason Dillaman)
2287 * mds: fix sessionmap lifecycle bugs (Yan, Zheng)
2288 * mds: initialize root inode xattr version (Yan, Zheng)
2289 * mds: introduce auth caps (John Spray)
2290 * mds: misc bugs (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
2291 * misc coverity fixes (Danny Al-Gaaf)
2292 * mon: add 'ceph osd rename-bucket ...' command (Loic Dachary)
2293 * mon: clean up auth list output (Loic Dachary)
2294 * mon: fix 'osd crush link' id resolution (John Spray)
2295 * mon: fix misc error paths (Joao Eduardo Luis)
2296 * mon: fix paxos off-by-one corner case (#9301 Sage Weil)
2297 * mon: new 'ceph pool ls [detail]' command (Sage Weil)
2298 * mon: wait for writeable before cross-proposing (#9794 Joao Eduardo Luis)
2299 * msgr: avoid useless new/delete (Haomai Wang)
2300 * msgr: fix delay injection bug (#9910 Sage Weil, Greg Farnum)
2301 * msgr: new AsymcMessenger alternative implementation (Haomai Wang)
2302 * msgr: prefetch data when doing recv (Yehuda Sadeh)
2303 * osd: add erasure code corpus (Loic Dachary)
2304 * osd: add misc tests (Loic Dachary, Danny Al-Gaaf)
2305 * osd: cleanup boost optionals (William Kennington)
2306 * osd: expose non-journal backends via ceph-osd CLI (Hoamai Wang)
2307 * osd: fix JSON output for stray OSDs (Loic Dachary)
2308 * osd: fix ioprio options (Loic Dachary)
2309 * osd: fix transaction accounting (Jianpeng Ma)
2310 * osd: misc optimizations (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
2311 * osd: use FIEMAP_FLAGS_SYNC instead of fsync (Jianpeng Ma)
2312 * rados: fix put of /dev/null (Loic Dachary)
2313 * rados: parse command-line arguments more strictly (#8983 Adam Crume)
2314 * rbd-fuse: fix memory leak (Adam Crume)
2315 * rbd-replay-many (Adam Crume)
2316 * rbd-replay: --anonymize flag to rbd-replay-prep (Adam Crume)
2317 * rbd: fix 'rbd diff' for non-existent objects (Adam Crume)
2318 * rbd: fix error when striping with format 1 (Sebastien Han)
2319 * rbd: fix export for image sizes over 2GB (Vicente Cheng)
2320 * rbd: use rolling average for rbd bench-write throughput (Jason Dillaman)
2321 * rgw: send explicit HTTP status string (Yehuda Sadeh)
2322 * rgw: set length for keystone token validation request (#7796 Yehuda Sadeh, Mark Kirkwood)
2323 * udev: fix rules for CentOS7/RHEL7 (Loic Dachary)
2324 * use clock_gettime instead of gettimeofday (Jianpeng Ma)
2325 * vstart.sh: set up environment for s3-tests (Luis Pabon)