mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-14 20:22:19 +00:00
Add logs in AsyncStateSerializer
This commit is contained in:
parent
c07394aab5
commit
3b4166be69
1 changed files with 12 additions and 7 deletions
|
@ -123,11 +123,12 @@ void AsyncStateSerializer::next_iteration() {
|
||||||
if (attempt_ < max_attempt() && last_key_block_id_.id.seqno < last_block_id_.id.seqno &&
|
if (attempt_ < max_attempt() && last_key_block_id_.id.seqno < last_block_id_.id.seqno &&
|
||||||
need_serialize(masterchain_handle_)) {
|
need_serialize(masterchain_handle_)) {
|
||||||
if (!have_masterchain_state_) {
|
if (!have_masterchain_state_) {
|
||||||
// block next attempts immediately, but send actual request later
|
LOG(INFO) << "started serializing persistent state for " << masterchain_handle_->id().seqno();
|
||||||
running_ = true;
|
// block next attempts immediately, but send actual request later
|
||||||
delay_action(
|
running_ = true;
|
||||||
[SelfId = actor_id(this)]() { td::actor::send_closure(SelfId, &AsyncStateSerializer::request_masterchain_state); },
|
delay_action(
|
||||||
td::Timestamp::in(td::Random::fast(0, 3600)));
|
[SelfId = actor_id(this)]() { td::actor::send_closure(SelfId, &AsyncStateSerializer::request_masterchain_state); },
|
||||||
|
td::Timestamp::in(td::Random::fast(0, 3600)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (next_idx_ < shards_.size()) {
|
while (next_idx_ < shards_.size()) {
|
||||||
|
@ -142,6 +143,7 @@ void AsyncStateSerializer::next_iteration() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LOG(INFO) << "finished serializing persistent state for " << masterchain_handle_->id().seqno();
|
||||||
last_key_block_ts_ = masterchain_handle_->unix_time();
|
last_key_block_ts_ = masterchain_handle_->unix_time();
|
||||||
last_key_block_id_ = masterchain_handle_->id();
|
last_key_block_id_ = masterchain_handle_->id();
|
||||||
}
|
}
|
||||||
|
@ -182,6 +184,7 @@ void AsyncStateSerializer::got_masterchain_handle(BlockHandle handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsyncStateSerializer::got_masterchain_state(td::Ref<MasterchainState> state) {
|
void AsyncStateSerializer::got_masterchain_state(td::Ref<MasterchainState> state) {
|
||||||
|
LOG(INFO) << "serializing masterchain state " << masterchain_handle_->id().seqno();
|
||||||
have_masterchain_state_ = true;
|
have_masterchain_state_ = true;
|
||||||
CHECK(next_idx_ == 0);
|
CHECK(next_idx_ == 0);
|
||||||
CHECK(shards_.size() == 0);
|
CHECK(shards_.size() == 0);
|
||||||
|
@ -204,6 +207,7 @@ void AsyncStateSerializer::got_masterchain_state(td::Ref<MasterchainState> state
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsyncStateSerializer::stored_masterchain_state() {
|
void AsyncStateSerializer::stored_masterchain_state() {
|
||||||
|
LOG(INFO) << "finished serializing masterchain state " << masterchain_handle_->id().seqno();
|
||||||
running_ = false;
|
running_ = false;
|
||||||
next_iteration();
|
next_iteration();
|
||||||
}
|
}
|
||||||
|
@ -221,16 +225,17 @@ void AsyncStateSerializer::got_shard_handle(BlockHandle handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsyncStateSerializer::got_shard_state(BlockHandle handle, td::Ref<ShardState> state) {
|
void AsyncStateSerializer::got_shard_state(BlockHandle handle, td::Ref<ShardState> state) {
|
||||||
|
LOG(INFO) << "serializing shard state " << handle->id().seqno();
|
||||||
auto write_data = [state] (td::FileFd& fd) {
|
auto write_data = [state] (td::FileFd& fd) {
|
||||||
return state->serialize_to_file(fd);
|
return state->serialize_to_file(fd);
|
||||||
};
|
};
|
||||||
auto P = td::PromiseCreator::lambda([SelfId = actor_id(this)](td::Result<td::Unit> R) {
|
auto P = td::PromiseCreator::lambda([SelfId = actor_id(this), handle](td::Result<td::Unit> R) {
|
||||||
R.ensure();
|
R.ensure();
|
||||||
|
LOG(INFO) << "finished serializing shard state " << handle->id().seqno();
|
||||||
td::actor::send_closure(SelfId, &AsyncStateSerializer::success_handler);
|
td::actor::send_closure(SelfId, &AsyncStateSerializer::success_handler);
|
||||||
});
|
});
|
||||||
td::actor::send_closure(manager_, &ValidatorManager::store_persistent_state_file_gen, handle->id(),
|
td::actor::send_closure(manager_, &ValidatorManager::store_persistent_state_file_gen, handle->id(),
|
||||||
masterchain_handle_->id(), write_data, std::move(P));
|
masterchain_handle_->id(), write_data, std::move(P));
|
||||||
LOG(INFO) << "storing persistent state for " << masterchain_handle_->id().seqno() << ":" << handle->id().id.shard;
|
|
||||||
next_idx_++;
|
next_idx_++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue