/user_avatar retorna HTTP 500 após nova atualização

Todos os avatares estão aparecendo assim:

image

Ao abrir em uma nova aba, http://forum.example.org/user_avatar/forum.example.org/user/48/681_2.png responde com HTTP 500.

Estou usando upload S3 para imagens (blackblaze). Parece que uma imagem de avatar é carregada lá. Tentei desativá-lo, o problema persiste.

Não parece ser um problema de proxy. Tentei vincular a porta ao servidor, o mesmo problema. Abrir http://localhost:8082/user_avatar/forum.example.org/user/48/681_2.png resulta em:

Isso só aconteceu após a nova atualização: 3.6.0.beta2-latest

Já executei os dois rake avatars:refresh e rake posts:rebake conforme instruído em problemas semelhantes.

Algum erro no console do navegador ou em /logs?

Sim,

console og:

681_2.png:1
GET https://forum.example.org/user_avatar/forum.example.org/othman/24/681_2.png 500 (Internal Server Error)
Image		
(anonymous)	@	ajax.js:133
XMLHttpRequest.send		
o	@	ajax.js:188
A	@	ajax.js:201
#Qa	@	chat-api.js:583
listCurrentUserChannels	@	chat-api.js:299
(anonymous)	@	chat.js:210
loadChannels	@	chat.js:209
(anonymous)	@	chat-setup.js:140
eZ	@	plugin-api.gjs:3522
g	@	chat-setup.js:44
initialize	@	chat-setup.js:199
(anonymous)	@	app.js:239
Promise.then		
(anonymous)	@	start-app.js:8
await in (anonymous)		
(anonymous)	@	discourse-boot.js:13
(anonymous)	@	discourse-boot.js:1
1 curtida

Encontrado o problema:

O Discourse parece não conseguir se comunicar com o servidor S3

Message (506 cópias relatadas)

Falha ao processar a resposta sequestrada corretamente : Errno::ENETUNREACH : Falha ao abrir conexão TCP para 2605:72c0:6fd:b3::b005:1:80 (Rede inacessível - connect(2) para "2605:72c0:6fd:b3::b005:1" porta 80)

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1665:in `initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1665:in `open'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1665:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1663:in `connect'
/var/www/discourse/lib/final_destination/http.rb:27:in `block in connect'
/var/www/discourse/lib/final_destination/http.rb:17:in `each'
/var/www/discourse/lib/final_destination/http.rb:17:in `each_with_index'
/var/www/discourse/lib/final_destination/http.rb:17:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1642:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1631:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/discourse/lib/final_destination.rb:544:in `safe_session'
/var/www/discourse/lib/final_destination.rb:479:in `safe_get'
/var/www/discourse/lib/final_destination.rb:170:in `get'
/var/www/discourse/lib/file_helper.rb:91:in `download'
/var/www/discourse/app/controllers/user_avatars_controller.rb:176:in `proxy_avatar'
/var/www/discourse/app/controllers/user_avatars_controller.rb:144:in `show_in_site'
/var/www/discourse/app/controllers/user_avatars_controller.rb:90:in `block (2 levels) in show'
/var/www/discourse/lib/hijack.rb:68:in `instance_eval'
/var/www/discourse/lib/hijack.rb:68:in `block (2 levels) in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/lib/hijack.rb:68:in `block in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:911:in `callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:797:in `call_callback'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:803:in `call_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:692:in `resolve_with'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1325:in `resolve'
/var/www/discourse/lib/scheduler/defer.rb:125:in `block in do_work'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:119:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:105:in `block (2 levels) in start_thread'

Existe um firewall ou alguma limitação de rede aqui?

Não. O que está confuso é que este mesmo backend funciona para imagens em posts normais, mas não para avatares.

2 curtidas

Sim, isso é tão estranho.

@avidseeker você conseguiu resolver seu problema?