Hello Traefik followers,
I need your swarm knowledge today and hope you can help me a bit.
I use Leaflet to display 2D maps in an app. Similar to Google Maps, an image is split into small tiles in several zoom levels. If you zoom in and pan back and forth, more tiles are dynamically reloaded. Since we switched to Traefik, this no longer works properly. Everything works initially, but after about 3000 requests, not all tiles are loaded. Chrome Developer Network shows that there are several open connections in the "pending" state. After that, nothing really works. If I restart Traefik, it works again immediately.
From the structure:
Client > Traefik > NodeJS (working as HTTP to S3 public gateway) > S3 (Minio)
In the traefik log at level DEBUG I see the following error messages:
traefik | time="2023-06-05T15:05:30Z" level=debug msg="Request has been aborted [my.ip.add.res:51420 - /projects/2/maps/tiles/1047679055122BXZQpCoHAdg5i3s8yKx0YLqaS4MDh9nFktIGOuUEm.pdf/3/5/1.png]: net/http: abort Handler" middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik | time="2023-06-05T15:05:31Z" level=debug msg="Request has been aborted [my.ip.add.res:51420 - /projects/2/maps/tiles/1047679055122BXZQpCoHAdg5i3s8yKx0YLqaS4MDh9nFktIGOuUEm.pdf/2/1/0.png]: net/http: abort Handler" middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik | time="2023-06-05T15:05:31Z" level=debug msg="Request has been aborted [my.ip.add.res:51420 - /projects/2/maps/tiles/1047679055122BXZQpCoHAdg5i3s8yKx0YLqaS4MDh9nFktIGOuUEm.pdf/2/0/0.png]: net/http: abort Handler" middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik | time="2023-06-05T15:05:31Z" level=debug msg="Request has been aborted [my.ip.add.res:51420 - /projects/2/maps/tiles/1047679055122BXZQpCoHAdg5i3s8yKx0YLqaS4MDh9nFktIGOuUEm.pdf/2/2/0.png]: net/http: abort Handler" middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik | time="2023-06-05T15:05:31Z" level=debug msg="Request has been aborted [my.ip.add.res:51420 - /projects/2/maps/tiles/1047679055122BXZQpCoHAdg5i3s8yKx0YLqaS4MDh9nFktIGOuUEm.pdf/2/0/1.png]: net/http: abort Handler" middlewareName=traefik-internal-recovery middlewareType=Recovery
My attempts and findings:
-
Traefik restart solves the problem in short term
-
Access from other computers or Chrome Incognito, for example, continues to work independently initially
-
If I stop Traefik and start nginx, this problem does not occure
-
The problem occurs with both Traefik binary and Docker
-
It doesn't matter whether NodeJS is addressed with http or https (with 1.1 or h2)
-
When I open NodeJS directly - without Traefik - the problem does not occur
-
If I force Chrome to use HTTP 1.1 instead of H2, the problem does not occur
-
I tried Traefik 3.0 beta 2 without change
Do you have an explanation or clue about these error messages?