Cartella workbox mancante in public/javascript?

Ciao,

mentre indagavo su alcune strane interruzioni che vediamo sui nostri forum, ho anche controllato i log di nginx all’interno del container dell’app. Non li controllo da un po’ di tempo, quindi non posso dire se sono lì da più tempo, ma vedo errori relativi a file Javascript mancanti in una directory che non esiste affatto nella mia installazione.

"/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"

Questi sono solo alcuni esempi. Non sono riuscito a trovarli nemmeno su GitHub e mi chiedevo cosa causasse questi problemi. Mi sentirei più a mio agio se i log degli errori non fossero spam :slight_smile:

Qualche idea?

EDIT: Sto usando la versione 3.2.0.beta1 e vedo anche questi file mancanti nella console del browser…

Workbox sembra avere a che fare con la cache, credo.

Quanto tempo fa hai aggiornato? Potrebbe esserci qualche bug a riguardo, ma penso che potremmo aver bisogno di maggiori informazioni.

1 Mi Piace

Ho aggiornato solo il giorno prima di pubblicare.

Dalla mia ricerca, sembra che workbox abbia a che fare con PWA e debba essere cercato con browser Chrome/Chromium.

Di quali altre informazioni hai bisogno?

Stiamo ancora riscontrando questo problema a 9 mesi di distanza e ancora non riesco a trovare molto a riguardo. Non sono sicuro se nessuno controlli i propri log degli errori nginx o semplicemente non se ne preoccupi.

Qualcuno ha un’idea di cosa stia succedendo e se questo possa causare problemi o meno?

Sto dando la caccia ad alcuni problemi 520/429 che non sembrano essere direttamente correlati a questo, ma mi infastidisce comunque vedere questi errori più e più volte. Potrebbe trattarsi ancora di problemi di cloudflare che tentano di caricare vecchi file da build precedenti? O cache del browser?

Dato che workbox è stato rimosso come dipendenza 2 mesi fa e questo non è un problema che influisce sui siti aggiornati, consiglio di aggiornare il tuo sito.

1 Mi Piace

Sono sulla versione 3.3.0beta2 - Non credo ci sia nulla a cui possa aggiornarmi.

1 Mi Piace

Non sei solo @helmi
Ho avuto problemi passando da 3.2.5 a 3.3.0 (un sacco di 502, 429, ecc.) e ho dovuto tornare a 3.2.5.

Recentemente ho provato a fare nuovamente l’aggiornamento a 3.3.1 sperando che le cose migliorassero. Lo sono state… in un certo senso. Solo una miriade di 502 per tutti gli utenti.

Ho deciso di fare il grande passo e fidarmi del test-passed e ora sono su 3.4.0.beta3-dev ( 2099c33fa7 ) e questo è ciò che i log degli errori di nginx producono ogni tanto.

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: ""

Ancora non so cosa causi il 502 dato che la VM è un 8 Core, 32GB di RAM con un Nvme da 500GB.
Abbiamo optato per una VM grande poiché la nostra community ha circa 450 utenti attivi, 585k argomenti e 21,5 milioni di post.

Sembra che anche la nostra installazione abbia questo problema: dopo l’aggiornamento da 3.2.x a 3.3.x abbiamo avuto ondate di 502 durante la pubblicazione, i post più recenti non si aggiornano e problemi simili.

Sembra che ogni tot (ore? non sono sicuro) ci sia uno script in background che va in errore (?) e crea questi problemi.

modifica: non avevo visto che il nostro tecnico aveva già postato :sweat_smile: quello che ha detto

Riceviamo un’ondata simile di errori ogni poche ore:

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"

In questo caso è con public/assets, ma abbiamo anche voci di log per 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"

Il percorso è cambiato con qualche versione? Probabilmente è quando la cache del browser non viene cancellata correttamente, o l’asset non viene invalidato. O, probabilmente più probabile, sono alcuni bot stupidi che continuano a cercare risorse che hanno trovato una volta. Voglio dire, abbiamo migliaia di visitatori e decine di poster tra due serie di log, quindi non sembra essere un problema generale.

Nel nostro caso l’accesso avviene tramite proxy esterno al container e socket UNIX, quindi nessun IP client visibile da controllare. Per 77.208.167.253 non ho trovato informazioni rilevanti, se sia un bot o meno.

Quale versione stai eseguendo?

3.5.0.beta5-dev, che non serve più questi file, né un frontend aggiornato che li richieda. Come detto, si tratta o di cache/frontend obsoleti (cui normalmente non dovrebbe corrispondere con i documenti HTML dinamici) o di bot, problema del client in ogni caso.

1 Mi Piace