Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / doc / changelog / v0.56.1.txt
1 commit e4a541624df62ef353e754391cbbb707f54b16f7
2 Author: Gary Lowell <gary.lowell@inktank.com>
3 Date:   Mon Jan 7 13:33:30 2013 -0800
4
5     v0.56.1
6
7 commit 9aecacda7fbf07f12b210f87cf3dbb53021b068d
8 Author: Sage Weil <sage@inktank.com>
9 Date:   Sun Jan 6 08:38:27 2013 -0800
10
11     msg/Pipe: prepare Message data for wire under pipe_lock
12     
13     We cannot trust the Message bufferlists or other structures to be
14     stable without pipe_lock, as another Pipe may claim and modify the sent
15     list items while we are writing to the socket.
16     
17     Related to #3678.
18     
19     Signed-off-by: Sage Weil <sage@inktank.com>
20     (cherry picked from commit d16ad9263d7b1d3c096f56c56e9631fae8509651)
21
22 commit 299dbad490df5e98c04f17fa8e486a718f3c121f
23 Author: Sage Weil <sage@inktank.com>
24 Date:   Sun Jan 6 08:33:01 2013 -0800
25
26     msgr: update Message envelope in encode, not write_message
27     
28     Fill out the Message header, footer, and calculate CRCs during
29     encoding, not write_message().  This removes most modifications from
30     Pipe::write_message().
31     
32     Signed-off-by: Sage Weil <sage@inktank.com>
33     (cherry picked from commit 40706afc66f485b2bd40b2b4b1cd5377244f8758)
34
35 commit 35d2f58305eab6c9b57a92269598b9729e2d8681
36 Author: Sage Weil <sage@inktank.com>
37 Date:   Sun Jan 6 08:25:40 2013 -0800
38
39     msg/Pipe: encode message inside pipe_lock
40     
41     This modifies bufferlists in the Message struct, and it is possible
42     for multiple instances of the Pipe to get references on the Message;
43     make sure they don't modify those bufferlists concurrently.
44     
45     Signed-off-by: Sage Weil <sage@inktank.com>
46     (cherry picked from commit 4cfc4903c6fb130b6ac9105baf1f66fbda797f14)
47
48 commit 9b23f195df43589d062da95a11abc07c79f3109b
49 Author: Sage Weil <sage@inktank.com>
50 Date:   Sat Jan 5 10:39:08 2013 -0800
51
52     msg/Pipe: associate sending msgs to con inside lock
53     
54     Associate a sending message with the connection inside the pipe_lock.
55     This way if a racing thread tries to steal these messages it will
56     be sure to reset the con point *after* we do such that it the con
57     pointer is valid in encode_payload() (and later).
58     
59     This may be part of #3678.
60     
61     Signed-off-by: Sage Weil <sage@inktank.com>
62     (cherry picked from commit a058f16113efa8f32eb5503d5443aa139754d479)
63
64 commit 6229b5a06f449a470d3211ea94c1c5faf7100876
65 Author: Sage Weil <sage@inktank.com>
66 Date:   Sat Jan 5 09:29:50 2013 -0800
67
68     msg/Pipe: fix msg leak in requeue_sent()
69     
70     The sent list owns a reference to each message.
71     
72     Signed-off-by: Sage Weil <sage@inktank.com>
73     (cherry picked from commit 2a1eb466d3f8e25ec8906b3ca6118a14c4e269d2)
74
75 commit 6a00ce0dc24626fdfa210ddec6334bde3c8a20db
76 Author: Sage Weil <sage@inktank.com>
77 Date:   Mon Jan 7 12:58:39 2013 -0800
78
79     osdc/Objecter: fix linger_ops iterator invalidation on pool deletion
80     
81     The call to check_linger_pool_dne() may unregister the linger request,
82     invalidating the iterator.  To avoid this, increment the iterator at
83     the top of the loop.
84     
85     This mirror the fix in 4bf9078286d58c2cd4e85cb8b31411220a377092 for
86     regular non-linger ops.
87     
88     Fixes: #3734
89     Signed-off-by: Sage Weil <sage@inktank.com>
90     Reviewed-by: Samuel Just <sam.just@inktank.com>
91     Reviewed-by: Greg Farnum <greg@inktank.com>
92     (cherry picked from commit 62586884afd56f2148205bdadc5a67037a750a9b)
93
94 commit a10950f91e6ba9c1620d8fd00a84fc59f983fcee
95 Author: Sage Weil <sage@inktank.com>
96 Date:   Sat Jan 5 20:53:49 2013 -0800
97
98     os/FileJournal: include limits.h
99     
100     Needed for IOV_MAX.
101     
102     Signed-off-by: Sage Weil <sage@inktank.com>
103     (cherry picked from commit ce49968938ca3636f48fe543111aa219f36914d8)
104
105 commit cd194ef3c7082993cae0892a97494f2a917ce2a7
106 Author: Sage Weil <sage@inktank.com>
107 Date:   Fri Jan 4 17:43:41 2013 -0800
108
109     osd: special case CALL op to not have RD bit effects
110     
111     In commit 20496b8d2b2c3779a771695c6f778abbdb66d92a we treat a CALL as
112     different from a normal "read", but we did not adjust the behavior
113     determined by the RD bit in the op.  We tried to fix that in
114     91e941aef9f55425cc12204146f26d79c444cfae, but changing the op code breaks
115     compatibility, so that was reverted.
116     
117     Instead, special-case CALL in the helper--the only point in the code that
118     actually checks for the RD bit.  (And fix one lingering user to use that
119     helper appropriately.)
120     
121     Fixes: #3731
122     Signed-off-by: Sage Weil <sage@inktank.com>
123     Reviewed-by: Dan Mick <dan.mick@inktank.com>
124     (cherry picked from commit 988a52173522e9a410ba975a4e8b7c25c7801123)
125
126 commit 921e06decebccc913c0e4f61916d00e62e7e1635
127 Author: Sage Weil <sage@inktank.com>
128 Date:   Fri Jan 4 20:46:48 2013 -0800
129
130     Revert "OSD: remove RD flag from CALL ops"
131     
132     This reverts commit 91e941aef9f55425cc12204146f26d79c444cfae.
133     
134     We cannot change this op code without breaking compatibility
135     with old code (client and server).  We'll have to special case
136     this op code instead.
137     
138     Signed-off-by: Sage Weil <sage@inktank.com>
139     Reviewed-by: Dan Mick <dan.mick@inktank.com>
140     (cherry picked from commit d3abd0fe0bb402ff403259d4b1a718a56331fc39)
141
142 commit 7513e9719a532dc538d838f68e47c83cc51fef82
143 Author: Samuel Just <sam.just@inktank.com>
144 Date:   Fri Jan 4 12:43:52 2013 -0800
145
146     ReplicatedPG: remove old-head optization from push_to_replica
147     
148     This optimization allowed the primary to push a clone as a single push in the
149     case that the head object on the replica is old and happens to be at the same
150     version as the clone.  In general, using head in clone_subsets is tricky since
151     we might be writing to head during the push.  calc_clone_subsets does not
152     consider head (probably for this reason).  Handling the clone from head case
153     properly would require blocking writes on head in the interim which is probably
154     a bad trade off anyway.
155     
156     Because the old-head optimization only comes into play if the replica's state
157     happens to fall on the last write to head prior to the snap that caused the
158     clone in question, it's not worth the complexity.
159     
160     Fixes: #3698
161     Signed-off-by: Samuel Just <sam.just@inktank.com>
162     Reviewed-by: Sage Weil <sage@inktank.com>
163     (cherry picked from commit e89b6ade63cdad315ab754789de24008cfe42b37)
164
165 commit c63c66463a567e8095711e7c853ac8feb065c5c5
166 Author: Sage Weil <sage@inktank.com>
167 Date:   Thu Jan 3 17:15:07 2013 -0800
168
169     os/FileStore: fix non-btrfs op_seq commit order
170     
171     The op_seq file is the starting point for journal replay.  For stable btrfs
172     commit mode, which is using a snapshot as a reference, we should write this
173     file before we take the snap.  We normally ignore current/ contents anyway.
174     
175     On non-btrfs file systems, however, we should only write this file *after*
176     we do a full sync, and we should then fsync(2) it before we continue
177     (and potentially trim anything from the journal).
178     
179     This fixes a serious bug that could cause data loss and corruption after
180     a power loss event.  For a 'kill -9' or crash, however, there was little
181     risk, since the writes were still captured by the host's cache.
182     
183     Fixes: #3721
184     Signed-off-by: Sage Weil <sage@inktank.com>
185     Reviewed-by: Samuel Just <sam.just@inktank.com>
186     (cherry picked from commit 28d59d374b28629a230d36b93e60a8474c902aa5)
187
188 commit b8f061dcdb808a6fc5ec01535b37560147b537de
189 Author: Samuel Just <sam.just@inktank.com>
190 Date:   Thu Jan 3 09:59:45 2013 -0800
191
192     OSD: for old osds, dispatch peering messages immediately
193     
194     Normally, we batch up peering messages until the end of
195     process_peering_events to allow us to combine many notifies, etc
196     to the same osd into the same message.  However, old osds assume
197     that the actiavtion message (log or info) will be _dispatched
198     before the first sub_op_modify of the interval.  Thus, for those
199     peers, we need to send the peering messages before we drop the
200     pg lock, lest we issue a client repop from another thread before
201     activation message is sent.
202     
203     Signed-off-by: Samuel Just <sam.just@inktank.com>
204     Reviewed-by: Sage Weil <sage@inktank.com>
205     (cherry picked from commit 4ae4dce5c5bb547c1ff54d07c8b70d287490cae9)
206
207 commit 67968d115daf51762dce65af46b9b843eda592b5
208 Author: Sage Weil <sage@inktank.com>
209 Date:   Wed Jan 2 22:38:53 2013 -0800
210
211     osd: move common active vs booting code into consume_map
212     
213     Push osdmaps to PGs in separate method from activate_map() (whose name
214     is becoming less and less accurate).
215     
216     Signed-off-by: Sage Weil <sage@inktank.com>
217     (cherry picked from commit a32d6c5dca081dcd8266f4ab51581ed6b2755685)
218
219 commit 34266e6bde9f36b1c46144d2341b13605eaa9abe
220 Author: Sage Weil <sage@inktank.com>
221 Date:   Wed Jan 2 22:20:06 2013 -0800
222
223     osd: let pgs process map advances before booting
224     
225     The OSD deliberate consumes and processes most OSDMaps from while it
226     was down before it marks itself up, as this is can be slow.  The new
227     threading code does this asynchronously in peering_wq, though, and
228     does not let it drain before booting the OSD.  The OSD can get into
229     a situation where it marks itself up but is not responsive or useful
230     because of the backlog, and only makes the situation works by
231     generating more osdmaps as result.
232     
233     Fix this by calling activate_map() even when booting, and when booting
234     draining the peering_wq on each call.  This is harmless since we are
235     not yet processing actual ops; we only need to be async when active.
236     
237     Fixes: #3714
238     Signed-off-by: Sage Weil <sage@inktank.com>
239     (cherry picked from commit 0bfad8ef2040a0dd4a0dc1d3abf3ab5b2019d179)
240
241 commit 4034f6c817d1efce5fb9eb8cc0a9327f9f7d7910
242 Author: Sage Weil <sage@inktank.com>
243 Date:   Fri Dec 28 13:07:18 2012 -0800
244
245     log: broadcast cond signals
246     
247     We were using a single cond, and only signalling one waiter.  That means
248     that if the flusher and several logging threads are waiting, and we hit
249     a limit, we the logger could signal another logger instead of the flusher,
250     and we could deadlock.
251     
252     Similarly, if the flusher empties the queue, it might signal only a single
253     logger, and that logger could re-signal the flusher, and the other logger
254     could wait forever.
255     
256     Intead, break the single cond into two: one for loggers, and one for the
257     flusher.  Always signal the (one) flusher, and always broadcast to all
258     loggers.
259     
260     Backport: bobtail, argonaut
261     Signed-off-by: Sage Weil <sage@inktank.com>
262     Reviewed-by: Dan Mick <dan.mick@inktank.com>
263     (cherry picked from commit 813787af3dbb99e42f481af670c4bb0e254e4432)
264
265 commit 2141454eee3a1727706d48f8efef92f8a2b98278
266 Author: Sage Weil <sage@inktank.com>
267 Date:   Wed Jan 2 13:58:44 2013 -0800
268
269     log: fix locking typo/stupid for dump_recent()
270     
271     We weren't locking m_flush_mutex properly, which in turn was leading to
272     racing threads calling dump_recent() and garbling the crash dump output.
273     
274     Backport: bobtail, argonaut
275     Signed-off-by: Sage Weil <sage@inktank.com>
276     Reviewed-by: Dan Mick <dan.mick@inktank.com>
277     (cherry picked from commit 43cba617aa0247d714632bddf31b9271ef3a1b50)
278
279 commit 936560137516a1fd5e55b52ccab59c408ac2c245
280 Author: Sage Weil <sage@inktank.com>
281 Date:   Fri Dec 28 16:48:22 2012 -0800
282
283     test_filejournal: optionally specify journal filename as an argument
284     
285     Signed-off-by: Sage Weil <sage@inktank.com>
286     (cherry picked from commit 483c6f76adf960017614a8641c4dcdbd7902ce33)
287
288 commit be0473bbb1feb8705be4fa8f827704694303a930
289 Author: Sage Weil <sage@inktank.com>
290 Date:   Fri Dec 28 16:48:05 2012 -0800
291
292     test_filejournal: test journaling bl with >IOV_MAX segments
293     
294     Signed-off-by: Sage Weil <sage@inktank.com>
295     (cherry picked from commit c461e7fc1e34fdddd8ff8833693d067451df906b)
296
297 commit de61932793c5791c770855e470e3b5b9ebb53dba
298 Author: Sage Weil <sage@inktank.com>
299 Date:   Fri Dec 28 16:47:28 2012 -0800
300
301     os/FileJournal: limit size of aio submission
302     
303     Limit size of each aio submission to IOV_MAX-1 (to be safe).  Take care to
304     only mark the last aio with the seq to signal completion.
305     
306     Signed-off-by: Sage Weil <sage@inktank.com>
307     (cherry picked from commit dda7b651895ab392db08e98bf621768fd77540f0)
308
309 commit ded454c669171d4038b087cfdad52a57da222c1f
310 Author: Sage Weil <sage@inktank.com>
311 Date:   Fri Dec 28 15:44:51 2012 -0800
312
313     os/FileJournal: logger is optional
314     
315     Signed-off-by: Sage Weil <sage@inktank.com>
316     (cherry picked from commit 076b418c7f03c5c62f811fdc566e4e2b776389b7)