Il proxy delle tile scartava la query string: la mappa mostrava il pericolo sbagliato - #138
Merged
Merged
Conversation
… pericolo sbagliato Appena le tile degli altri pericoli hanno smesso di andare in timeout è venuto fuori un guasto peggiore di quello appena risolto: le tre tile tornavano **byte per byte identiche**, 123.503 ciascuna, mentre chiamando pg_tileserv direttamente l'alluvione ne fa 99.570. Il proxy costruiva l'URL con il solo percorso. `p_hazard` non arrivava mai, `risk_at()` rispondeva sempre col pericolo di default, e il selettore mostrava **le celle delle frane etichettate «Alluvione»**. Una mappa vuota si vede; una mappa con i dati sbagliati no — ed è rimasta invisibile finché quelle tile scadevano. I due parametri sono dichiarati uno per uno e non inoltrati in blocco: `p_hazard` è tipizzato sull'enum dei pericoli, e un proxy che ripete qualunque cosa gli arrivi moltiplica le chiavi di cache a piacere di chi chiama. Solo quelli presenti finiscono nell'URL, perché `multi_hazard_at` non ne accetta e uno di troppo sarebbe un 400 su ogni tile del quadro unico. Due test: il parametro arriva a valle, e senza parametri l'URL resta nudo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Trovato verificando la #137 in produzione, ed è più grave di quello che la #137 ha risolto.
Le tre tile tornavano byte per byte identiche — 123.503 ciascuna — mentre chiamando pg_tileserv direttamente l'alluvione ne fa 99.570. Il proxy costruiva l'URL con il solo percorso, quindi
p_hazardnon arrivava mai erisk_at()rispondeva sempre col pericolo di default: il selettore mostrava le celle delle frane etichettate «Alluvione».Una mappa vuota si vede. Una mappa con i dati sbagliati no — ed è rimasta invisibile finché quelle tile andavano in timeout.
I due parametri sono dichiarati uno per uno anziché inoltrati in blocco:
p_hazardtipizzato sull'enum, e solo quelli presenti finiscono nell'URL perchémulti_hazard_atnon ne accetta. Un proxy che ripete qualunque cosa gli arrivi moltiplica anche le chiavi di cache a piacere di chi chiama.Gate:
ruff,mypy --strict(315 file), 6 test di integrazione su viste e proxy — due nuovi: il parametro arriva a valle, e senza parametri l'URL resta nudo.🤖 Generated with Claude Code