Add logging on long pts gap filling.
This commit is contained in:
parent
a29f4b43d4
commit
c6466caee2
@ -1905,13 +1905,12 @@ void UpdatesManager::add_pending_pts_update(tl_object_ptr<telegram_api::Update>
|
|||||||
|
|
||||||
if (old_pts + accumulated_pts_count_ < accumulated_pts_) {
|
if (old_pts + accumulated_pts_count_ < accumulated_pts_) {
|
||||||
set_pts_gap_timeout(MAX_UNFILLED_GAP_TIME);
|
set_pts_gap_timeout(MAX_UNFILLED_GAP_TIME);
|
||||||
|
last_pts_gap_time_ = Time::now();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK(old_pts + accumulated_pts_count_ == accumulated_pts_);
|
CHECK(old_pts + accumulated_pts_count_ == accumulated_pts_);
|
||||||
if (!pending_pts_updates_.empty()) {
|
process_pending_pts_updates();
|
||||||
process_pending_pts_updates();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdatesManager::postpone_pts_update(tl_object_ptr<telegram_api::Update> &&update, int32 pts, int32 pts_count,
|
void UpdatesManager::postpone_pts_update(tl_object_ptr<telegram_api::Update> &&update, int32 pts, int32 pts_count,
|
||||||
@ -1972,8 +1971,17 @@ void UpdatesManager::process_pending_pts_updates() {
|
|||||||
update.second.promise.set_value(Unit());
|
update.second.promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
set_pts(accumulated_pts_, "process pending updates")
|
if (last_pts_gap_time_ != 0) {
|
||||||
.set_value(Unit()); // TODO can't set until get messages really stored on persistent storage
|
auto diff = Time::now() - last_pts_gap_time_;
|
||||||
|
last_pts_gap_time_ = 0;
|
||||||
|
if (diff > 0.1) {
|
||||||
|
VLOG(get_difference) << "Gap in pts from " << accumulated_pts_ - accumulated_pts_count_ << " to "
|
||||||
|
<< accumulated_pts_ << " has been filled in " << diff << " seconds";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_pts(accumulated_pts_, "postpone_pending_pts_update")
|
||||||
|
.set_value(Unit()); // TODO can't set until updates are stored on persistent storage
|
||||||
drop_pending_pts_updates();
|
drop_pending_pts_updates();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,6 +171,7 @@ class UpdatesManager : public Actor {
|
|||||||
int32 accumulated_pts_count_ = 0;
|
int32 accumulated_pts_count_ = 0;
|
||||||
int32 accumulated_pts_ = -1;
|
int32 accumulated_pts_ = -1;
|
||||||
double last_pts_jump_warning_time_ = 0;
|
double last_pts_jump_warning_time_ = 0;
|
||||||
|
double last_pts_gap_time_ = 0;
|
||||||
|
|
||||||
std::multimap<int32, PendingPtsUpdate> pending_pts_updates_;
|
std::multimap<int32, PendingPtsUpdate> pending_pts_updates_;
|
||||||
std::multimap<int32, PendingPtsUpdate> postponed_pts_updates_;
|
std::multimap<int32, PendingPtsUpdate> postponed_pts_updates_;
|
||||||
|
Loading…
Reference in New Issue
Block a user