¿Falta el directorio workbox en public/javascript?

Hola,

mientras investigaba algunas interrupciones extrañas que vemos en nuestros foros, también estuve revisando los registros de nginx dentro del contenedor de la aplicación. No los he revisado en mucho tiempo, así que no puedo decir si han estado ahí por más tiempo, pero veo errores sobre archivos Javascript faltantes en un directorio que no existe en mi instalación.

"/var/www/discourse/public/javascripts/workbox/workbox-core.prod.js" 
"/var/www/discourse/public/javascripts/workbox/workbox-cacheable-response.prod.js" 
"/var/www/discourse/public/javascripts/workbox/workbox-routing.prod.js" 
"/var/www/discourse/public/javascripts/workbox/workbox-strategies.prod.js" 
"/var/www/discourse/public/javascripts/workbox/workbox-sw.js"

Estos son solo algunos ejemplos. Tampoco pude encontrarlos en GitHub y me preguntaba qué causa estos problemas. Me sentiría más cómodo si los registros de errores no estuvieran saturados :slight_smile:

¿Alguna idea?

EDITAR: Estoy ejecutando 3.2.0.beta1 y también puedo ver esos archivos faltantes en la consola del navegador…

Workbox parece tener que ver con el almacenamiento en caché, creo.

¿Cuándo fue la última vez que actualizaste? Podría haber algún error al respecto, pero creo que podríamos necesitar más información.

1 me gusta

Solo he actualizado el día antes de publicar.

Según mi investigación, parece tener que ver con PWA y debe buscarse con navegadores Chrome/Chromium.

¿Qué más información necesita?

Seguimos viendo esto 9 meses después y todavía no encuentro mucha información al respecto. No estoy seguro si es que nadie revisa sus registros de errores de nginx o simplemente no les importa.

¿Alguien tiene una idea de lo que está pasando y si esto podría causar problemas o no?

Estoy investigando algunos problemas de 520/429 que no parecen estar directamente relacionados con eso, pero aún así me molesta ver estos errores una y otra vez. ¿Podrían ser problemas de Cloudflare que todavía intentan cargar archivos antiguos de compilaciones anteriores? ¿O cachés del navegador?

Dado que workbox se eliminó como dependencia hace 2 meses y este no es un problema que afecte a los sitios actualizados, recomiendo actualizar su sitio.

1 me gusta

Estoy en la versión 3.3.0beta2. No creo que haya nada a lo que pueda actualizar.

1 me gusta

No estás solo @helmi
Tuve problemas al pasar de 3.2.5 a 3.3.0 (muchos errores 502, 429, etc.) y tuve que volver a la versión 3.2.5.

Recientemente intenté actualizar de nuevo a 3.3.1 esperando que las cosas mejoraran. Lo hicieron… en cierto modo. Solo una plétora de errores 502 para todos los usuarios.

Decidí apostar fuerte y confiar en el test-passed y ahora estoy en 3.4.0.beta3-dev ( 2099c33fa7 ) y esto es lo que los registros de errores de nginx arrojan de vez en cuando.

2024/10/08 21:44:15 [error] 79#79: *16810 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-routing.prod.js\" failed (2: No such file or directory), client: 70.79.108.71, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-routing.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"https://netgamers.it/service-worker.js\"
2024/10/08 21:45:22 [error] 75#75: *17175 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-core.prod.js\" failed (2: No such file or directory), client: 216.128.26.206, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-core.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"https://netgamers.it/service-worker.js\"
2024/10/08 21:47:50 [error] 74#74: *17968 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-core.prod.js\" failed (2: No such file or directory), client: 77.208.167.253, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-core.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"\"
2024/10/08 21:47:51 [error] 74#74: *17981 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-cacheable-response.prod.js\" failed (2: No such file or directory), client: 77.208.167.253, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-cacheable-response.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"\"
2024/10/08 21:47:51 [error] 74#74: *17982 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-sw.js\" failed (2: No such file or directory), client: 77.208.167.253, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-sw.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"\"
2024/10/08 21:47:51 [error] 74#74: *17983 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-expiration.prod.js\" failed (2: No such file or directory), client: 77.208.167.253, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-expiration.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"\"
2024/10/08 21:47:51 [error] 77#77: *17984 open() \"/var/www/discourse/public/assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-routing.prod.js\" failed (2: No such file or directory), client: 77.208.167.253, server: _, request: \"GET /assets/workbox-9b5674ca0ecb89bae1fa6f4b09a18f12/workbox-routing.prod.js HTTP/2.0\", host: \"netgamers.it\", referrer: \"\"

