Conversation
`find-previous-rev` counted down one number at a time until it found a revision with logs, and the URL rules took any integer as a revision. A request whose revision was a Unix timestamp, such as /1489401258/..., therefore walked about 1.5 billion numbers, checking each one's directories and archive; four such requests kept the renderer at a full core for days, slowing every build by about 5%. The builds below 70000 cannot change, so write down what the renderer can show: every push from 50000 has a build with logs (in a "logs" directory or an archive), except for 13 missing ones. Newer pushes are checked against the build directories. A new URL argument, `known-rev-arg`, matches only a revision with a build, so any other number matches no rule and gets a 404, and `find-previous-rev` stops at the oldest build and answers from the static history without touching the filesystem. The rendering tests used revisions 100-104, which the static history rules out, so they now use 70100-70104.
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
find-previous-revcounted down one number at a time until it found a revision with logs, and the URL rules took any integer as a revision. A request whose revision was a Unix timestamp, such as /1489401258/..., therefore walked about 1.5 billion numbers, checking each one's directories and archive; four such requests kept the renderer at a full core for days, slowing every build by about 5%.The builds below 70000 cannot change, so write down what the renderer can show: every push from 50000 has a build with logs (in a "logs" directory or an archive), except for 13 missing ones. Newer pushes are checked against the build directories. A new URL argument,
known-rev-arg, matches only a revision with a build, so any other number matches no rule and gets a 404, andfind-previous-revstops at the oldest build and answers from the static history without touching the filesystem.The rendering tests used revisions 100-104, which the static history rules out, so they now use 70100-70104.