- Verschifft
- 23. September 2026 um 02:28 UTC
- Autor
- Kamo
- Ausschuss
- 4820f44
POST /Convert-Vektor und WS /ws/pipeline nehmen keine Antwort (siehe den Begleitbericht dieses Commit-Contracon, warum das ist hier nicht fixiert) und, bis jetzt, lesen Sie den gesamten Upload eines Anrufers in den Speicher, bevor Sie sich an seine Größe überhaupt - max_image_size_mb wurde in den Einstellungen definiert und nie irgendwo erwähnt. Entweder endpoint lief auch Hintergrundentfernung und Vektorisierung (rembg, vtracer - beide CPU-gebunden, über asyncio.to_thread) ohne Deckelung, wie viele auf einmal laufen könnten. Gemeinsam ist das eine offene Tür diese Hülse aus dem Speicher oder der CPU mit einer Handvoll gleichzeitiger Anfragen, von jedem, der erreichen - und per ****************, das ist jeder Browser im Internet: Traefik Routen /vector-ws/* direkt zu diesem Dienst, um das Gateway von apiservice vollständig zu umgehen. - /convert-Vektor liest jetzt den Upload in begrenzten Stücken und verweigert (413) sobald der laufende total crosses max_image_size_mb, anstatt nach dem Puffern des ganzen Dings. - Die WebSocket-Pipeline hat kein Äquivalent eines gespreizten Lese-"se --se-seed_text() hält bereits die vollständig decodierter Rahmen, bis er gesehen wird, so dass das gleiche Limit sofort nach überprüft wird base64-dekodierung eines eingehenden Bildes/Mass, bevor es jemals an bg-Entfernung oder Vektorisierung übergeben wird. - Eine neue Conversion_semaphore (max_concurrent_conversions, default 4, in Einstellungen/configmap like max_image_size_mb wurde bereits) wickelt jeden bg-entfernenden und Vectorisierungsaufruf in beiden Endpoints. Überschüssige Anrufer warten; sie werden nicht abgelehnt. Tests: test_resource_limits.py (Pytest + httpx nur - die schweren ML/CV deps in requirements.txt alle importierten faulen Dienstleistungen/*.py Funktionsaufbauten, nie bei Modullade, also die beiden Konvertierungseingabepunkte werden verspottet statt installiert). Nicht von CI heute betrieben; dieser Build hat keine (build-and-deploy.yml geht direkt von der Kasse zu Docker build/push/deploy). Jeder Wächter war verifizierte rote erste: die Größenkappe entfernt (ein überdimensionaler Upload erreicht stattdessen den verspotteten Konverter von abgelehnt) und die WebSocket Größe Überprüfung deaktiviert, in einem lokalen Arbeitsbaum, nach restauriert.
