Smalyshev added a comment.

This seems to be the result of the following issue:

  1. Load on server rises and the updates get behind the flow
  2. Tail poller continues to keep up and gets in front of regular poller (since it is based off real time, not position of the RC poller!)
  3. Since the code does not check the queue if RC poller is behind, the changes are not pulled from the queue
  4. Since the changes are processed by TailPoller, RC poller does not see them and thus thinks there are no changes, triggering poll delay sleep.

In this situation, Tail Poller is ahead of RC poller but no updates happen because RC poller is behind and is not catching up because of excessive sleeps.

The immediate solution is to always empty the queue and to not sleep if there are more changes to process, even if they are not supplied to the updater. More proper solution is also not allowing the Tail Poller to get ahead of RC poller, but that may be challenging to ensure always.


TASK DETAIL
https://phabricator.wikimedia.org/T170887

EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Smalyshev
Cc: Liuxinyu970226, Aklapper, Smalyshev, GoranSMilovanovic, QZanden, EBjune, merbst, Avner, debt, Gehel, Jonas, FloNight, Xmlizer, Izno, jkroll, Wikidata-bugs, Jdouglas, aude, Tobias1984, Manybubbles, Mbch331
_______________________________________________
Wikidata-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to