Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / doc / changelog / v0.48.1argonaut.txt
1 commit a7ad701b9bd479f20429f19e6fea7373ca6bba7c
2 Author: Sage Weil <sage@inktank.com>
3 Date:   Mon Aug 13 14:58:51 2012 -0700
4
5     v0.48.1argonaut
6
7 commit d4849f2f8a8c213c266658467bc5f22763010bc2
8 Author: Yehuda Sadeh <yehuda@inktank.com>
9 Date:   Wed Aug 1 13:22:38 2012 -0700
10
11     rgw: fix usage trim call encoding
12     
13     Fixes: #2841.
14     Usage trim operation was encoding the wrong op structure (usage read).
15     Since the structures somewhat overlapped it somewhat worked, but user
16     info wasn't encoded.
17     
18     Backport: argonaut
19     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
20
21 commit 515952d07107d442889754ec3bd6a344fad25d58
22 Author: Yehuda Sadeh <yehuda@inktank.com>
23 Date:   Wed Aug 8 15:21:53 2012 -0700
24
25     cls_rgw: fix rgw_cls_usage_log_trim_op encode/decode
26     
27     It was not encoding user, adding that and reset version
28     compatibility.
29     This changes affects command interface, makes use of
30     radosgw-admin usage trim incompatible. Use of old
31     radosgw-admin usage trim should be avoided, as it may
32     remove more data than requested. In any case, upgraded
33     server code will not handle old client's trim requests.
34     
35     backport: argonaut
36     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
37
38 commit 2e77130d5c80220be1612b5499d422de620d2d0b
39 Author: Yehuda Sadeh <yehuda@inktank.com>
40 Date:   Tue Jul 31 16:17:22 2012 -0700
41
42     rgw: expand date format support
43     
44     Relaxing the date format parsing function to allow UTC
45     instead of GMT.
46     
47     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
48
49 commit 14fa77d9277b5ef5d0c6683504b368773b39ccc4
50 Author: Yehuda Sadeh <yehuda@inktank.com>
51 Date:   Thu Aug 2 11:13:05 2012 -0700
52
53     rgw: complete multipart upload can handle chunked encoding
54     
55     Fixes: #2878
56     We now allow complete multipart upload to use chunked encoding
57     when sending request data. With chunked encoding the HTTP_LENGTH
58     header is not required.
59     
60     Backport: argonaut
61     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
62
63 commit a06f7783fbcc02e775fc36f30e422fe0f9e0ec2d
64 Author: Yehuda Sadeh <yehuda@inktank.com>
65 Date:   Wed Aug 1 11:19:32 2012 -0700
66
67     rgw_xml: xml_handle_data() appends data string
68     
69     Fixes: #2879.
70     xml_handle_data() appends data to the object instead of just
71     replacing it. Parsed data can arrive in pieces, specifically
72     when data is escaped.
73     
74     Backport: argonaut
75     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
76
77 commit a8b224b9c4877a559ce420a2e04f19f68c8c5680
78 Author: Yehuda Sadeh <yehuda@inktank.com>
79 Date:   Wed Aug 1 13:09:41 2012 -0700
80
81     rgw: ETag is unquoted in multipart upload complete
82     
83     Fixes #2877.
84     Removing quotes from ETag before comparing it to what we
85     have when completing a multipart upload.
86     
87     Backport: argonaut
88     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
89
90 commit 22259c6efda9a5d55221fd036c757bf123796753
91 Author: Josh Durgin <josh.durgin@inktank.com>
92 Date:   Wed Aug 8 15:24:57 2012 -0700
93
94     MonMap: return error on failure in build_initial
95     
96     If mon_host fails to parse, return an error instead of success.
97     This avoids failing later on an assert monmap.size() > 0 in the
98     monmap in MonClient.
99     
100     Fixes: #2913
101     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
102
103 commit 49b2c7b5a79b8fb4a3941eca2cb0dbaf22f658b7
104 Author: Josh Durgin <josh.durgin@inktank.com>
105 Date:   Wed Aug 8 15:10:27 2012 -0700
106
107     addr_parsing: report correct error message
108     
109     getaddrinfo uses its return code to report failures.
110     
111     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
112
113 commit 7084f29544f431b7c6a3286356f2448ae0333eda
114 Author: Sage Weil <sage@inktank.com>
115 Date:   Wed Aug 8 14:01:53 2012 -0700
116
117     mkcephfs: use default osd_data, _journal values
118     
119     Signed-off-by: Sage Weil <sage@inktank.com>
120     Reviewed-by: Greg Farnum <greg@inktank.com>
121
122 commit 96b1a496cdfda34a5efdb6686becf0d2e7e3a1c0
123 Author: Sage Weil <sage@inktank.com>
124 Date:   Wed Aug 8 14:01:35 2012 -0700
125
126     mkcephfs: use new default keyring locations
127     
128     The ceph-conf command only parses the conf; it does not apply default
129     config values.  This breaks mkcephfs if values are not specified in the
130     config.
131     
132     Let ceph-osd create its own key, fix copying, and fix creation/copying for
133     the mds.
134     
135     Fixes: #2845
136     Reported-by: Florian Haas <florian@hastexo.com>
137     Signed-off-by: Sage Weil <sage@inktank.com>
138     Reviewed-by: Greg Farnum <greg@inktank.com>
139
140 commit 4bd466d6ed49c7192df4a5bf0d63bda5d7d7dd9a
141 Author: Sage Weil <sage@inktank.com>
142 Date:   Tue Jul 31 14:01:57 2012 -0700
143
144     osd: peering: detect when log source osd goes down
145     
146     The Peering state has a generic check based on the prior set osds that
147     will restart peering if one of them goes down (or one of the interesting
148     down ones comes up).  The GetLog state, however, can pull the log from
149     a peer that is not in the prior set if it got a notify from them (e.g., an
150     osd in an old interval that was down when the prior set was calculated).
151     If that osd goes down, we don't detect it and will block forward.
152     
153     Fix by adding a simple check in GetLog for the newest_update_osd going
154     down.
155     
156     (BTW GetMissing does not suffer from this problem because
157     peer_missing_requested is a subset of the prior set, so the Peering check
158     is sufficient.)
159     
160     Signed-off-by: Sage Weil <sage@inktank.com>
161     Reviewed-by: Samuel Just <sam.just@inktank.com>
162
163 commit 87defa88a0c6d6aafaa65437a6e4ddd92418f834
164 Author: Sylvain Munaut <tnt@246tNt.com>
165 Date:   Tue Jul 31 11:55:56 2012 -0700
166
167     rbd: fix off-by-one error in key name
168     
169     Fixes: #2846
170     Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
171
172 commit 37d5b46269c8a4227e5df61a88579d94f7b56772
173 Author: Sylvain Munaut <tnt@246tNt.com>
174 Date:   Tue Jul 31 11:54:29 2012 -0700
175
176     secret: return error on empty secret
177     
178     Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
179
180 commit 7b9d37c662313929b52011ddae47cc8abab99095
181 Author: Sage Weil <sage@inktank.com>
182 Date:   Sat Jul 28 10:05:47 2012 -0700
183
184     osd: set STRAY on pg load when non-primary
185     
186     The STRAY bit indicates that we should annouce ourselves to the primary,
187     but it is only set in start_peering_interval().  We also need to set it
188     initially, so that a PG that is loaded but whose role does not change
189     (e.g., the stray replica stays a stray) will notify the primary.
190     
191     Observed:
192      - osd starts up
193      - mapping does not change, STRAY not set
194      - does not announce to primary
195      - primary does not re-check must_have_unfound, objects appear unfound
196     
197     Fix this by initializing STRAY when pg is loaded or created whenever we
198     are not the primary.
199     
200     Fixes: #2866
201     Signed-off-by: Sage Weil <sage@inktank.com>
202
203 commit 96feca450c5505a06868bc012fe998a03371b77f
204 Author: Sage Weil <sage@inktank.com>
205 Date:   Fri Jul 27 16:03:26 2012 -0700
206
207     osd: peering: make Incomplete a Peering substate
208     
209     This allows us to still catch changes in the prior set that would affect
210     our conclusions (that we are incomplete) and, when they happen, restart
211     peering.
212     
213     Consider:
214      - calc prior set, osd A is down
215      - query everyone else, no good info
216      - set down, go to Incomplete (previously WaitActingChange) state.
217      - osd A comes back up (we do nothing)
218      - osd A sends notify message with good info (we ignore)
219     
220     By making this a Peering substate, we catch the Peering AdvMap reaction,
221     which will notice a prior set down osd is now up and move to Reset.
222     
223     Fixes: #2860
224     Signed-off-by: Sage Weil <sage@inktank.com>
225
226 commit a71e442fe620fa3a22ad9302413d8344a3a1a969
227 Author: Sage Weil <sage@inktank.com>
228 Date:   Fri Jul 27 15:39:40 2012 -0700
229
230     osd: peering: move to Incomplete when.. incomplete
231     
232     PG::choose_acting() may return false and *not* request an acting set change
233     if it can't find any suitable peers with enough info to recover.  In that
234     case, we should move to Incomplete, not WaitActingChange, just like we do
235     a bit lower in GetLog() if we have non-contiguous logs.  The state name is
236     more accurate, and this is also needed to fix bug #2860.
237     
238     Signed-off-by: Sage Weil <sage@inktank.com>
239
240 commit 623026d9bc8ea4c845eb3b06d79e0ca9bef50deb
241 Merge: 87b6e80 9db7809
242 Author: Sage Weil <sage@inktank.com>
243 Date:   Fri Jul 27 14:00:52 2012 -0700
244
245     Merge remote-tracking branch 'gh/stable' into stable-next
246
247 commit 9db78090451e609e3520ac3e57a5f53da03f9ee2
248 Author: Sage Weil <sage@inktank.com>
249 Date:   Thu Jul 26 16:35:00 2012 -0700
250
251     osd: fixing sharing of past_intervals on backfill restart
252     
253     We need to share past_intervals whenever we instantiate the PG on a peer.
254     In the PG activation case, this is based on whether our peer_info[] value
255     for that peer is dne().  However, the backfill code was updating the
256     peer info (history) in the block preceeding the dne() check, which meant
257     we never shared past_intervals in this case and the peer would have to
258     chew through a potentially large number of maps if the PG has not been
259     clean recently.
260     
261     Fix by checking dne() prior to the backfill block.  We still need to fill
262     in the message later because it isn't yet instantiated.
263     
264     Fixes: #2849
265     Signed-off-by: Sage Weil <sage@inktank.com>
266     Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
267
268 commit 87b6e8045a3a1ff6439d2684e960ad0dc8988b33
269 Merge: 81d72e5 7dfdf4f
270 Author: Sage Weil <sage@inktank.com>
271 Date:   Thu Jul 26 15:04:12 2012 -0700
272
273     Merge remote-tracking branch 'gh/wip-rbd-bid' into stable-next
274
275 commit 81d72e5d7ba4713eb7c290878d901e21c0709028
276 Author: Sage Weil <sage@inktank.com>
277 Date:   Mon Jul 23 10:47:10 2012 -0700
278
279     mon: make 'ceph osd rm ...' wipe out all state bits, not just EXISTS
280     
281     This ensures that when a new osd reclaims that id it behaves as if it were
282     really new.
283     
284     Backport: argonaut
285     Signed-off-by: Sage Weil <sage@inktank.com>
286
287 commit ad9c37f2c029f6eb372efb711b234014397057e9
288 Author: Sage Weil <sage@inktank.com>
289 Date:   Mon Jul 9 20:54:19 2012 -0700
290
291     test_stress_watch: just one librados instance
292     
293     This was creating a new cluster connection/session per iteration, and
294     along with it a few service threads and sockets and so forth.
295     
296     Unfortunately, librados leaks like a sieve, starting with CephContext
297     and ceph::crypto::init().  See #845 and #2067.
298     
299     Signed-off-by: Sage Weil <sage@inktank.com>
300
301 commit c60afe1842a48dd75944822c0872fce6a7229f5a
302 Merge: 8833050 35b1326
303 Author: Sage Weil <sage@inktank.com>
304 Date:   Thu Jul 26 15:03:50 2012 -0700
305
306     Merge commit '35b13266923f8095650f45562d66372e618c8824' into stable-next
307     
308     First batch of msgr fixes.
309
310 commit 88330505cc772a5528e9405d515aa2b945b0819e
311 Author: Samuel Just <sam.just@inktank.com>
312 Date:   Mon Jul 9 15:53:31 2012 -0700
313
314     ReplicatedPG: fix replay op ordering
315     
316     After a client reconnect, the client replays outstanding ops.  The
317     OSD then immediately responds with success if the op has already
318     committed (version < ReplicatedPG::get_first_in_progress).
319     Otherwise, we stick it in waiting_for_ondisk to be replied to when
320     eval_repop concludes that waitfor_disk is empty.
321     
322     Fixes #2508
323     
324     Signed-off-by: Samuel Just <sam.just@inktank.com>
325     
326     Conflicts:
327     
328         src/osd/ReplicatedPG.cc
329
330 commit 682609a9343d0488788b1c6b03bc437b7905e4d6
331 Author: Sage Weil <sage@inktank.com>
332 Date:   Wed Jul 18 12:55:35 2012 -0700
333
334     objecter: always resend linger registrations
335     
336     If a linger op (watch) is sent to the OSD and updates the object, and then
337     the client loses the reply, it will resend the request.  The OSD will see
338     that it is a dup, however, and not set up the in-memory session state for
339     the watch.  This in turn will break the watch (i.e., notifies won't
340     get delivered).
341     
342     Instead, always resend linger registration ops, so that we always have a
343     unique reqid and do the correct session registeration for each session.
344     
345      * track the tid of the registation op for each LingerOp
346      * mark registrations ops as should_resend=false; cancel as needed
347      * when we send a new registration op, cancel the old one to ensure we
348        ignore the reply.  This is needed becuase we resend linger ops on any
349        pg change, not just a primary change.
350      * drop the first_send arg to send_linger(), as we can now infer that
351        from register_tid == 0.
352     
353     The bug was easily reproduced with ms inject socket failures = 500 and the
354     test_stress_watch utility.
355     
356     Fixes: #2796
357     Signed-off-by: Sage Weil <sage@inktank.com>
358     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
359
360 commit 4d7d3e276967d555fed8a689976047f72c96c2db
361 Author: Sage Weil <sage@inktank.com>
362 Date:   Mon Jul 9 13:22:42 2012 -0700
363
364     osd: guard class call decoding
365     
366     Backport: argonaut
367     Signed-off-by: Sage Weil <sage@inktank.com>
368
369 commit 7fbbe4652ffb2826978aa1f1cacce4456d2ef1fc
370 Author: Sage Weil <sage@inktank.com>
371 Date:   Thu Jul 5 18:08:58 2012 -0700
372
373     librados: take lock when signaling notify cond
374     
375     When we are signaling the cond to indicate that a notify is complete,
376     take the appropriate lock.  This removes the possibility of a race
377     that loses our signal.  (That would be very difficult given that there
378     are network round trips involved, but this makes the lock/cond usage
379     "correct.")
380     
381     Signed-off-by: Sage Weil <sage@inktank.com>
382
383 commit 6ed01df412b4f4745c8f427a94446987c88b6bef
384 Author: Sage Weil <sage@inktank.com>
385 Date:   Sun Jul 22 07:46:11 2012 -0700
386
387     workqueue: kick -> wake or _wake, depending on locking
388     
389     Break kick() into wake() and _wake() methods, depending on whether the
390     lock is already held.  (The rename ensures that we audit/fix all
391     callers.)
392     
393     Signed-off-by: Sage Weil <sage@inktank.com>
394     
395     Conflicts:
396     
397         src/common/WorkQueue.h
398         src/osd/OSD.cc
399
400 commit d2d40dc3059d91450925534f361f2c03eec9ef88
401 Author: Sage Weil <sage@inktank.com>
402 Date:   Wed Jul 4 15:11:21 2012 -0700
403
404     client: fix locking for SafeCond users
405     
406     Need to wait on flock, not client_lock.
407     
408     Signed-off-by: Sage Weil <sage@inktank.com>
409
410 commit c963a21a8620779d97d6cbb51572551bdbb50d0b
411 Author: Sage Weil <sage@inktank.com>
412 Date:   Thu Jul 26 15:01:05 2012 -0700
413
414     filestore: check for EIO in read path
415     
416     Check for EIO in read methods and helpers.  Try to do checks in low-level
417     methods (e.g., lfn_*()) to avoid duplication in higher-level methods.
418     
419     The transaction apply function already checks for EIO on writes, and will
420     generate a nicer error message, so we can largely ignore the write path,
421     as long as errors get passed up correctly.
422     
423     Signed-off-by: Sage Weil <sage@inktank.com>
424
425 commit 6bd89aeb1bf3b1cbb663107ae6bcda8a84dd8601
426 Author: Sage Weil <sage@inktank.com>
427 Date:   Thu Jul 26 09:07:46 2012 -0700
428
429     filestore: add 'filestore fail eio' option, default true
430     
431     By default we will assert/fail/crash on EIO from the underlying fs.  We
432     already do this in the write path, but not the read path, or in various
433     internal infrastructure.
434     
435     Signed-off-by: Sage Weil <sage@inktank.com>
436
437 commit e9b5a289838f17f75efbf9d1640b949e7485d530
438 Author: Sage Weil <sage@inktank.com>
439 Date:   Tue Jul 24 13:53:03 2012 -0700
440
441     config: fix 'config set' admin socket command
442     
443     Fixes: #2832
444     Backport: argonaut
445     Signed-off-by: Sage Weil <sage@inktank.com>
446
447 commit 1a6cd9659abcdad0169fe802ed47967467c448b3
448 Author: Sage Weil <sage@inktank.com>
449 Date:   Wed Jul 25 16:35:09 2012 -0700
450
451     osd: break potentially large transaction into pieces
452     
453     We do a similar trick elsewhere.  Control this via a tunable.  Eventually
454     we'll control the others (in a non-stable branch).
455     
456     Signed-off-by: Sage Weil <sage@inktank.com>
457
458 commit 15e1622959f5a46f7a98502cdbaebfda2247a35b
459 Author: Sage Weil <sage@inktank.com>
460 Date:   Wed Jul 25 14:53:34 2012 -0700
461
462     osd: only commit past intervals at end of parallel build
463     
464     We don't check for gaps in the past intervals, so we should only commit
465     this when we are completely done.  Otherwise a partial run and rsetart will
466     leave the gap in place, which may confuse the peering code that relies on
467     this information.
468     
469     Signed-off-by: Sage Weil <sage@inktank.com>
470
471 commit 16302acefd8def98fc4597366d6ba2845e17fcb6
472 Author: Sage Weil <sage@inktank.com>
473 Date:   Wed Jul 25 10:57:35 2012 -0700
474
475     osd: generate past intervals in parallel on boot
476     
477     Even though we aggressively share past_intervals with notifies etc, it is
478     still possible for an osd to get buried behind a pile of old maps and need
479     to generate these if it has been out of the cluster for a while.  This has
480     happened to us in the past but, sadly, we did not merge the work then.
481     On the bright side, this implementation is much much much cleaner than the
482     old one because of the pg_interval_t helper we've since switched to.
483     
484     On bootup, we look at the intervals each pg needs and calclate the union,
485     and then iterate over that map range.  The inner bit of the loop is
486     functionally identical to PG::build_past_intervals(), keeping the per-pg
487     state in the pistate struct.
488     
489     Backport: argonaut
490     Signed-off-by: Sage Weil <sage@inktank.com>
491     Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
492     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
493
494 commit fca65ff52a5f7d49bcac83b3b2232963a879e446
495 Author: Sage Weil <sage@inktank.com>
496 Date:   Wed Jul 25 10:58:07 2012 -0700
497
498     osd: move calculation of past_interval range into helper
499     
500     PG::generate_past_intervals() first calculates the range over which it
501     needs to generate past intervals.  Do this in a helper function.
502     
503     Signed-off-by: Sage Weil <sage@inktank.com>
504     Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
505     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
506
507 commit 5979351ef3d3d03bced9286f79cbc22524c4a8de
508 Author: Sage Weil <sage@inktank.com>
509 Date:   Wed Jul 25 10:58:28 2012 -0700
510
511     osd: fix map epoch boot condition
512     
513     We only want to join the cluster if we can catch up to the latest
514     osdmap with a small number of maps, in this case a single map message.
515     
516     Backport: argonaut
517     Signed-off-by: Sage Weil <sage@inktank.com>
518     Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
519
520 commit 8c7186d02627f8255273009269d50955172efb52
521 Author: Sage Weil <sage@inktank.com>
522 Date:   Tue Jul 24 20:18:01 2012 -0700
523
524     mon: ignore pgtemp messages from down osds
525     
526     Signed-off-by: Sage Weil <sage@inktank.com>
527
528 commit b17f54671f350fd4247f895f7666d46860736728
529 Author: Sage Weil <sage@inktank.com>
530 Date:   Tue Jul 24 20:16:04 2012 -0700
531
532     mon: ignore osd_alive messages from down osds
533     
534     Signed-off-by: Sage Weil <sage@inktank.com>
535
536 commit 7dfdf4f8de16155edd434534e161e06ba7c79d7d
537 Author: Josh Durgin <josh.durgin@inktank.com>
538 Date:   Mon Jul 23 14:05:53 2012 -0700
539
540     librbd: replace assign_bid with client id and random number
541     
542     The assign_bid method has issues with replay because it is a write
543     that also returns data. This means that the replayed operation would
544     return success, but no data, and cause a create to fail. Instead, let
545     the client set the bid based on its global id and a random number.
546     
547     This only affects the creation of new images, since the bid is put
548     into an opaque string as part of the object prefix.
549     
550     Keep the server side assign_bid around in case there are old clients
551     still using it.
552     
553     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
554
555 commit dc2d67112163bee8b111f75ae3e3ca42884b09b4
556 Author: Dan Mick <dan.mick@inktank.com>
557 Date:   Mon Jul 9 14:11:23 2012 -0700
558
559     librados: add new constructor to form a Rados object from IoCtx
560     
561     This creates a separate reference to an existing connection, for
562     use when a client holding IoCtx needs to consult another (say,
563     for rbd cloning)
564     
565     Signed-off-by: Dan Mick <dan.mick@inktank.com>
566     Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
567
568 commit c99671201de9d9cdf03bbf0f4e28e8afb70c280c
569 Author: Sage Weil <sage@inktank.com>
570 Date:   Wed Jul 18 19:49:58 2012 -0700
571
572     add CRUSH_TUNABLES feature bit
573     
574     Signed-off-by: Sage Weil <sage@inktank.com>
575
576 commit 0b579546cfddec35095b2aec753028d8e63f3533
577 Author: Josh Durgin <josh.durgin@inktank.com>
578 Date:   Wed Jul 18 10:24:58 2012 -0700
579
580     ObjectCacher: fix cache_bytes_hit accounting
581     
582     Misses are not hits!
583     
584     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
585
586 commit 2869039b79027e530c2863ebe990662685e4bbe6
587 Author: Pascal de Bruijn | Unilogic Networks B.V <pascal@unilogicnetworks.net>
588 Date:   Wed Jul 11 15:23:16 2012 +0200
589
590     Robustify ceph-rbdnamer and adapt udev rules
591     
592     Below is a patch which makes the ceph-rbdnamer script more robust and
593     fixes a problem with the rbd udev rules.
594     
595     On our setup we encountered a symlink which was linked to the wrong rbd:
596     
597       /dev/rbd/mypool/myrbd -> /dev/rbd1
598     
599     While that link should have gone to /dev/rbd3 (on which a
600     partition /dev/rbd3p1 was present).
601     
602     Now the old udev rule passes %n to the ceph-rbdnamer script, the problem
603     with %n is that %n results in a value of 3 (for rbd3), but in a value of
604     1 (for rbd3p1), so it seems it can't be depended upon for rbdnaming.
605     
606     In the patch below the ceph-rbdnamer script is made more robust and it
607     now it can be called in various ways:
608     
609       /usr/bin/ceph-rbdnamer /dev/rbd3
610       /usr/bin/ceph-rbdnamer /dev/rbd3p1
611       /usr/bin/ceph-rbdnamer rbd3
612       /usr/bin/ceph-rbdnamer rbd3p1
613       /usr/bin/ceph-rbdnamer 3
614     
615     Even with all these different styles of calling the modified script, it
616     should now return the same rbdname. This change "has" to be combined
617     with calling it from udev with %k though.
618     
619     With that fixed, we hit the second problem. We ended up with:
620     
621       /dev/rbd/mypool/myrbd -> /dev/rbd3p1
622     
623     So the rbdname was symlinked to the partition on the rbd instead of the
624     rbd itself. So what probably went wrong is udev discovering the disk and
625     running ceph-rbdnamer which resolved it to myrbd so the following
626     symlink was created:
627     
628       /dev/rbd/mypool/myrbd -> /dev/rbd3
629     
630     However partitions would be discovered next and ceph-rbdnamer would be
631     run with rbd3p1 (%k) as parameter, resulting in the name myrbd too, with
632     the previous correct symlink being overwritten with a faulty one:
633     
634       /dev/rbd/mypool/myrbd -> /dev/rbd3p1
635     
636     The solution to the problem is in differentiating between disks and
637     partitions in udev and handling them slightly differently. So with the
638     patch below partitions now get their own symlinks in the following style
639     (which is fairly consistent with other udev rules):
640     
641       /dev/rbd/mypool/myrbd-part1 -> /dev/rbd3p1
642     
643     Please let me know any feedback you have on this patch or the approach
644     used.
645     
646     Regards,
647     Pascal de Bruijn
648     Unilogic B.V.
649     
650     Signed-off-by: Pascal de Bruijn <pascal@unilogicnetworks.net>
651     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
652
653 commit 426384f6beccabf9e9b9601efcb8147904ec97c2
654 Author: Sage Weil <sage@inktank.com>
655 Date:   Mon Jul 16 16:02:14 2012 -0700
656
657     log: apply log_level to stderr/syslog logic
658     
659     In non-crash situations, we want to make sure the message is both below the
660     syslog/stderr threshold and also below the normal log threshold.  Otherwise
661     we get anything we gather on those channels, even when the log level is
662     low.
663     
664     Signed-off-by: Sage Weil <sage@inktank.com>
665
666 commit 8dafcc5c1906095cb7d15d648a7c1d7524df3768
667 Author: Sage Weil <sage@inktank.com>
668 Date:   Mon Jul 16 15:40:53 2012 -0700
669
670     log: fix event gather condition
671     
672     We should gather an event if it is below the log or gather threshold.
673     
674     Previously we were only gathering if we were going to print it, which makes
675     the dump no more useful than what was already logged.
676     
677     Signed-off-by: Sage Weil <sage@inktank.com>
678
679 commit ec5cd6def9817039704b6cc010f2797a700d8500
680 Author: Samuel Just <sam.just@inktank.com>
681 Date:   Mon Jul 16 13:11:24 2012 -0700
682
683     PG::RecoveryState::Stray::react(LogEvt&): reset last_pg_scrub
684     
685     We need to reset the last_pg_scrub data in the osd since we
686     are replacing the info.
687     
688     Probably fixes #2453
689     
690     In cases like 2453, we hit the following backtrace:
691     
692          0> 2012-05-19 17:24:09.113684 7fe66be3d700 -1 osd/OSD.h: In function 'void OSD::unreg_last_pg_scrub(pg_t, utime_t)' thread 7fe66be3d700 time 2012-05-19 17:24:09.095719
693     osd/OSD.h: 840: FAILED assert(last_scrub_pg.count(p))
694     
695      ceph version 0.46-313-g4277d4d (commit:4277d4d3378dde4264e2b8d211371569219c6e4b)
696      1: (OSD::unreg_last_pg_scrub(pg_t, utime_t)+0x149) [0x641f49]
697      2: (PG::proc_primary_info(ObjectStore::Transaction&, pg_info_t const&)+0x5e) [0x63383e]
698      3: (PG::RecoveryState::ReplicaActive::react(PG::RecoveryState::MInfoRec const&)+0x4a) [0x633eda]
699      4: (boost::statechart::detail::reaction_result boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::local_react_impl_non_empty::local_react_impl<boost::mpl::list3<boost::statechart::custom_reaction<PG::RecoveryState::MQuery>, boost::statechart::custom_reaction<PG::RecoveryState::MInfoRec>, boost::statechart::custom_reaction<PG::RecoveryState::MLogRec> >, boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0> >(boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>&, boost::statechart::event_base const&, void const*)+0x130) [0x6466a0]
700      5: (boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)+0x81) [0x646791]
701      6: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::send_event(boost::statechart::event_base const&)+0x5b) [0x63dfcb]
702      7: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x11) [0x63e0f1]
703      8: (PG::RecoveryState::handle_info(int, pg_info_t&, PG::RecoveryCtx*)+0x177) [0x616987]
704      9: (OSD::handle_pg_info(std::tr1::shared_ptr<OpRequest>)+0x665) [0x5d3d15]
705      10: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x2a0) [0x5d7370]
706      11: (OSD::_dispatch(Message*)+0x191) [0x5dd4a1]
707      12: (OSD::ms_dispatch(Message*)+0x153) [0x5ddda3]
708      13: (SimpleMessenger::dispatch_entry()+0x863) [0x77fbc3]
709      14: (SimpleMessenger::DispatchThread::entry()+0xd) [0x746c5d]
710      15: (()+0x7efc) [0x7fe679b1fefc]
711      16: (clone()+0x6d) [0x7fe67815089d]
712      NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
713     
714     Because we don't clear the scrub state before reseting info,
715     the last_scrub_stamp state in the info.history structure
716     changes without updating the osd state resulting in the
717     above assert failure.
718     
719     Backport: stable
720     
721     Signed-off-by: Samuel Just <sam.just@inktank.com>
722
723 commit 248cfaddd0403c7bae8e1533a3d2e27d1a335b9b
724 Author: Samuel Just <sam.just@inktank.com>
725 Date:   Mon Jul 9 17:57:03 2012 -0700
726
727     ReplicatedPG: don't warn if backfill peer stats don't match
728     
729     pinfo.stats might be wrong if we did log-based recovery on the
730     backfilled portion in addition to continuing backfill.
731     
732     bug #2750
733     
734     Signed-off-by: Samuel Just <sam.just@inktank.com>
735
736 commit bcb1073f9171253adc37b67ee8d302932ba1667b
737 Author: Sage Weil <sage@inktank.com>
738 Date:   Sun Jul 15 20:30:34 2012 -0700
739
740     mon/MonitorStore: always O_TRUNC when writing states
741     
742     It is possible for a .new file to already exist, potentially with a
743     larger size.  This would happen if:
744     
745      - we were proposing a different value
746      - we crashed (or were stopped) before it got renamed into place
747      - after restarting, a different value was proposed and accepted.
748     
749     This isn't so unlikely for the log state machine, where we're
750     aggregating random messages.  O_TRUNC ensure we avoid getting the tail
751     end of some previous junk.
752     
753     I observed #2593 and found that a logm state value had a larger size on
754     one mon (after slurping) than the others, pointing to put_bl_sn_map().
755     
756     While we are at it, O_TRUNC put_int() too; the same type of bug is
757     possible there, too.
758     
759     Fixes: #2593
760     Signed-off-by: Sage Weil <sage@inktank.com>
761
762 commit 41a570778a51fe9a36a5b67a177d173889e58363
763 Author: Sage Weil <sage@inktank.com>
764 Date:   Sat Jul 14 14:31:34 2012 -0700
765
766     osd: based misdirected op role calc on acting set
767     
768     We want to look at the acting set here, nothing else.  This was causing us
769     to erroneously queue ops for later (wasting memory) and to erroneously
770     print out a 'misdrected op' message in the cluster log (confusion and
771     incorrect [but ignored] -ENXIO reply).
772     
773     Fixes: #2022
774     Signed-off-by: Sage Weil <sage@inktank.com>
775
776 commit b3d077c61e977e8ebb91288aa2294fb21c197fe7
777 Author: Josh Durgin <josh.durgin@inktank.com>
778 Date:   Fri Jul 13 09:42:20 2012 -0700
779
780     qa: download tests from specified branch
781     
782     These python tests aren't installed, so they need to be downloaded
783     
784     Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
785
786 commit e855cb247b5a9eda6845637e2da5b6358f69c2ed
787 Author: Yehuda Sadeh <yehuda@inktank.com>
788 Date:   Mon Jun 25 09:47:37 2012 -0700
789
790     rgw: don't override subuser perm mask if perm not specified
791     
792     Bug #2650. We were overriding subuser perm mask whenever subuser
793     was modified, even if perm mask was not passed.
794     
795     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
796
797 commit d6c766ea425d87a2f2405c08dcec66f000a4e1a0
798 Author: James Page <james.page@ubuntu.com>
799 Date:   Wed Jul 11 11:34:21 2012 -0700
800
801     debian: fix ceph-fs-common-dbg depends
802     
803     Signed-off-by: James Page <james.page@ubuntu.com>
804
805 commit 95e8d87bc3fb12580e4058401674b93e19df6e02
806 Author: Yehuda Sadeh <yehuda@inktank.com>
807 Date:   Wed Jul 11 11:52:24 2012 -0700
808
809     rados tool: remove -t param option for target pool
810     
811     Bug #2772. This fixes an issue that was introduced when we
812     added the 'rados cp' command. The -t param was already used
813     for rados bench. With this change the only way to specify
814     a target pool is using --target-pool.
815     Though this problem is post argonaut, the 'rados cp' command
816     has been backported, so we need this fix there too.
817     
818     Backport: argonaut
819     
820     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
821
822 commit 5b10778399d5bee602e57035df7d40092a649c06
823 Author: Sage Weil <sage@inktank.com>
824 Date:   Wed Jul 11 09:19:00 2012 -0700
825
826     Makefile: don't install crush headers
827     
828     This is leftover from when we built a libcrush.so.  We can re-add when we
829     start doing that again.
830     
831     Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
832     Signed-off-by: Sage Weil <sage@inktank.com>
833
834 commit 35b13266923f8095650f45562d66372e618c8824
835 Author: Sage Weil <sage@inktank.com>
836 Date:   Tue Jul 10 13:18:27 2012 -0700
837
838     msgr: take over existing Connection on Pipe replacement
839     
840     If a new pipe/socket is taking over an existing session, it should also
841     take over the Connection* associated with the existing session.  Because
842     we cannot clear existing->connection_state, we just take another reference.
843     
844     Clean up the comments a bit while we're here.
845     
846     This affects MDS<->client sessions when reconnecting after a socket fault.
847     It probably also affects intra-cluster (osd/osd, mds/mds, mon/mon)
848     sessions as well, but I did not confirm that.
849     
850     Backport: argonaut
851     Signed-off-by: Sage Weil <sage@inktank.com>
852
853 commit b387077b1d019ee52b28bc3bc5305bfb53dfd892
854 Author: Sage Weil <sage@inktank.com>
855 Date:   Sun Jul 8 20:33:12 2012 -0700
856
857     debian: include librados-config in librados-dev
858     
859     Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
860     Signed-off-by: Sage Weil <sage@inktank.com>
861
862 commit 03c2dc244af11b711e2514fd5f32b9bfa34183f6
863 Author: Sage Weil <sage@inktank.com>
864 Date:   Tue Jul 3 13:04:28 2012 -0700
865
866     lockdep: increase max locks
867     
868     Hit this limit with the rados api tests.
869     
870     Signed-off-by: Sage Weil <sage@inktank.com>
871
872 commit b554d112c107efe78ec64f85b5fe588f1e7137ce
873 Author: Sage Weil <sage@inktank.com>
874 Date:   Tue Jul 3 12:07:28 2012 -0700
875
876     config: add unlocked version of get_my_sections; use it internally
877     
878     Signed-off-by: Sage Weil <sage@inktank.com>
879
880 commit 01da287b8fdc07262be252f1a7c115734d3cc328
881 Author: Sage Weil <sage@inktank.com>
882 Date:   Tue Jul 3 08:20:06 2012 -0700
883
884     config: fix lock recursion in get_val_from_conf_file()
885     
886     Introduce a private, already-locked version.
887     
888     Signed-off-by: Sage Weil <sage@inktank.com>
889
890 commit c73c64a0f722477a5b0db93da2e26e313a5f52ba
891 Author: Sage Weil <sage@inktank.com>
892 Date:   Tue Jul 3 08:15:08 2012 -0700
893
894     config: fix recursive lock in parse_config_files()
895     
896     The _impl() helper is only called from parse_config_files(); don't retake
897     the lock.
898     
899     Signed-off-by: Sage Weil <sage@inktank.com>
900
901 commit 6646e891ff0bd31c935d1ce0870367b1e086ddfd
902 Author: Sage Weil <sage@inktank.com>
903 Date:   Tue Jul 3 18:51:02 2012 -0700
904
905     rgw: initialize fields of RGWObjEnt
906     
907     This fixes various valgrind warnings triggered by the s3test
908     test_object_create_unreadable.
909     
910     Signed-off-by: Sage Weil <sage@inktank.com>
911
912 commit b33553aae63f70ccba8e3d377ad3068c6144c99a
913 Author: Yehuda Sadeh <yehuda@inktank.com>
914 Date:   Fri Jul 6 13:14:53 2012 -0700
915
916     rgw: handle response-* params
917     
918     Handle response-* params that set response header field values.
919     Fixes #2734, #2735.
920     Backport: argonaut
921     
922     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
923
924 commit 74f687501a8a02ef248a76f061fbc4d862a9abc4
925 Author: Sage Weil <sage@inktank.com>
926 Date:   Wed Jul 4 13:59:04 2012 -0700
927
928     osd: add missing formatter close_section() to scrub status
929     
930     Also add braces to make the open/close matchups easier to see.  Broken
931     by f36617392710f9b3538bfd59d45fd72265993d57.
932     
933     Signed-off-by: Sage Weil <sage@inktank.com>
934
935 commit 020b29961303b12224524ddf78c0c6763a61242e
936 Author: Mike Ryan <mike.ryan@inktank.com>
937 Date:   Wed Jun 27 14:14:30 2012 -0700
938
939     pg: report scrub status
940     
941     Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
942
943 commit db6d83b3ed51c07b361b27d2e5ce3227a51e2c60
944 Author: Mike Ryan <mike.ryan@inktank.com>
945 Date:   Wed Jun 27 13:30:45 2012 -0700
946
947     pg: track who we are waiting for maps from
948     
949     Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
950
951 commit e1d4855fa18b1cda85923ad9debd95768260d4eb
952 Author: Mike Ryan <mike.ryan@inktank.com>
953 Date:   Tue Jun 26 16:25:27 2012 -0700
954
955     pg: reduce scrub write lock window
956     
957     Wait for all replicas to construct the base scrub map before finalizing
958     the scrub and locking out writes.
959     
960     Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
961
962 commit 27409aa1612c1512bf393de22b62bbfe79b104c1
963 Author: Yehuda Sadeh <yehuda@inktank.com>
964 Date:   Thu Jul 5 15:52:51 2012 -0700
965
966     rgw: don't store bucket info indexed by bucket_id
967     
968     Issue #2701. This info wasn't really used anywhere and we weren't
969     removing it. It was also sharing the same pool namespace as the
970     info indexed by bucket name, which is bad.
971     
972     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
973
974 commit 9814374a2b40e15c13eb03ce6b8e642b0f7f93e4
975 Author: Yehuda Sadeh <yehuda@inktank.com>
976 Date:   Thu Jul 5 14:59:22 2012 -0700
977
978     test_rados_tool.sh: test copy pool
979     
980     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
981
982 commit d75100667a539baf47c79d752b787ed5dcb51d7a
983 Author: Yehuda Sadeh <yehuda@inktank.com>
984 Date:   Thu Jul 5 13:42:23 2012 -0700
985
986     rados tool: copy object in chunks
987     
988     Instead of reading the entire object and then writing it,
989     we read it in chunks.
990     
991     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
992
993 commit 16ea64fbdebb7a74e69e80a18d98f35d68b8d9a1
994 Author: Yehuda Sadeh <yehuda@inktank.com>
995 Date:   Fri Jun 29 14:43:00 2012 -0700
996
997     rados tool: copy entire pool
998     
999     A new rados tool command that copies an entire pool
1000     into another existing pool.
1001     
1002     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1003
1004 commit 960c2124804520e81086df97905a299c8dd4e08c
1005 Author: Yehuda Sadeh <yehuda@inktank.com>
1006 Date:   Fri Jun 29 14:09:08 2012 -0700
1007
1008     rados tool: copy object
1009     
1010     New rados command: rados cp <src-obj> [dest-obj]
1011     
1012     Requires specifying source pool. Target pool and locator can be specified.
1013     The new command preserves object xattrs and omap data.
1014     
1015     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1016
1017 commit 23d31d3e2aa7f2b474a7b8e9d40deb245d8be9de
1018 Author: Sage Weil <sage@inktank.com>
1019 Date:   Fri Jul 6 08:47:44 2012 -0700
1020
1021     ceph.spec.in: add ceph-disk-{activate,prepare}
1022     
1023     Reported-by: Jimmy Tang <jtang@tchpc.tcd.ie>
1024     Signed-off-by: Sage Weil <sage@inktank.com>
1025
1026 commit ea11c7f9d8fd9795e127cfd7e8a1f28d4f5472e9
1027 Author: Wido den Hollander <wido@widodh.nl>
1028 Date:   Thu Jul 5 15:29:54 2012 +0200
1029
1030     Allow URL-safe base64 cephx keys to be decoded.
1031     
1032     In these cases + and / are replaced by - and _ to prevent problems when using
1033     the base64 strings in URLs.
1034     
1035     Signed-off-by: Wido den Hollander <wido@widodh.nl>
1036     Signed-off-by: Sage Weil <sage@inktank.com>
1037
1038 commit f67fe4e368b5f250f0adfb183476f5f294e8a529
1039 Author: Wido den Hollander <wido@widodh.nl>
1040 Date:   Wed Jul 4 15:46:04 2012 +0200
1041
1042     librados: Bump the version to 0.48
1043     
1044     Signed-off-by: Wido den Hollander <wido@widodh.nl>
1045     Signed-off-by: Sage Weil <sage@inktank.com>
1046
1047 commit 35b9ec881aecf84b3a49ec0395d7208de36dc67d
1048 Author: Yehuda Sadeh <yehuda@inktank.com>
1049 Date:   Tue Jun 26 17:28:51 2012 -0700
1050
1051     rgw-admin: use correct modifier with strptime
1052     
1053     Bug #2658: used %I (12h) instead of %H (24h)
1054     
1055     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1056
1057 commit da251fe88503d32b86113ee0618db7c446d34853
1058 Author: Yehuda Sadeh <yehuda@inktank.com>
1059 Date:   Thu Jun 21 15:40:27 2012 -0700
1060
1061     rgw: send both swift x-storage-token and x-auth-token
1062     
1063     older clients need x-storage-token, newer x-auth-token
1064     
1065     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1066
1067 commit 4c19ecb9a34e77e71d523a0a97e17f747bd5767d
1068 Author: Yehuda Sadeh <yehuda@inktank.com>
1069 Date:   Thu Jun 21 15:17:19 2012 -0700
1070
1071     rgw: radosgw-admin date params now also accept time
1072     
1073     The date format now is "YYYY-MM-DD[ hh:mm:ss]". Got rid of
1074     the --time param for the old ops log stuff.
1075     
1076     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1077     
1078     Conflicts:
1079     
1080         src/test/cli/radosgw-admin/help.t
1081
1082 commit 6958aeb898fc683159483bfbb798f069a9b5330a
1083 Author: Yehuda Sadeh <yehuda@inktank.com>
1084 Date:   Thu Jun 21 13:14:47 2012 -0700
1085
1086     rgw-admin: fix usage help
1087     
1088     s/show/trim
1089     
1090     Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
1091
1092 commit 83c043f803ab2ed74fa9a84ae9237dd7df2a0c57
1093 Author: Sage Weil <sage@inktank.com>
1094 Date:   Tue Jul 3 14:07:16 2012 -0700
1095
1096     radosgw-admin: fix clit test
1097     
1098     Signed-off-by: Sage Weil <sage@inktank.com>
1099
1100 commit 5674158163e9c1d50985796931240b237676b74d
1101 Author: Sage Weil <sage@inktank.com>
1102 Date:   Tue Jul 3 11:32:57 2012 -0700
1103
1104     ceph: fix cli help test
1105     
1106     Signed-off-by: Sage Weil <sage@inktank.com>
1107
1108 commit 151bf0eef59acae2d1fcf3f0feb8b6aa963dc2f6
1109 Author: Samuel Just <sam.just@inktank.com>
1110 Date:   Tue Jul 3 11:23:16 2012 -0700
1111
1112     ReplicatedPG: remove faulty scrub assert in sub_op_modify_applied
1113     
1114     This assert assumed that all ops submitted before MOSDRepScrub was
1115     submitted were processed by the time that MOSDRepScrub was
1116     processed.  In fact, MOSDRepScrub's scrub_to may refer to a
1117     last_update yet to be seen by the replica.
1118     
1119     Bug #2693
1120     
1121     Signed-off-by: Samuel Just <sam.just@inktank.com>
1122
1123 commit 32833e88a1ad793fa4be86101ce9c22b6f677c06
1124 Author: Kyle Bader <kyle.bader@dreamhost.com>
1125 Date:   Tue Jul 3 11:20:38 2012 -0700
1126
1127     ceph: better usage
1128     
1129     Signed-off-by: Kyle Bader <kyle.bader@dreamhost.com>
1130
1131 commit 67455c21879c9c117f6402259b5e2da84524e169
1132 Author: Sage Weil <sage@inktank.com>
1133 Date:   Tue Jul 3 09:20:35 2012 -0700
1134
1135     debian: strip new ceph-mds package
1136     
1137     Reported-by: Amon Ott <a.ott@m-privacy.de>
1138     Signed-off-by: Sage Weil <sage@inktank.com>
1139
1140 commit b53cdb97d15f9276a9b26bec9f29034149f93358
1141 Author: Sage Weil <sage@inktank.com>
1142 Date:   Tue Jul 3 06:46:10 2012 -0700
1143
1144     config: remove bad argparse_flag argument in parse_option()
1145     
1146     This is wrong, and thankfully valgrind picks it up.
1147     
1148     Signed-off-by: Sage Weil <sage@inktank.com>
1149
1150 commit f7d4e39740fd2afe82ac40c711bd3fe7a282e816
1151 Author: Sage Weil <sage@inktank.com>
1152 Date:   Sun Jul 1 17:23:28 2012 -0700
1153
1154     msgr: restart_queue when replacing existing pipe and taking over the queue
1155     
1156     The queue may have been previously stopped (by discard_queue()), and needs
1157     to be restarted.
1158     
1159     Fixes consistent failures from the mon_recovery.py integration tests.
1160     
1161     Signed-off-by: Sage Weil <sage@inktank.com>
1162
1163 commit 5dfd2a512d309f7f641bcf7c43277f08cf650b01
1164 Author: Sage Weil <sage@inktank.com>
1165 Date:   Sun Jul 1 15:37:31 2012 -0700
1166
1167     msgr: choose incoming connection if ours is STANDBY
1168     
1169     If the connect_seq matches, but our existing connection is in STANDBY, take
1170     the incoming one.  Otherwise, the other end will wait indefinitely for us
1171     to connect but we won't.
1172     
1173     Alternatively, we could "win" the race and trigger a connection by sending
1174     a keepalive (or similar), but that is more work; we may as well accept the
1175     incoming connection we have now.
1176     
1177     This removes STANDBY from the acceptable WAIT case states.  It also keeps
1178     responsibility squarely on the shoulders of the peer with something to
1179     deliver.
1180     
1181     Without this patch, a 3-osd vstart cluster with
1182     'ms inject socket failures = 100' and rados bench write -b 4096 would start
1183     generating slow request warnings after a few minutes due to the osds
1184     failing to connect to each other.  With the patch, I complete a 10 minute
1185     run without problems.
1186     
1187     Signed-off-by: Sage Weil <sage@inktank.com>
1188
1189 commit b7007a159f6d941fa8313a24af5810ce295b36ca
1190 Author: Sage Weil <sage@inktank.com>
1191 Date:   Thu Jun 28 17:50:47 2012 -0700
1192
1193     msgr: preserve incoming message queue when replacing pipes
1194     
1195     If we replace an existing pipe with a new one, move the incoming queue
1196     of messages that have not yet been dispatched over to the new Pipe so that
1197     they are not lost.  This prevents messages from being lost.
1198     
1199     Alternatively, we could set in_seq = existing->in_seq - existing->in_qlen,
1200     but that would make the other end resend those messages, which is a waste
1201     of bandwidth.
1202     
1203     Very easy to reproduce the original bug with 'ms inject socket failures'.
1204     
1205     Signed-off-by: Sage Weil <sage@inktank.com>
1206
1207 commit 1f3a722e150f9f27fe7919e9579b5a88dcd15639
1208 Author: Sage Weil <sage@inktank.com>
1209 Date:   Thu Jun 28 17:45:24 2012 -0700
1210
1211     msgr: move dispatch_entry into DispatchQueue class
1212     
1213     A bit cleaner.
1214     
1215     Signed-off-by: Sage Weil <sage@inktank.com>
1216
1217 commit 03445290dad5b1213dd138cacf46e379400201c9
1218 Author: Sage Weil <sage@inktank.com>
1219 Date:   Thu Jun 28 17:38:34 2012 -0700
1220
1221     msgr: move incoming queue to separate class
1222     
1223     This extricates the incoming queue and its funky relationship with
1224     DispatchQueue from Pipe and moves it into IncomingQueue.  There is now a
1225     single IncomingQueue attached to each Pipe.  DispatchQueue is now no
1226     longer tied to Pipe.
1227     
1228     This modularizes the code a bit better (tho that is still a work in
1229     progress) and (more importantly) will make it possible to move the
1230     incoming messages from one pipe to another in accept().
1231     
1232     Signed-off-by: Sage Weil <sage@inktank.com>
1233
1234 commit 0dbc54169512da776c16161ec3b8fa0b3f08e248
1235 Author: Sage Weil <sage@inktank.com>
1236 Date:   Wed Jun 27 17:06:40 2012 -0700
1237
1238     msgr: make D_CONNECT constant non-zero, fix ms_handle_connect() callback
1239     
1240     A while ago we inadvertantly broke ms_handle_connect() callbacks because
1241     of a check for m being non-zero in the dispatch_entry() thread.  Adjust the
1242     enums so that they get delivered again.
1243     
1244     This fixes hangs when, for example, the ceph tool sends a command, gets a
1245     connection reset, and doesn't get the connect callback to resend after
1246     reconnecting to a new monitor.
1247     
1248     Signed-off-by: Sage Weil <sage@inktank.com>
1249
1250 commit 2429556a51e8f60b0d9bdee71ef7b34b367f2f38
1251 Author: Sage Weil <sage@inktank.com>
1252 Date:   Tue Jun 26 17:10:40 2012 -0700
1253
1254     msgr: fix pipe replacement assert
1255     
1256     We may replace an existing pipe in the STANDBY state if the previous
1257     attempt failed during accept() (see previous patches).
1258     
1259     This might fix #1378.
1260     
1261     Signed-off-by: Sage Weil <sage@inktank.com>
1262
1263 commit 204bc594be1a6046d1b362693d086b49294c2a27
1264 Author: Sage Weil <sage@inktank.com>
1265 Date:   Tue Jun 26 17:07:31 2012 -0700
1266
1267     msgr: do not try to reconnect con with CLOSED pipe
1268     
1269     If we have a con with a closed pipe, drop the message.  For lossless
1270     sessions, the state will be STANDBY if we should reconnect.  For lossy
1271     sessions, we will end up with CLOSED and we *should* drop the message.
1272     
1273     Signed-off-by: Sage Weil <sage@inktank.com>
1274
1275 commit e6ad6d25a58b8e34a220d090d01e26293c2437b4
1276 Author: Sage Weil <sage@inktank.com>
1277 Date:   Tue Jun 26 17:06:41 2012 -0700
1278
1279     msgr: move to STANDBY if we replace during accept and then fail
1280     
1281     If we replace an existing pipe during accept() and then fail, move to
1282     STANDBY so that our connection state (connect_seq, etc.) is preserved.
1283     Otherwise, we will throw out that information and falsely trigger a
1284     RESETSESSION on the next connection attempt.
1285     
1286     Signed-off-by: Sage Weil <sage@inktank.com>