Bug #1383
objecter: under some circumstances it requests the wrong map
| Status: | Resolved | Start date: | 08/09/2011 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | Greg Farnum | % Done: | 0% | |
| Category: | librados | Spent time: | 1.00 hour | |
| Target version: | v0.34 | |||
| Source: | Severity: | |||
| Backport: | Reviewed: | |||
| Tags: |
Description
While testing manypools, I had a hang on pool creation. Turns out the monitor was creating the pool, but the client was never getting the new map. In the logs, I see:
2011-08-09 14:18:55.059771 7fa630f35700 -- 10.3.14.172:0/1032124 <== mon2 10.3.14.182:6791/0 12 ==== poolopreply(reply:Success, 1 v1034) v1 ==== 43+0+0 (2209587560 0 0) 0x1c09770 con 0x1c0d520
2011-08-09 14:18:55.059805 7fa630f35700 client6956.objecter handle_pool_op_reply poolopreply(reply:Success, 1 v1034) v1
2011-08-09 14:18:55.059830 7fa630f35700 client6956.objecter have request 1 at 0x1c1b180 Op: create
2011-08-09 14:18:55.059840 7fa630f35700 client6956.objecter maybe_request_map subscribing (onetime) to next osd map
2011-08-09 14:18:55.059891 7fa630f35700 -- 10.3.14.172:0/1032124 --> 10.3.14.182:6791/0 -- mon_subscribe({monmap=2+,osdmap=1033}) v1 -- ?+0 0x7fa6280b5f50 con 0x1c0d520
2011-08-09 14:18:55.059916 7fa630f35700 client6956.objecter done
2011-08-09 14:18:55.060364 7fa630f35700 -- 10.3.14.172:0/1032124 <== mon2 10.3.14.182:6791/0 13 ==== osd_map(1033,1033) v1 ==== 216+0+0 (366697694 0 0) 0x1c0a260 con 0x1c0d520
2011-08-09 14:18:55.060376 7fa630f35700 client6956.objecter handle_osd_map got epochs [1033,1033] > 1032
2011-08-09 14:18:55.060384 7fa630f35700 client6956.objecter handle_osd_map decoding incremental epoch 1033So maybe it's doing a one-time subscribe even though it needs a specific version of the map?
Associated revisions
objecter: allow requesting specific maps in maybe_request_map
Use this capability so that wait_for_new_map can specify a specific
map it wants go get. I am extending the sins of the fathers by
allowing a default value of 0 for the epoch here, but removing it
is even clumsier and there are lots of uses where it legitimately
doesn't care what epoch it gets.
Fixes #1383.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
objecter: allow requesting specific maps in maybe_request_map
Use this capability so that wait_for_new_map can specify a specific
map it wants go get. I am extending the sins of the fathers by
allowing a default value of 0 for the epoch here, but removing it
is even clumsier and there are lots of uses where it legitimately
doesn't care what epoch it gets.
Fixes #1383.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
History
#1 Updated by Greg Farnum almost 2 years ago
- Status changed from New to Resolved
Yep. Have the simple fix in my local branch, will push with the rest of my changes!