Skip to content

Commit 5811296

Browse files
turuslankamilsa
andauthored
peer manager mutex (#2408)
* peer manager mutex Signed-off-by: turuslan <turuslan.devbox@gmail.com> * fix deadlock Signed-off-by: turuslan <turuslan.devbox@gmail.com> * revert tie cmp Signed-off-by: turuslan <turuslan.devbox@gmail.com> * deadlock Signed-off-by: turuslan <turuslan.devbox@gmail.com> * cmake_minimum_required 3.12 Signed-off-by: turuslan <turuslan.devbox@gmail.com> * clang format Signed-off-by: turuslan <turuslan.devbox@gmail.com> * comment Signed-off-by: turuslan <turuslan.devbox@gmail.com> * update hunter Signed-off-by: turuslan <turuslan.devbox@gmail.com> --------- Signed-off-by: turuslan <turuslan.devbox@gmail.com> Co-authored-by: kamilsa <kamilsa16@gmail.com>
1 parent e21cc82 commit 5811296

File tree

20 files changed

+361
-350
lines changed

20 files changed

+361
-350
lines changed

cmake/Hunter/HunterGate.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ function(hunter_gate_download dir)
257257
file(
258258
WRITE
259259
"${cmakelists}"
260-
"cmake_minimum_required(VERSION 3.5)\n"
260+
"cmake_minimum_required(VERSION 3.12)\n"
261261
"project(HunterDownload LANGUAGES NONE)\n"
262262
"include(ExternalProject)\n"
263263
"ExternalProject_Add(\n"

cmake/Hunter/hunter-gate-url.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
HunterGate(
2-
URL https://github.com/qdrvm/hunter/archive/refs/tags/v0.25.3-qdrvm33.tar.gz
3-
SHA1 aaccde981d2772511f0c32c3dc3f52f681956949
2+
URL https://github.com/qdrvm/hunter/archive/86e53c752977bf5a5efb6590c26941ed3fec8187.zip
3+
SHA1 7121f2cbf052cc6cb0a526a89e9b4aca5bf3cd54
44
LOCAL
55
)

core/api/service/system/requests/peers.hpp

+15-18
Original file line numberDiff line numberDiff line change
@@ -33,24 +33,21 @@ namespace kagome::api::system::request {
3333
jsonrpc::Value::Array result;
3434
result.reserve(peer_manager.activePeersNumber());
3535

36-
peer_manager.forEachPeer([&](auto &peer_id) {
37-
auto status_opt = peer_manager.getPeerState(peer_id);
38-
if (status_opt.has_value()) {
39-
auto &status = status_opt.value();
40-
41-
jsonrpc::Value::Struct peer;
42-
peer.emplace("PeerId", peer_id.toBase58());
43-
peer.emplace("roles",
44-
status.get().roles.isAuthority() ? "AUTHORITY"
45-
: status.get().roles.isFull() ? "FULL"
46-
: status.get().roles.isLight() ? "LIGHT"
47-
: "NONE");
48-
peer.emplace("bestHash", makeValue(status.get().best_block.hash));
49-
peer.emplace("bestNumber", makeValue(status.get().best_block.number));
50-
51-
result.emplace_back(std::move(peer));
52-
}
53-
});
36+
peer_manager.enumeratePeerState(
37+
[&](const libp2p::PeerId &peer_id, const network::PeerState &state) {
38+
jsonrpc::Value::Struct peer;
39+
peer.emplace("PeerId", peer_id.toBase58());
40+
peer.emplace("roles",
41+
state.roles.isAuthority() ? "AUTHORITY"
42+
: state.roles.isFull() ? "FULL"
43+
: state.roles.isLight() ? "LIGHT"
44+
: "NONE");
45+
peer.emplace("bestHash", makeValue(state.best_block.hash));
46+
peer.emplace("bestNumber", makeValue(state.best_block.number));
47+
48+
result.emplace_back(std::move(peer));
49+
return true;
50+
});
5451

5552
return result;
5653
}

core/consensus/grandpa/impl/grandpa_impl.cpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -1353,9 +1353,10 @@ namespace kagome::consensus::grandpa {
13531353
}
13541354
auto &peer = waiting.peer;
13551355
if (auto msg = boost::get<network::VoteMessage>(&waiting.msg)) {
1356-
auto info = self->peer_manager_->getPeerState(peer);
1357-
self->onVoteMessage(
1358-
peer, compactFromRefToOwn(info), std::move(*msg), false);
1356+
self->onVoteMessage(peer,
1357+
self->peer_manager_->getGrandpaInfo(peer),
1358+
std::move(*msg),
1359+
false);
13591360
} else if (auto msg =
13601361
boost::get<network::CatchUpResponse>(&waiting.msg)) {
13611362
self->onCatchUpResponse(peer, std::move(*msg), false);
@@ -1411,7 +1412,7 @@ namespace kagome::consensus::grandpa {
14111412
auto *index = vote.is<Prevote>() ? &votes.prevote_idx
14121413
: vote.is<Precommit>() ? &votes.precommit_idx
14131414
: nullptr;
1414-
if (index and not *index) {
1415+
if (index != nullptr and not index->has_value()) {
14151416
*index = votes.seen.size();
14161417
}
14171418
}

0 commit comments

Comments
 (0)