Faltando o diretório workbox em public/javascript?

Olá,

enquanto investigava algumas interrupções estranhas que vimos em nossos fóruns, também verifiquei os logs do nginx dentro do contêiner do aplicativo. Não os verifico há algum tempo, então não posso dizer se eles estão lá há mais tempo, mas vejo erros sobre arquivos Javascript ausentes em um diretório que não existe em minha instalação.

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

Estes são apenas alguns exemplos. Também não consegui encontrá-los no github e estava me perguntando o que causa esses problemas. Eu me sentiria mais confortável se os logs de erro não estivessem sendo bombardeados :slight_smile:

Alguma ideia?

EDIT: Estou executando a versão 3.2.0.beta1 e também posso ver esses arquivos ausentes no console do navegador…

O Workbox parece ter a ver com cache, acho.

Há quanto tempo você atualizou? Pode haver algum bug em torno disso, mas acho que podemos precisar de mais informações.

1 curtida

Eu só atualizei no dia anterior à postagem.
Pela minha pesquisa, parece ter a ver com PWA e ser procurado em navegadores Chrome/Chromium.
Que mais informações você precisa?

Ainda estamos vendo isso 9 meses depois e ainda não consigo encontrar muita coisa sobre isso. Não tenho certeza se é que ninguém olha os logs de erro do nginx ou simplesmente não se importa com isso.

Alguém tem alguma ideia do que está acontecendo e se isso pode causar problemas ou não?

Estou investigando alguns problemas 520/429 que não parecem se relacionar diretamente com isso, mas ainda me incomoda ver esses erros repetidamente. Isso pode ser algum problema do Cloudflare ainda tentando carregar arquivos antigos de compilações anteriores? Ou caches do navegador?

Dado que o workbox foi descartado como dependência há 2 meses e este não é um problema que afeta sites atualizados, recomendo que você atualize seu site.

1 curtida

Estou na 3.3.0beta2 - não acho que haja nada para o qual eu possa atualizar.

1 curtida

Você não está sozinho @helmi
Tive problemas ao migrar de 3.2.5 para 3.3.0 (muitos 502, 429, etc.) e tive que reverter para 3.2.5.

Recentemente, tentei atualizar novamente para 3.3.1 esperando que as coisas melhorassem. Elas melhoraram… de certa forma. Apenas uma enxurrada de 502 para todos os usuários.

Decidi ir com tudo e confiar no test-passed e agora estou na 3.4.0.beta3-dev ( 2099c33fa7 ) e é isso que os logs de erro do nginx mostram de vez em quando.

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

Ainda não sei o que está causando o 502, já que a VM tem 8 núcleos, 32 GB de RAM com um NVMe de 500 GB.
Optamos por uma VM grande, pois nossa comunidade tem cerca de 450 usuários ativos, 585 mil tópicos e 21,5 milhões de posts.

Parece que nossa instalação também tem esse problema - desde a atualização de 3.2.x para 3.3.x, temos ondas de 502 ao postar, as últimas postagens não atualizando e problemas semelhantes.

Parece que a cada x tempo (horas? não tenho certeza) há um script em segundo plano que falha (?) e cria esses problemas.

editar: eu não tinha visto que nosso técnico já havia postado :sweat_smile: o que ele disse

Recebemos uma onda semelhante de erros a cada poucas 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"

Neste caso, é com public/assets, mas também temos entradas de log 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.

O caminho mudou com alguma versão? Provavelmente é quando o cache do navegador não é limpo corretamente, respectivamente o asset não é invalidado. Ou, provavelmente mais provável, são alguns bots estúpidos que continuam escaneando por recursos que já encontraram. Quero dizer, temos milhares de visitantes e dezenas de postadores entre dois conjuntos de logs como esses, então não parece ser um problema geral.

No nosso caso, o acesso é feito via proxy fora do container e socket UNIX, portanto, não há IPs de cliente visíveis para verificar. Para 77.208.167.253 não consegui encontrar nenhuma informação relevante, se é um bot ou não.

Qual versão você está executando?

3.5.0.beta5-dev, que não serve mais esses arquivos, nem um frontend atualizado solicitando-os. Como dito, seja cache/frontend desatualizado (o que normalmente não deveria acontecer com os documentos HTML dinâmicos) ou bots, problema do cliente em qualquer caso.

1 curtida