Repository navigation
fix(routing): ship the legacy alias cache and read it instead of rebuilding it (#605) - #606
Merged
Merged
Conversation
thisismeonmounteverest
requested changes
Oct 14, 2026
thisismeonmounteverest
left a comment
Contributor
There was a problem hiding this comment.
The correct way to fix this is to checkin the alias.cache.ini file instead of changing the code.
…ilding it (#605) Commits build/alias.cache.ini and sets IniCache = "1" in rox_docker.ini, as asked in review; the router code goes back to main's.
Neophytis
marked this pull request as draft
October 14, 2026 20:10
Contributor
Author
Not quite it's a combination but your suggestion gave part of the answer |
Neophytis
marked this pull request as ready for review
October 14, 2026 20:14
Neophytis
added a commit
that referenced
this pull request
Oct 14, 2026
From main 36f83b7 (#590 login reminders, data retention batches), 356932f (#607), 4b5adf3 (#603 login reminder UTM) and 97bb352 (#606 legacy alias cache, IniCache = "1"; the cache file matches route C's alias.ini files). Kept for develop: its composer versions (symfony/stopwatch 7.4), Member::__serialize, the AvatarController constructor, getFields() and setAddressHidden(). For Symfony 7 and Doctrine ORM 3: data:retention uses #[AsCommand], YearDiff uses TokenType and getSql(): string, as DateDiff does. php-cs-fixer 3.88.2. Checked on the local stack (route C image, this code): cache:clear, doctrine:schema:validate (mapping), members:remind:login, members:remove:notconfirmed and data:retention run.
Contributor
|
See my comment on the original pull request: #554 |
Neophytis
added a commit
that referenced
this pull request
Oct 15, 2026
Reverts 693f312 (the port of main's #590 login reminders and data retention batches, #607 data retention fix, #603 reminder UTM and #606 alias cache) and its follow-ups 38b061c (data:retention on DBAL 4) and 4d0cffc (members:remind:login without setUpdated). Route C ships only our work; the reminder, data retention and alias cache changes are left to their author on main. The 17 files are back to their state before the port, except config/services.yaml, which keeps d1180ea (app.userprovider autowired, independent of the port). data:retention is develop's own command again.
7 of 8 tasks
Neophytis
added a commit
that referenced
this pull request
Oct 15, 2026
Neophytis
added a commit
that referenced
this pull request
Oct 15, 2026
From main 36f83b7 (#590 login reminders, data retention batches), 356932f (#607), 4b5adf3 (#603 login reminder UTM) and 97bb352 (#606 legacy alias cache, IniCache = "1"; the cache file matches route C's alias.ini files). Kept for develop: its composer versions (symfony/stopwatch 7.4), Member::__serialize, the AvatarController constructor, getFields() and setAddressHidden(). For Symfony 7 and Doctrine ORM 3: data:retention uses #[AsCommand], YearDiff uses TokenType and getSql(): string, as DateDiff does. php-cs-fixer 3.88.2. Checked on the local stack (route C image, this code): cache:clear, doctrine:schema:validate (mapping), members:remind:login, members:remove:notconfirmed and data:retention run.
Neophytis
added a commit
that referenced
this pull request
Oct 15, 2026
Reverts 693f312 (the port of main's #590 login reminders and data retention batches, #607 data retention fix, #603 reminder UTM and #606 alias cache) and its follow-ups 38b061c (data:retention on DBAL 4) and 4d0cffc (members:remind:login without setUpdated). Route C ships only our work; the reminder, data retention and alias cache changes are left to their author on main. The 17 files are back to their state before the port, except config/services.yaml, which keeps d1180ea (app.userprovider autowired, independent of the port). data:retention is develop's own command again.
Neophytis
added a commit
that referenced
this pull request
Oct 15, 2026
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.
Closes #605
Target branch:
mainWhat:
build/alias.cache.ini, the legacy router's alias table (7 lines, generated frombuild/*/alias.iniwith the router's own parse and write steps).rox_docker.ini:IniCache = "1", so the router reads that file instead of rebuilding it on every request..gitignore: an exception for that one file (*.cache.inistays ignored).Why: with
IniCache = "0"the router rebuilds the table on every legacy page and writes it tobuild/, which is read-only in the image. The write fails and logs an error: about 40,000 a day on prod, each with 50 buffered log lines.Checked: on stage, 8 logged-in legacy pages:
IniCache = "0")IniCache = "0"IniCache = "1"(this PR)With
IniCache = "0"the router ignores the committed file and still tries to write it, so the file alone does not stop the errors; both changes are needed./search,/donate,/people/...and the other aliases route as before.Details
localhoststill rebuilds the table on every request (the router's own check), so local development is unchanged.build/*/alias.ini, the cache file has to be regenerated in the same PR. Legacy pages are being migrated to Symfony, so this should be rare.searchmembers =(an empty alias from splitting the multi-line values), andrss = feedonly (build/rss/alias.inidefinesrsstwice; the last one wins).