- Se descapó
- 23 de septiembre de 2026 a las 10:18 UTC
- Autor
- Kamo
- Compromit
- eb9cc3b
Ambos granos de RestTemplate fueron construidos a partir de un JdkClientHttpRequestFactory sin tiempo muerto en absoluto. Una aguas arriba que acepta la conexión y luego nunca respuestas... una vaina de cuña, un punto muerto... estacionó un hilo de pasarela en ese enchufe para siempre; suficiente de esos agotan la piscina finita de hilo de Tomcat detrás del punto de estrango /api/** de la plataforma y derribar cada inquilino, no sólo el que llama de la ruta lenta. Conectar el tiempo de espera es 5s: el Servicio de arriba siempre existe en el cúmulo, por lo que a conectar no establecido por entonces la vaina detrás de ella se ha ido. Lea El tiempo de espera es un global de 120s en lugar de un valor por prefijo - esta clase ha sin Restte de ruta por-rutaTemplate hoy, la amenaza (un río arriba que nunca respuestas) es el mismo independientemente del prefijo, y 120s cubre cómodamente el los legítimos más lentos llaman esta puerta hacia adelante (grandes subidas a /api/docs y /api/media, chat de IA, exportaciones de facturación). La entrada del propio Traefik respondTimeouts.readTimeout es 3600s, así que nada antes de esta llamada fue alguna vez va a cortar una solicitud más corta que 120s de todos modos. RestTemplateTimeoutTest conduce un enchufe real que acepta el TCP conexión y luego nunca escribe una respuesta, usando un corto tiempo de espera en lugar de los 120s reales por lo que la prueba en sí no puede colgar la suite, y afirma que el cliente se rinde por sí solo. Revertir a la fábrica desnuda hace que la llamada subyacente pende más de la propia guardia preventiva de JUnit, que es exactamente el modo de falla que esto fija.