Todavía no sé qué está causando el error 502, ya que la VM tiene 8 núcleos, 32 GB de RAM y un NVMe de 500 GB.
Optamos por una VM grande ya que nuestra comunidad tiene alrededor de 450 usuarios activos, 585k temas y 21.5 millones de publicaciones.

Parece que nuestra instalación también tiene este problema; desde que actualizamos de la versión 3.2.x a la 3.3.x, hemos estado experimentando oleadas de errores 502 al publicar, las últimas publicaciones no se actualizan y problemas similares.

Parece que cada cierto tiempo (¿horas? no estoy seguro) hay un script en segundo plano que falla (?) y crea estos problemas.

edición: no vi que nuestro técnico ya había publicado :sweat_smile: lo que dijo

Recibimos una oleada similar de errores cada pocas horas:

2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-core.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-core.prod.js HTTP/1.1", host: "XXXX"
2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-routing.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-routing.prod.js HTTP/1.1", host: "XXXX"
2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-expiration.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-expiration.prod.js HTTP/1.1", host: "XXXX"
2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-sw.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-sw.js HTTP/1.1", host: "XXXX"
2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-cacheable-response.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-cacheable-response.prod.js HTTP/1.1", host: "XXXX"
2025/05/19 16:48:10 [error] 63#63: *1738520 open() "/var/www/discourse/public/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-strategies.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-strategies.prod.js HTTP/1.1", host: "XXXX"

En este caso es con public/assets, pero también tenemos entradas de registro para public/javascript:

2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-sw.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-sw.js HTTP/1.1", host: "XXXX"
2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-routing.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-routing.prod.js HTTP/1.1", host: "XXXX"
2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-cacheable-response.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-cacheable-response.prod.js HTTP/1.1", host: "XXXX"
2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-strategies.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-strategies.prod.js HTTP/1.1", host: "XXXX"
2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-core.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-core.prod.js HTTP/1.1", host: "XXXX"
2025/05/12 18:00:39 [error] 78023#78023: *701261 open() "/var/www/discourse/public/javascripts/workbox/workbox-expiration.prod.js" failed (2: No such file or directory), client: unix:, server: _, request: "GET /forum/javascripts/workbox/workbox-expiration.prod.js HTTP/1.1", host: "XXXX"

¿Cambió la ruta con alguna versión? Probablemente sea cuando la caché del navegador no se borra correctamente, o el activo no se invalida. O, probablemente más probable, son algunos bots tontos que siguen escaneando recursos que encontraron una vez. Quiero decir, tenemos miles de visitantes y docenas de publicadores entre dos conjuntos de registros como estos, por lo que no parece ser un problema general.

En nuestro caso, el acceso se realiza a través de un proxy fuera del contenedor y un socket UNIX, por lo tanto, no hay IPs de cliente visibles para verificar. Para 77.208.167.253 no pude encontrar ninguna información relevante, ya sea que sea un bot o no.

¿Qué versión estás ejecutando?

3.5.0.beta5-dev, que ya no sirve estos archivos, ni un frontend actualizado que los solicite. Como se mencionó, ya sea caché/frontend desactualizado (lo cual normalmente no debería suceder con los documentos HTML dinámicos) o bots, problema del cliente en cualquier caso.

1 me gusta