diff options
author | Sage Weil <sage@inktank.com> | 2012-11-24 09:16:13 -0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-11-24 09:16:13 -0800 |
commit | 8a03d50146bdad346d984e6a6061146aef23a154 (patch) | |
tree | 32ef79cb3425a2c0f8c5434c99e1af4268b752d5 | |
parent | df550c9cce969b667f3b062ee3113a5493ac16ce (diff) | |
parent | 96b82ebf870bda5af33624f698785bac6ae78234 (diff) | |
download | ceph-8a03d50146bdad346d984e6a6061146aef23a154.tar.gz |
Merge remote-tracking branch 'gh/wip-mon-misc-fixes' into next
-rw-r--r-- | src/auth/KeyRing.cc | 3 | ||||
-rw-r--r-- | src/auth/cephx/CephxKeyServer.cc | 14 | ||||
-rw-r--r-- | src/auth/cephx/CephxProtocol.cc | 2 | ||||
-rw-r--r-- | src/crush/CrushWrapper.cc | 8 | ||||
-rw-r--r-- | src/mon/AuthMonitor.cc | 6 | ||||
-rw-r--r-- | src/mon/Monitor.cc | 20 | ||||
-rw-r--r-- | src/mon/PGMonitor.cc | 17 |
7 files changed, 50 insertions, 20 deletions
diff --git a/src/auth/KeyRing.cc b/src/auth/KeyRing.cc index ad23922d625..96dba74a043 100644 --- a/src/auth/KeyRing.cc +++ b/src/auth/KeyRing.cc @@ -236,7 +236,8 @@ void KeyRing::import(CephContext *cct, KeyRing& other) for (map<EntityName, EntityAuth>::iterator p = other.keys.begin(); p != other.keys.end(); ++p) { - ldout(cct, 10) << " importing " << p->first << " " << p->second << dendl; + ldout(cct, 10) << " importing " << p->first << dendl; + ldout(cct, 30) << " " << p->second << dendl; keys[p->first] = p->second; } } diff --git a/src/auth/cephx/CephxKeyServer.cc b/src/auth/cephx/CephxKeyServer.cc index 1440b2c2b9f..c3e4f9cfdc1 100644 --- a/src/auth/cephx/CephxKeyServer.cc +++ b/src/auth/cephx/CephxKeyServer.cc @@ -46,7 +46,7 @@ bool KeyServerData::get_service_secret(CephContext *cct, uint32_t service_id, secret_id = riter->first; secret = riter->second; - ldout(cct, 10) << "get_service_secret service " << ceph_entity_type_name(service_id) + ldout(cct, 30) << "get_service_secret service " << ceph_entity_type_name(service_id) << " id " << secret_id << " " << secret << dendl; return true; } @@ -77,12 +77,13 @@ bool KeyServerData::get_service_secret(CephContext *cct, uint32_t service_id, if (riter == secrets.secrets.end()) { ldout(cct, 10) << "get_service_secret service " << ceph_entity_type_name(service_id) - << " secret " << secret_id << " not found; i have:" << dendl; + << " secret " << secret_id << " not found" << dendl; + ldout(cct, 30) << " I have:" << dendl; for (map<uint64_t, ExpiringCryptoKey>::const_iterator iter = secrets.secrets.begin(); iter != secrets.secrets.end(); ++iter) - ldout(cct, 10) << " id " << iter->first << " " << iter->second << dendl; + ldout(cct, 30) << " id " << iter->first << " " << iter->second << dendl; return false; } @@ -170,7 +171,7 @@ bool KeyServer::_check_rotating_secrets() void KeyServer::_dump_rotating_secrets() { - ldout(cct, 10) << "_dump_rotating_secrets" << dendl; + ldout(cct, 30) << "_dump_rotating_secrets" << dendl; for (map<uint32_t, RotatingSecrets>::iterator iter = data.rotating_secrets.begin(); iter != data.rotating_secrets.end(); ++iter) { @@ -178,7 +179,7 @@ void KeyServer::_dump_rotating_secrets() for (map<uint64_t, ExpiringCryptoKey>::iterator mapiter = key.secrets.begin(); mapiter != key.secrets.end(); ++mapiter) - ldout(cct, 10) << "service " << ceph_entity_type_name(iter->first) + ldout(cct, 30) << "service " << ceph_entity_type_name(iter->first) << " id " << mapiter->first << " key " << mapiter->second << dendl; } @@ -203,7 +204,8 @@ int KeyServer::_rotate_secret(uint32_t service_id) } ek.expiration += ttl; uint64_t secret_id = r.add(ek); - ldout(cct, 10) << "_rotate_secret adding " << ceph_entity_type_name(service_id) + ldout(cct, 10) << "_rotate_secret adding " << ceph_entity_type_name(service_id) << dendl; + ldout(cct, 30) << "_rotate_secret adding " << ceph_entity_type_name(service_id) << " id " << secret_id << " " << ek << dendl; added++; diff --git a/src/auth/cephx/CephxProtocol.cc b/src/auth/cephx/CephxProtocol.cc index 9c262634e7b..34f31f70c72 100644 --- a/src/auth/cephx/CephxProtocol.cc +++ b/src/auth/cephx/CephxProtocol.cc @@ -118,7 +118,7 @@ bool cephx_build_service_ticket_reply(CephContext *cct, } ::encode(blob, service_ticket_bl); - ldout(cct, 20) << "service_ticket_blob is "; + ldout(cct, 30) << "service_ticket_blob is "; service_ticket_bl.hexdump(*_dout); *_dout << dendl; diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc index 475c8c105e9..f38a7698376 100644 --- a/src/crush/CrushWrapper.cc +++ b/src/crush/CrushWrapper.cc @@ -258,6 +258,14 @@ int CrushWrapper::insert_item(CephContext *cct, int item, float weight, string n crush_bucket *b = get_bucket(id); assert(b); + if (p->first != b->type) { + ldout(cct, 1) << "insert_item existing bucket has type " + << "'" << type_map[b->type] << "' != " + << "'" << type_map[p->first] << "'" << dendl; + return -EINVAL; + } + + // make sure the item doesn't already exist in this bucket for (unsigned j=0; j<b->size; j++) if (b->items[j] == cur) { diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc index 030153e17df..c43d7e988db 100644 --- a/src/mon/AuthMonitor.cc +++ b/src/mon/AuthMonitor.cc @@ -549,7 +549,8 @@ void AuthMonitor::import_keyring(KeyRing& keyring) auth_inc.name = p->first; auth_inc.auth = p->second; auth_inc.op = KeyServerData::AUTH_INC_ADD; - dout(10) << " importing " << auth_inc.name << " " << auth_inc.auth << dendl; + dout(10) << " importing " << auth_inc.name << dendl; + dout(30) << " " << auth_inc.auth << dendl; push_cephx_inc(auth_inc); } } @@ -627,7 +628,8 @@ bool AuthMonitor::prepare_command(MMonCommand *m) for (unsigned i=3; i+1<m->cmd.size(); i += 2) ::encode(m->cmd[i+1], auth_inc.auth.caps[m->cmd[i]]); - dout(10) << " importing " << auth_inc.name << " " << auth_inc.auth << dendl; + dout(10) << " importing " << auth_inc.name << dendl; + dout(30) << " " << auth_inc.auth << dendl; push_cephx_inc(auth_inc); ss << "added key for " << auth_inc.name; diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 469cbd03aa5..4a64e48de8d 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -207,14 +207,26 @@ void Monitor::recovered_leader(int id) require_gv_onwire(); } - for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) + for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) { + if (!(*p)->is_active()) + continue; finish_contexts(g_ceph_context, (*p)->waiting_for_active); - for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) + } + for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) { + if (!(*p)->is_active()) + continue; finish_contexts(g_ceph_context, (*p)->waiting_for_commit); - for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) + } + for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) { + if (!(*p)->is_readable()) + continue; finish_contexts(g_ceph_context, (*p)->waiting_for_readable); - for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) + } + for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++) { + if (!(*p)->is_writeable()) + continue; finish_contexts(g_ceph_context, (*p)->waiting_for_writeable); + } } } diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 2bdfbc4b5eb..dcf9380613b 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -991,12 +991,17 @@ bool PGMonitor::preprocess_command(MMonCommand *m) r = -EINVAL; if (pgid.parse(m->cmd[2].c_str())) { vector<int> up, acting; - pg_t mpgid = mon->osdmon()->osdmap.raw_pg_to_pg(pgid); - mon->osdmon()->osdmap.pg_to_up_acting_osds(pgid, up, acting); - ss << "osdmap e" << mon->osdmon()->osdmap.get_epoch() - << " pg " << pgid << " (" << mpgid << ")" - << " -> up " << up << " acting " << acting; - r = 0; + if (mon->osdmon()->osdmap.have_pg_pool(pgid.pool())) { + pg_t mpgid = mon->osdmon()->osdmap.raw_pg_to_pg(pgid); + mon->osdmon()->osdmap.pg_to_up_acting_osds(pgid, up, acting); + ss << "osdmap e" << mon->osdmon()->osdmap.get_epoch() + << " pg " << pgid << " (" << mpgid << ")" + << " -> up " << up << " acting " << acting; + r = 0; + } else { + r = -ENOENT; + ss << "pg '" << m->cmd[2] << "' does not exist"; + } } else ss << "invalid pgid '" << m->cmd[2] << "'"; } |