Loading huge playlists with over 3k tracks will timeout the internal REST server before the playlist has finished loading. This seems to happen if IPv6 Load-balancing is enabled, as it takes a lot of time to send each request to fetch all of the tracks, the internal REST server decides to time out before all of the tracks have been fetched. This is reflected in the logs as follows:
***Here we start loading the playlist***: 2021-03-20 13:40:06.999 INFO 155474 --- [ XNIO-1 task-15] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "https://www.youtube.com/playlist?list=PLH7WMWpWl4GUpYAbFYoQZbIUGDN2MMokC"
2021-03-20 13:40:07.012 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:7493:501c:9393:57e2:5468
2021-03-20 13:40:08.193 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:7bc6:80b9:3676:37e6:5717
2021-03-20 13:40:09.394 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:7956:c88d:3742:e10f:6ed8
2021-03-20 13:40:10.609 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:a28:f1d0:1228:e2ae:b121
2021-03-20 13:40:11.729 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:2d73:fbe9:aea6:c06c:6c02
2021-03-20 13:40:12.882 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:4a02:47c0:95f4:b0d5:42bd
2021-03-20 13:40:14.097 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:45e0:5eb6:3df7:f12b:6daa
2021-03-20 13:40:15.288 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:6261:f2c5:54eb:3539:27b8
2021-03-20 13:40:16.528 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:6fbd:64f6:9d05:268:7f08
2021-03-20 13:40:17.879 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:1d31:db21:9eee:d15d:1eba
2021-03-20 13:40:19.198 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:42d:4300:8f38:ddfc:ec4d
2021-03-20 13:40:20.443 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:dd1:2d31:4f37:faec:4815
2021-03-20 13:40:21.711 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:3910:7571:1656:46cf:c4ff
2021-03-20 13:40:23.021 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:2ebe:2749:7de9:fedb:4124
2021-03-20 13:40:24.206 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:4208:b02c:9258:7092:fa7a
2021-03-20 13:40:25.511 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:5b2b:a880:43bb:38a8:1f88
2021-03-20 13:40:26.669 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:1241:9766:4d3f:5fda:c146
2021-03-20 13:40:27.843 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:6f2c:9916:79c:193c:75a8
2021-03-20 13:40:29.143 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:1077:eb68:bba5:68bb:66f7
2021-03-20 13:40:30.550 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:72f3:450e:cde2:2b49:fe2b
2021-03-20 13:40:31.904 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:32c3:38a8:3374:1005:ffd2
2021-03-20 13:40:33.278 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:1470:6b80:563:7d2e:5e7b
2021-03-20 13:40:34.761 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:15b0:1920:9018:dd58:f675
2021-03-20 13:40:36.078 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:1c44:d20f:2a7a:f739:b06a
***The server times out before it's done loading and returns with a 503***: 2021-03-20 13:40:37.028 WARN 155474 --- [ XNIO-1 task-16] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
2021-03-20 13:40:37.333 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:451b:d399:3fff:e472:f528
2021-03-20 13:40:38.769 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:6877:be78:9902:61f2:c186
2021-03-20 13:40:40.024 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:27a3:9938:1943:d996:a3ac
2021-03-20 13:40:41.410 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:2525:8b8a:dd8e:37d3:42d2
2021-03-20 13:40:42.731 INFO 155474 --- [ader-2-thread-1] c.s.l.e.y.tools.ip.Ipv6Block : /dead:beef:7d52:4729:2feb:23d2:d68f:9d9c
***Playlist finally loaded***: 2021-03-20 13:40:44.085 INFO 155474 --- [ader-2-thread-1] lavalink.server.player.AudioLoader : Loaded playlist Chill
Version info
Client used: My own custom library
Version: 29fb37958c3514386c58fc62b6099d5c5f59a5ac-SNAPSHOT
Build: 1215
Build time: 07.03.2021 15:31:10 UTC
Branch dev
Commit: 29fb379
Commit time: 07.03.2021 15:28:32 UTC
JVM: 14.0.2
Lavaplayer 1.3.73
Description
Loading huge playlists with over 3k tracks will timeout the internal REST server before the playlist has finished loading. This seems to happen if IPv6 Load-balancing is enabled, as it takes a lot of time to send each request to fetch all of the tracks, the internal REST server decides to time out before all of the tracks have been fetched. This is reflected in the logs as follows:
Version info
Client used: My own custom library