Firefox às vezes não consegue carregar/renderizar imagens previamente em cache (avatares)

Estamos investigando o que parece ser um bug do Firefox relacionado ao cache de avatares no disco e sua posterior recuperação por uma solicitação posterior.

Relatado ao Firefox como:

A forma como este problema se manifesta é a ausência de avatares onde normalmente haveria um, por exemplo:

Estes são respectivamente:

<img loading="lazy" alt="" width="24" height="24" src="https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mancera1979/48/732001_2.png" class="avatar" title="mancera1979 - Frequent Poster">
<img loading="lazy" alt="" width="24" height="24" src="https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jca34f/48/340148_2.png" class="avatar" title="JCA34F - Frequent Poster">

e esses URLs redirecionam para, respectivamente:

https://europe1.discourse-cdn.com/arduino/optimized/4X/3/3/7/337a5e4169461364c9805cfad882c9eb0332bdf3_2_48x48.png
https://europe1.discourse-cdn.com/arduino/optimized/4X/4/b/8/4b8c803f304aa7e7c487184224ec9f970c96e8c4_2_48x48.jpeg

Ao inspecionar o DOM usando as ferramentas de desenvolvedor, o Firefox relata “Não foi possível carregar a imagem”

Nunca são as solicitações iniciais que falham - sempre falhou apenas em solicitações subsequentes que carregariam a imagem do cache:

Recarregar a página às vezes faz com que o Firefox carregue a imagem corretamente, por exemplo:

após um recarregamento:


Sabemos que:

… o problema não é específico da aplicação Discourse em si. Reproduzimos o problema com uma página HTML estática contendo apenas links para avatares:

… desabilitar o http3 no Firefox não resolve o problema

… limpar o cache do navegador faz com que as imagens sejam carregadas corretamente na próxima vez

… usuários finais relataram este problema em desktops e dispositivos móveis

Suspeitamos que:

… isso tem algo a ver com a imagem ser carregada após um redirecionamento

Certos de nossos ambientes de hospedagem possuem um “rastreador de redirecionamento” instalado que faz com que uma solicitação para o URL original retorne a imagem em si em vez de um redirecionamento para a imagem. Não acredito que alguém tenha experimentado este problema nesses ambientes.

Não temos:

uma reprodução consistente e clara do problema do início ao fim

6 curtidas

Eu mesmo já vi isso no Firefox. Não sei se é relevante, mas meu site usa bunny.net como cdn

1 curtida

Interessante. OK, se tiver mais detalhes ou passos para reprodução, sinta-se à vontade para postá-los aqui.


:face_with_raised_eyebrow:
:microscope:

Bem, isso é EXTREMAMENTE apropriado :laughing:

4 curtidas

Para mim, isso parece ser nosso próximo passo @david, uma configuração do site que desabilita isso para ver se tem algum impacto.

1 curtida

Como @supermathie tem uma reprodução vaga em uma página estática, talvez possamos tentar criar uma versão disso sem loading="lazy"? Muito mais fácil do que modificar o Discourse para fazer isso.

Isso é algo que você poderia tentar, @supermathie?

2 curtidas

Eu não usaria nenhum outro CDN! :rabbit2:

1 curtida

Tenho recarregado as páginas intermitentemente e, agora, reproduzi o problema carregando a página lazy (funcionou) e, em seguida, a página não-lazy (falhou):

Infelizmente, o Firefox parece ter recarregado completamente os ativos na recarga (o cache está desativado não está definido), mas… isso é estranho:

O usuário parece ter alterado/atualizado seu avatar e redirecionamos para o novo? Não tenho certeza do que aciona isso, @david.

Aposto que esse redirecionamento adicional acionou brevemente o bug do Firefox. O que está alinhado com a diferença de comportamento devido ao rastreador de redirecionamento.

Talvez eu possa acioná-lo?

Mudei meu avatar, vamos ver se ele falha quando eu recarregar em uma hora.

EDIT: bem, não falhou desta vez

mas minhas travessuras nesta página parecem estar afetando mal outras páginas… Nenhum desses avatares está funcionando agora e acho que é porque uma solicitação de rede está “travada”.

2 curtidas

Hoje: Recarreguei a página com lazy e ela carregou normalmente:

Depois carreguei a página sem lazy e:

:person_shrugging:

Então, acho que isso significa que é improvável que lazy= seja a causa do problema? Pelo menos uma coisa foi descartada :sweat_smile:

2 curtidas