summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-11-24 09:16:13 -0800
committerSage Weil <sage@inktank.com>2012-11-24 09:16:13 -0800
commit8a03d50146bdad346d984e6a6061146aef23a154 (patch)
tree32ef79cb3425a2c0f8c5434c99e1af4268b752d5
parentdf550c9cce969b667f3b062ee3113a5493ac16ce (diff)
parent96b82ebf870bda5af33624f698785bac6ae78234 (diff)
downloadceph-8a03d50146bdad346d984e6a6061146aef23a154.tar.gz
Merge remote-tracking branch 'gh/wip-mon-misc-fixes' into next
-rw-r--r--src/auth/KeyRing.cc3
-rw-r--r--src/auth/cephx/CephxKeyServer.cc14
-rw-r--r--src/auth/cephx/CephxProtocol.cc2
-rw-r--r--src/crush/CrushWrapper.cc8
-rw-r--r--src/mon/AuthMonitor.cc6
-rw-r--r--src/mon/Monitor.cc20
-rw-r--r--src/mon/PGMonitor.cc17
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] << "'";
}