yaade icon indicating copy to clipboard operation
yaade copied to clipboard

Resource not found

Open cmenzi opened this issue 1 year ago • 5 comments

We are hosting yaade as docker container behind nginx reverse proxy. Everyday after long idle period yaade is responding with "Resource not found". After restarting the yaade container, it works again.

Long Idle (24h)

image image image

In the last image you see that yaade serves the html with resource not found.

Restart yaade container

image

After restart the container, everything works again as expected.

cmenzi avatar Jan 16 '25 09:01 cmenzi

Are you using a container management solution like Portainer? It may have some default configuration of idle timeouts. Or maybe the IP changes and NGINX is not aware of it. I have never seen that on my Yaade deployments though so I don't think it's something Yaade-internal.

jonrosner avatar Jan 16 '25 09:01 jonrosner

Yes, We are using portainer, but I see the request in the logs of yaade. So, it receives the vertex server route, which does response with 404 including an html content.

2025-01-16T08:24:40.277132617Z [vert.x-eventloop-thread-0] WARN io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:24:40 GMT] "GET / HTTP/1.0" 404 53 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

The fun part is, if I call "/index.html", the yaade server is responding correctly.

2025-01-16T08:25:30.039626703Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:30 GMT] "GET /index.html HTTP/1.0" 200 496 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

After restart the container, the / route works again as expected.

2025-01-16T08:25:47.878833173Z [vert.x-eventloop-thread-0] INFO com.espero.yaade.server.Server - Started server on port 9339
2025-01-16T08:25:48.007848676Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:47 GMT] "GET /favicon.ico HTTP/1.0" 200 61272 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
2025-01-16T08:25:48.564695352Z [vert.x-eventloop-thread-0] INFO io.vertx.ext.web.handler.impl.LoggerHandlerImpl - 172.31.0.1 - - [Thu, 16 Jan 2025 08:25:48 GMT] "GET / HTTP/1.0" 200 496 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

UPDATE: Also have an instance on another server without portainer, where I have the same result:

Image

cmenzi avatar Jan 16 '25 10:01 cmenzi

Do you have any hard limits on your container? Can you send the configuration?

Are any exceptions thrown before the 404? E.g. OOM

jonrosner avatar Jan 16 '25 11:01 jonrosner

No, we use the values you suggested. Container is in state "running" and "healthy".

My guess would be this line here, but there is no log output: https://github.com/EsperoTech/yaade/blob/main/server/src/main/kotlin/com/espero/yaade/server/Server.kt#L274

Is there a way to enable some more verbose logging level?

cmenzi avatar Jan 16 '25 11:01 cmenzi

No, we use the values you suggested. Container is in state "running" and "healthy".

My guess would be this line here, but there is no log output: https://github.com/EsperoTech/yaade/blob/main/server/src/main/kotlin/com/espero/yaade/server/Server.kt#L274

Is there a way to enable some more verbose logging level?

I don't see a reason why the stop method would be called. Also considering that you said that /index.html does still work I don't know how that should work when the server is stopped. Again, are there any suspicious logs before the 404?

jonrosner avatar Jan 17 '25 08:01 jonrosner