KamoCRM

Llamadas arriba con una conexión y un tiempo de espera de lectura

FixAPIService
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.

Todos los cambios

Como lo que ves enviaste?

Todo llega a su espacio de trabajo por sí solo. Comience en el plan gratuito y lea esta página de nuevo en un mes.

Arranzar gratis para siempreVer Precios