Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / doc / changelog / v0.67.3.txt
1 commit 408cd61584c72c0d97b774b3d8f95c6b1b06341a
2 Author: Gary Lowell <gary.lowell@inktank.com>
3 Date:   Mon Sep 9 12:50:11 2013 -0700
4
5     v0.67.3
6
7 commit 17a7342b3b935c06610c58ab92a9a1d086923d32
8 Merge: b4252bf 10433bb
9 Author: Sage Weil <sage@inktank.com>
10 Date:   Sat Sep 7 13:34:45 2013 -0700
11
12     Merge pull request #574 from dalgaaf/fix/da-dumpling-cherry-picks
13     
14     init-radosgw*: fix status return value if radosgw isn't running
15     
16     Reviewed-by: Sage Weil <sage@inktank.com>
17
18 commit 10433bbe72dbf8eae8fae836e557a043610eb54e
19 Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
20 Date:   Sat Sep 7 11:30:15 2013 +0200
21
22     init-radosgw*: fix status return value if radosgw isn't running
23     
24     Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
25     (cherry picked from commit b5137baf651eaaa9f67e3864509e437f9d5c3d5a)
26
27 commit b4252bff79150a95e9d075dd0b5e146ba9bf2ee5
28 Author: Samuel Just <sam.just@inktank.com>
29 Date:   Thu Aug 22 11:19:37 2013 -0700
30
31     FileStore: add config option to disable the wbthrottle
32     
33     Backport: dumpling
34     Signed-off-by: Samuel Just <sam.just@inktank.com>
35     Reviewed-by: Sage Weil <sage@inktank.com>
36     (cherry picked from commit 3528100a53724e7ae20766344e467bf762a34163)
37
38 commit 699324e0910e5e07a1ac68df8cf1108e5671ec15
39 Author: Samuel Just <sam.just@inktank.com>
40 Date:   Thu Aug 22 11:19:52 2013 -0700
41
42     WBThrottle: use fdatasync instead of fsync
43     
44     Backport: dumpling
45     Signed-off-by: Samuel Just <sam.just@inktank.com>
46     Reviewed-by: Sage Weil <sage@inktank.com>
47     (cherry picked from commit d571825080f0bff1ed3666e95e19b78a738ecfe8)
48
49 commit 074717b4b49ae1a55bc867e5c34d43c51edc84a5
50 Author: Samuel Just <sam.just@inktank.com>
51 Date:   Thu Aug 29 15:08:58 2013 -0700
52
53     PGLog: initialize writeout_from in PGLog constructor
54     
55     Fixes: 6151
56     Backport: dumpling
57     Signed-off-by: Samuel Just <sam.just@inktank.com>
58     Introduced: f808c205c503f7d32518c91619f249466f84c4cf
59     Reviewed-by: Sage Weil <sage@inktank.com>
60     (cherry picked from commit 42d65b0a7057696f4b8094f7c686d467c075a64d)
61
62 commit c22d980cf42e580818dc9f526327518c0ddf8ff5
63 Author: Samuel Just <sam.just@inktank.com>
64 Date:   Tue Aug 27 08:49:14 2013 -0700
65
66     PGLog: maintain writeout_from and trimmed
67     
68     This way, we can avoid omap_rmkeyrange in the common append
69     and trim cases.
70     
71     Fixes: #6040
72     Backport: Dumpling
73     Signed-off-by: Samuel Just <sam.just@inktank.com>
74     (cherry picked from commit f808c205c503f7d32518c91619f249466f84c4cf)
75
76 commit 53c7ab4db00ec7034f5aa555231f9ee167f43201
77 Author: Samuel Just <sam.just@inktank.com>
78 Date:   Tue Aug 27 07:27:26 2013 -0700
79
80     PGLog: don't maintain log_keys_debug if the config is disabled
81     
82     Fixes: #6040
83     Backport: Dumpling
84     Signed-off-by: Samuel Just <sam.just@inktank.com>
85     (cherry picked from commit 1c0d75db1075a58d893d30494a5d7280cb308899)
86
87 commit 40dc489351383c2e35b91c3d4e76b633309716df
88 Author: Samuel Just <sam.just@inktank.com>
89 Date:   Mon Aug 26 23:19:45 2013 -0700
90
91     PGLog: move the log size check after the early return
92     
93     There really are stl implementations (like the one on my ubuntu 12.04
94     machine) which have a list::size() which is linear in the size of the
95     list.  That assert, therefore, is quite expensive!
96     
97     Fixes: #6040
98     Backport: Dumpling
99     Signed-off-by: Samuel Just <sam.just@inktank.com>
100     (cherry picked from commit fe68b15a3d82349f8941f5b9f70fcbb5d4bc7f97)
101
102 commit 4261eb5ec105b9c27605360910602dc367fd79f5
103 Author: Sage Weil <sage@inktank.com>
104 Date:   Tue Aug 13 17:16:08 2013 -0700
105
106     rbd.cc: relicense as LGPL2
107     
108     All past authors for rbd.cc have consented to relicensing from GPL to
109     LGPL2 via email:
110     
111     ---
112     
113     Date: Sat, 27 Jul 2013 01:59:36 +0200
114     From: Sylvain Munaut <s.munaut@whatever-company.com>
115     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
116     
117     I hereby consent to the relicensing of any contribution I made to the
118     aforementioned rbd.cc file from GPL to LGPL2.1.
119     
120     (I hope that'll be impressive enough, I did my best :p)
121     
122     btw, tnt@246tNt.com and s.munaut@whatever-company.com are both me.
123     
124     Cheers,
125     
126         Sylvain
127     
128     ---
129     
130     Date: Fri, 26 Jul 2013 17:00:48 -0700
131     From: Yehuda Sadeh <yehuda@inktank.com>
132     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
133     
134     I consent.
135     
136     ---
137     
138     Date: Fri, 26 Jul 2013 17:02:24 -0700
139     From: Josh Durgin <josh.durgin@inktank.com>
140     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
141     
142     I consent.
143     
144     ---
145     
146     Date: Fri, 26 Jul 2013 18:17:46 -0700
147     From: Stanislav Sedov <stas@freebsd.org>
148     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
149     
150     I consent.
151     
152     Thanks for taking care of it!
153     
154     ---
155     
156     Date: Fri, 26 Jul 2013 18:24:15 -0700
157     From: Colin McCabe <cmccabe@alumni.cmu.edu>
158     
159     I consent.
160     
161     cheers,
162     Colin
163     
164     ---
165     
166     Date: Sat, 27 Jul 2013 07:08:12 +0200
167     From: Christian Brunner <christian@brunner-muc.de>
168     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
169     
170     I consent
171     
172     Christian
173     
174     ---
175     
176     Date: Sat, 27 Jul 2013 12:17:34 +0300
177     From: Stratos Psomadakis <psomas@grnet.gr>
178     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
179     
180     Hi,
181     
182     I consent with the GPL -> LGL2.1 re-licensing.
183     
184     Thanks
185     Stratos
186     
187     ---
188     
189     Date: Sat, 27 Jul 2013 16:13:13 +0200
190     From: Wido den Hollander <wido@42on.com>
191     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
192     
193     I consent!
194     
195     You have my permission to re-license the code I wrote for rbd.cc to LGPL2.1
196     
197     ---
198     
199     Date: Sun, 11 Aug 2013 10:40:32 +0200
200     From: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
201     Subject: Re: btw
202     
203     Hi Sage,
204     
205     I agree to switch the license of ceph_argparse.py and rbd.cc from GPL2
206     to LGPL2.
207     
208     Regards
209     
210     Danny Al-Gaaf
211     
212     ---
213     
214     Date: Tue, 13 Aug 2013 17:15:24 -0700
215     From: Dan Mick <dan.mick@inktank.com>
216     Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
217     
218     I consent to relicense any contributed code that I wrote under LGPL2.1 license.
219     
220     ---
221     
222     ...and I consent too.  Drop the exception from COPYING and debian/copyright
223     files.
224     
225     Signed-off-by: Sage Weil <sage@inktank.com>
226     (cherry picked from commit 2206f55761c675b31078dea4e7dd66f2666d7d03)
227
228 commit 211c5f13131e28b095a1f3b72426128f1db22218
229 Author: Yehuda Sadeh <yehuda@inktank.com>
230 Date:   Fri Aug 23 15:39:20 2013 -0700
231
232     rgw: flush pending data when completing multipart part upload
233     
234     Fixes: #6111
235     Backport: dumpling
236     When completing the part upload we need to flush any data that we
237     aggregated and didn't flush yet. With earlier code didn't have to deal
238     with it as for multipart upload we didn't have any pending data.
239     What we do now is we call the regular atomic data completion
240     function that takes care of it.
241     
242     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
243     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
244     (cherry picked from commit 9a551296e0811f2b65972377b25bb28dbb42f575)
245
246 commit 1a9651010aab51c9be2edeccd80e9bd11f5177ce
247 Author: Yehuda Sadeh <yehuda@inktank.com>
248 Date:   Mon Aug 26 19:46:43 2013 -0700
249
250     rgw: check object name after rebuilding it in S3 POST
251     
252     Fixes: #6088
253     Backport: bobtail, cuttlefish, dumpling
254     
255     When posting an object it is possible to provide a key
256     name that refers to the original filename, however we
257     need to verify that in the end we don't end up with an
258     empty object name.
259     
260     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
261     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
262     (cherry picked from commit c8ec532fadc0df36e4b265fe20a2ff3e35319744)
263
264 commit 1bd74a020b93f154b2d4129d512f6334387de7c7
265 Author: Sage Weil <sage@inktank.com>
266 Date:   Thu Aug 22 17:46:45 2013 -0700
267
268     mon/MonClient: release pending outgoing messages on shutdown
269     
270     This fixes a small memory leak when we have messages queued for the mon
271     when we shut down.  It is harmless except for the valgrind leak check
272     noise that obscures real leaks.
273     
274     Backport: dumpling
275     Signed-off-by: Sage Weil <sage@inktank.com>
276     (cherry picked from commit 309569a6d0b7df263654b7f3f15b910a72f2918d)
277
278 commit 24f2669783e2eb9d9af5ecbe106efed93366ba63
279 Author: Yehuda Sadeh <yehuda@inktank.com>
280 Date:   Thu Aug 29 13:06:33 2013 -0700
281
282     rgw: change watch init ordering, don't distribute if can't
283     
284     Backport: dumpling
285     
286     Moving back the watch initialization after the zone init,
287     as the zone info holds the control pool name. Since zone
288     init might need to create a new system object (that needs
289     to distribute cache), don't try to distribute cache if
290     watch is not yet initialized.
291     
292     Reviewed-by: Sage Weil <sage@inktank.com>
293     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
294     (cherry picked from commit 1d1f7f18dfbdc46fdb09a96ef973475cd29feef5)
295
296 commit a708c8ab52e5b1476405a1f817c23b8845fbaab3
297 Author: Sage Weil <sage@inktank.com>
298 Date:   Fri Aug 30 09:41:29 2013 -0700
299
300     ceph-post-file: use mktemp instead of tempfile
301     
302     tempfile is a debian thing, apparently; mktemp is present everywhere.
303     
304     Signed-off-by: Sage Weil <sage@inktank.com>
305     (cherry picked from commit e60d4e09e9f11e3c34a05cd122341e06c7c889bb)
306
307 commit 625f13ee0d6cca48d61dfd65e00517d092552d1c
308 Author: Sage Weil <sage@inktank.com>
309 Date:   Wed Aug 28 09:50:11 2013 -0700
310
311     mon: discover mon addrs, names during election state too
312     
313     Currently we only detect new mon addrs and names during the probing phase.
314     For non-trivial clusters, this means we can get into a sticky spot when
315     we discover enough peers to form an quorum, but not all of them, and the
316     undiscovered ones are enough to break the mon ranks and prevent an
317     election.
318     
319     One way to work around this is to continue addr and name discovery during
320     the election.  We should also consider making the ranks less sensitive to
321     the undefined addrs; that is a separate change.
322     
323     Fixes: #4924
324     Backport: dumpling
325     Signed-off-by: Sage Weil <sage@inktank.com>
326     Tested-by: Bernhard Glomm <bernhard.glomm@ecologic.eu>
327     (cherry picked from commit c24028570015cacf1d9e154ffad80bec06a61e7c)
328
329 commit 83cfd4386c1fd0fa41aea345704e27f82b524ece
330 Author: Dan Mick <dan.mick@inktank.com>
331 Date:   Thu Aug 22 17:30:24 2013 -0700
332
333     ceph_rest_api.py: create own default for log_file
334     
335     common/config thinks the default log_file for non-daemons should be "".
336     Override that so that the default is
337         /var/log/ceph/{cluster}-{name}.{pid}.log
338     since ceph-rest-api is more of a daemon than a client.
339     
340     Fixes: #6099
341     Backport: dumpling
342     Signed-off-by: Dan Mick <dan.mick@inktank.com>
343     (cherry picked from commit 2031f391c3df68e0d9e381a1ef3fe58d8939f0a8)
344
345 commit 8a1da62d9564a32f7b8963fe298e1ac3ad0ea3d9
346 Author: Sage Weil <sage@inktank.com>
347 Date:   Fri Aug 16 17:59:11 2013 -0700
348
349     ceph-post-file: single command to upload a file to cephdrop
350     
351     Use sftp to upload to a directory that only this user and ceph devs can
352     access.
353     
354     Distribute an ssh key to connect to the account.  This will let us revoke
355     the key in the future if we feel the need.  Also distribute a known_hosts
356     file so that users have some confidence that they are connecting to the
357     real ceph drop account and not some third party.
358     
359     Signed-off-by: Sage Weil <sage@inktank.com>
360     Reviewed-by: Dan Mick <dan.mick@inktank.com>
361     (cherry picked from commit d08e05e463f1f7106a1f719d81b849435790a3b9)
362
363 commit 3f8663477b585dcb528fdd7047c50d9a52d24b95
364 Author: Gary Lowell <glowell@inktank.com>
365 Date:   Thu Aug 22 13:29:32 2013 -0700
366
367     ceph.spec.in:  remove trailing paren in previous commit
368     
369     Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
370
371 commit 23fb908cb3ac969c874ac12755d20ed2f636e1b9
372 Author: Gary Lowell <glowell@inktank.com>
373 Date:   Thu Aug 22 11:07:16 2013 -0700
374
375     ceph.spec.in:  Don't invoke debug_package macro on centos.
376     
377     If the redhat-rpm-config package is installed, the debuginfo rpms will
378     be built by default.   The build will fail when the package installed
379     and the specfile also invokes the macro.
380     
381     Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
382
383 commit 11f5853d8178ab60ab948d373c1a1f67324ce3bd
384 Author: Sage Weil <sage@inktank.com>
385 Date:   Sat Aug 24 14:04:09 2013 -0700
386
387     osd: install admin socket commands after signals
388     
389     This lets us tell by the presence of the admin socket commands whether
390     a signal will make us shut down cleanly.  See #5924.
391     
392     Signed-off-by: Sage Weil <sage@inktank.com>
393     Reviewed-by: Samuel Just <sam.just@inktank.com>
394     (cherry picked from commit c5b5ce120a8ce9116be52874dbbcc39adec48b5c)
395
396 commit 39adc0195e6016ce36828885515be1bffbc10ae1
397 Author: Sage Weil <sage@inktank.com>
398 Date:   Tue Aug 20 22:39:09 2013 -0700
399
400     ceph-disk: partprobe after creating journal partition
401     
402     At least one user reports that a partprobe is needed after creating the
403     journal partition.  It is not clear why sgdisk is not doing it, but this
404     fixes ceph-disk for them, and should be harmless for other users.
405     
406     Fixes: #5599
407     Tested-by: lurbs in #ceph
408     Signed-off-by: Sage Weil <sage@inktank.com>
409     (cherry picked from commit 2af59d5e81c5e3e3d7cfc50d9330d7364659c5eb)
410     (cherry picked from commit 3e42df221315679605d68b2875aab6c7eb6b3cc4)
411
412 commit 6a4fe7b9b068ae990d6404921a46631fe9ebcd31
413 Author: Sage Weil <sage@inktank.com>
414 Date:   Tue Aug 20 11:27:23 2013 -0700
415
416     mon/Paxos: always refresh after any store_state
417     
418     If we store any new state, we need to refresh the services, even if we
419     are still in the midst of Paxos recovery.  This is because the
420     subscription path will share any committed state even when paxos is
421     still recovering.  This prevents a race like:
422     
423      - we have maps 10..20
424      - we drop out of quorum
425      - we are elected leader, paxos recovery starts
426      - we get one LAST with committed states that trim maps 10..15
427      - we get a subscribe for map 10..20
428        - we crash because 10 is no longer on disk because the PaxosService
429          is out of sync with the on-disk state.
430     
431     Fixes: #6045
432     Backport: dumpling
433     Signed-off-by: Sage Weil <sage@inktank.com>
434     Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
435     (cherry picked from commit 981eda9f7787c83dc457f061452685f499e7dd27)
436
437 commit 13d396e46ed9200e4b9f21db2f0a8efbc5998d82
438 Author: Sage Weil <sage@inktank.com>
439 Date:   Tue Aug 20 11:27:09 2013 -0700
440
441     mon/Paxos: return whether store_state stored anything
442     
443     Signed-off-by: Sage Weil <sage@inktank.com>
444     Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
445     (cherry picked from commit 7e0848d8f88f156a05eef47a9f730b772b64fbf2)
446
447 commit f248383bacff76203fa94716cfdf6cf766da24a7
448 Author: Sage Weil <sage@inktank.com>
449 Date:   Tue Aug 20 11:26:57 2013 -0700
450
451     mon/Paxos: cleanup: use do_refresh from handle_commit
452     
453     This avoid duplicated code by using the helper created exactly for this
454     purpose.
455     
456     Signed-off-by: Sage Weil <sage@inktank.com>
457     Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
458     (cherry picked from commit b9dee2285d9fe8533fa98c940d5af7b0b81f3d33)
459
460 commit 02608a12d4e7592784148a62a47d568efc24079d
461 Author: Sage Weil <sage@inktank.com>
462 Date:   Thu Aug 15 21:48:06 2013 -0700
463
464     osdc/ObjectCacher: do not merge rx buffers
465     
466     We do not try to merge rx buffers currently.  Make that explicit and
467     documented in the code that it is not supported.  (Otherwise the
468     last_read_tid values will get lost and read results won't get applied
469     to the cache properly.)
470     
471     Signed-off-by: Sage Weil <sage@inktank.com>
472     (cherry picked from commit 1c50c446152ab0e571ae5508edb4ad7c7614c310)
473
474 commit 0e2bfe71965eeef29b47e8032637ea820a7ce49c
475 Author: Sage Weil <sage@inktank.com>
476 Date:   Thu Aug 15 21:47:18 2013 -0700
477
478     osdc/ObjectCacher: match reads with their original rx buffers
479     
480     Consider a sequence like:
481     
482      1- start read on 100~200
483            100~200 state rx
484      2- truncate to 200
485            100~100 state rx
486      3- start read on 200~200
487            100~100 state rx
488            200~200 state rx
489      4- get 100~200 read result
490     
491     Currently this makes us crash on
492     
493     osdc/ObjectCacher.cc: 738: FAILED assert(bh->length() <= start+(loff_t)length-opos)
494     
495     when processing the second 200~200 bufferhead (it is too big).  The
496     larger issue, though, is that we should not be looking at this data at
497     all; it has been truncated away.
498     
499     Fix this by marking each rx buffer with the read request that is sent to
500     fill it, and only fill it from that read request.  Then the first reply
501     will fill the first 100~100 extend but not touch the other extent; the
502     second read will do that.
503     
504     Signed-off-by: Sage Weil <sage@inktank.com>
505     (cherry picked from commit b59f930ae147767eb4c9ff18c3821f6936a83227)
506
507 commit 6b51c960715971a0351e8203d4896cb0c4138a3f
508 Author: Sage Weil <sage@inktank.com>
509 Date:   Thu Aug 22 15:54:48 2013 -0700
510
511     mon/Paxos: fix another uncommitted value corner case
512     
513     It is possible that we begin the paxos recovery with an uncommitted
514     value for, say, commit 100.  During last/collect we discover 100 has been
515     committed already.  But also, another node provides an uncommitted value
516     for 101 with the same pn.  Currently, we refuse to learn it, because the
517     pn is not strictly > than our current uncommitted pn... even though it is
518     the next last_committed+1 value that we need.
519     
520     There are two possible fixes here:
521     
522      - make this a >= as we can accept newer values from the same pn.
523      - discard our uncommitted value metadata when we commit the value.
524     
525     Let's do both!
526     
527     Fixes: #6090
528     Signed-off-by: Sage Weil <sage@inktank.com>
529     (cherry picked from commit fe5010380a3a18ca85f39403e8032de1dddbe905)
530
531 commit b3a280d5af9d06783d2698bd434940de94ab0fda
532 Author: Sage Weil <sage@inktank.com>
533 Date:   Fri Aug 23 11:45:35 2013 -0700
534
535     os: make readdir_r buffers larger
536     
537     PATH_MAX isn't quite big enough.
538     
539     Backport: dumpling, cuttlefish, bobtail
540     Signed-off-by: Sage Weil <sage@inktank.com>
541     (cherry picked from commit 99a2ff7da99f8cf70976f05d4fe7aa28dd7afae5)
542
543 commit 989a664ef0d1c716cab967f249112f595cf98c43
544 Author: Sage Weil <sage@inktank.com>
545 Date:   Fri Aug 23 11:45:08 2013 -0700
546
547     os: fix readdir_r buffer size
548     
549     The buffer needs to be big or else we're walk all over the stack.
550     
551     Backport: dumpling, cuttlefish, bobtail
552     Signed-off-by: Sage Weil <sage@inktank.com>
553     (cherry picked from commit 2df66d9fa214e90eb5141df4d5755b57e8ba9413)
554     
555     Conflicts:
556     
557         src/os/BtrfsFileStoreBackend.cc
558
559 commit a4cca31c82bf0e84272e01eb1b3188dfdb5b5615
560 Author: Yehuda Sadeh <yehuda@inktank.com>
561 Date:   Thu Aug 22 10:53:12 2013 -0700
562
563     rgw: fix crash when creating new zone on init
564     
565     Moving the watch/notify init before the zone init,
566     as we might need to send a notification.
567     
568     Reviewed-by: Sage Weil <sage@inktank.com>
569     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
570     (cherry picked from commit 3d55534268de7124d29bd365ea65da8d2f63e501)
571
572 commit 4cf6996803ef66f2b6083f73593259d45e2740a3
573 Author: Yehuda Sadeh <yehuda@inktank.com>
574 Date:   Mon Aug 19 08:40:16 2013 -0700
575
576     rgw: change cache / watch-notify init sequence
577     
578     Fixes: #6046
579     We were initializing the watch-notify (through the cache
580     init) before reading the zone info which was much too
581     early, as we didn't have the control pool name yet. Now
582     simplifying init/cleanup a bit, cache doesn't call watch/notify
583     init and cleanup directly, but rather states its need
584     through a virtual callback.
585     
586     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
587     Reviewed-by: Sage Weil <sage@inktank.com>
588     (cherry picked from commit d26ba3ab0374e77847c742dd00cb3bc9301214c2)
589
590 commit aea6de532b0b843c3a8bb76d10bab8476f0d7c09
591 Author: Alexandre Oliva <oliva@gnu.org>
592 Date:   Thu Aug 22 03:40:22 2013 -0300
593
594     enable mds rejoin with active inodes' old parent xattrs
595     
596     When the parent xattrs of active inodes that the mds attempts to open
597     during rejoin lack pool info (struct_v < 5), this field will be filled
598     in with -1, causing the mds to retry fetching a backtrace with a pool
599     number that matches the expected value, which fails and causes the
600     err==-ENOENT branch to be taken and retry pool 1, which succeeds, but
601     with pool -1, and so keeps on bouncing between the two retry cases
602     forever.
603     
604     This patch arranges for the mds to go along with pool -1 instead of
605     insisting that it be refetched, enabling it to complete recovery
606     instead of eating cpu, network bandwidth and metadata osd's resources
607     like there's no tomorrow, in what AFAICT is an infinite and very busy
608     loop.
609     
610     This is not a new problem: I've had it even before upgrading from
611     Cuttlefish to Dumpling, I'd just never managed to track it down, and
612     force-unmounting the filesystem and then restarting the mds was an
613     easier (if inconvenient) work-around, particularly because it always
614     hit when the filesystem was under active, heavy-ish use (or there
615     wouldn't be much reason for caps recovery ;-)
616     
617     There are two issues not addressed in this patch, however.  One is
618     that nothing seems to proactively update the parent xattr when it is
619     found to be outdated, so it remains out of date forever.  Not even
620     renaming top-level directories causes the xattrs to be recursively
621     rewritten.  AFAICT that's a bug.
622     
623     The other is that inodes that don't have a parent xattr (created by
624     even older versions of ceph) are reported as non-existing in the mds
625     rejoin message, because the absence of the parent xattr is signaled as
626     a missing inode (?failed to reconnect caps for missing inodes?).  I
627     suppose this may cause more serious recovery problems.
628     
629     I suppose a global pass over the filesystem tree updating parent
630     xattrs that are out-of-date would be desirable, if we find any parent
631     xattrs still lacking current information; it might make sense to
632     activate it as a background thread from the backtrace decoding
633     function, when it finds a parent xattr that's too out-of-date, or as a
634     separate client (ceph-fsck?).
635     
636     Backport: dumpling, cuttlefish
637     Signed-off-by: Alexandre Oliva <oliva@gnu.org>
638     Reviewed-by: Zheng, Yan <zheng.z.yan@intel.com>
639     (cherry picked from commit 617dc36d477fd83b2d45034fe6311413aa1866df)
640
641 commit 0738bdf92f5e5eb93add152a4135310ac7ea1c91
642 Author: David Disseldorp <ddiss@suse.de>
643 Date:   Mon Jul 29 17:05:44 2013 +0200
644
645     mds: remove waiting lock before merging with neighbours
646     
647     CephFS currently deadlocks under CTDB's ping_pong POSIX locking test
648     when run concurrently on multiple nodes.
649     The deadlock is caused by failed removal of a waiting_locks entry when
650     the waiting lock is merged with an existing lock, e.g:
651     
652     Initial MDS state (two clients, same file):
653     held_locks -- start: 0, length: 1, client: 4116, pid: 7899, type: 2
654               start: 2, length: 1, client: 4110, pid: 40767, type: 2
655     waiting_locks -- start: 1, length: 1, client: 4116, pid: 7899, type: 2
656     
657     Waiting lock entry 4116@1:1 fires:
658     handle_client_file_setlock: start: 1, length: 1,
659                             client: 4116, pid: 7899, type: 2
660     
661     MDS state after lock is obtained:
662     held_locks -- start: 0, length: 2, client: 4116, pid: 7899, type: 2
663               start: 2, length: 1, client: 4110, pid: 40767, type: 2
664     waiting_locks -- start: 1, length: 1, client: 4116, pid: 7899, type: 2
665     
666     Note that the waiting 4116@1:1 lock entry is merged with the existing
667     4116@0:1 held lock to become a 4116@0:2 held lock. However, the now
668     handled 4116@1:1 waiting_locks entry remains.
669     
670     When handling a lock request, the MDS calls adjust_locks() to merge
671     the new lock with available neighbours. If the new lock is merged,
672     then the waiting_locks entry is not located in the subsequent
673     remove_waiting() call because adjust_locks changed the new lock to
674     include the old locks.
675     This fix ensures that the waiting_locks entry is removed prior to
676     modification during merge.
677     
678     Signed-off-by: David Disseldorp <ddiss@suse.de>
679     Reviewed-by: Greg Farnum <greg@inktank.com>
680     (cherry picked from commit 476e4902907dfadb3709ba820453299ececf990b)
681
682 commit a0ac88272511d670b5c3756dda2d02c93c2e9776
683 Author: Dan Mick <dan.mick@inktank.com>
684 Date:   Tue Aug 20 11:10:42 2013 -0700
685
686     mon/PGMap: OSD byte counts 4x too large (conversion to bytes overzealous)
687     
688     Fixes: #6049
689     Signed-off-by: Dan Mick <dan.mick@inktank.com>
690     (cherry picked from commit eca53bbf583027397f0d5e050a76498585ecb059)
691
692 commit 87b19c33ce29e2ca4fc49a2adeb12d3f14ca90a9
693 Author: Alfredo Deza <alfredo.deza@inktank.com>
694 Date:   Fri Aug 23 08:56:07 2013 -0400
695
696     ceph-disk: specify the filetype when mounting
697     
698     Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
699     Reviewed-by: Sage Weil <sage@inktank.com>
700     (cherry picked from commit f040020fb2a7801ebbed23439159755ff8a3edbd)