Falhar ao adicionar um tema impede permanentemente que esse tema seja adicionado

Acabei de ter isso em um novo fórum, tentei adicionar um tema, que falhou devido a uma das extensões de arquivo. Eu então permiti * temporariamente apenas para tentar corrigir o problema, e então comecei a receber 500s ao tentar adicionar o tema.

Mensagem

Falha ao processar a resposta sequestrada corretamente : ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERRO:  o valor de chave duplicada viola a restrição de chave única "index_child_themes_on_parent_theme_id_and_child_theme_id"
DETALHE:  A chave (parent_theme_id, child_theme_id)=(50, 35) já existe.

Backtrace

rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

Que estranho, acho que não estamos limpando corretamente em caso de erro.

Isso é reproduzível?

Verificarei, mas os passos de reprodução devem ser:

  1. Encontre um tema com algum arquivo que não é permitido por padrão (ou exclua tudo da lista de extensões permitidas do tema ou similar)
  2. Tente importar o tema
  3. Veja que falha por causa da extensão
  4. Permita extensões relevantes (ou apenas *)
  5. Ainda tente e falhe ao importar o tema.

O tema também pode precisar de alguns componentes de tema anexados a ele, não tenho certeza.

Originalmente causei isso usando meu próprio tema, mas, que eu saiba, a maioria dos temas teoricamente pode causar isso.

Editar:
Certo, a única condição realmente obrigatória aqui parece ser o arquivo bloqueado, então um tema com uma fonte personalizada, logotipo, etc., pode acionar isso se você proibir essa extensão de arquivo. (Além disso, os uploads da equipe aparentemente substituem os uploads de temas, portanto, certifique-se de que não seja permitido em nenhuma das configurações)

Olá :wave:

Verifiquei seu tema, parece que o problema está no seu about.json.

Há uma duplicação nos componentes.

Linha 29 com 38 :arrow_down_small:


No entanto, você instala muitos componentes ao mesmo tempo com o tema. Todos eles são necessários? :slightly_smiling_face:

2 curtidas

Ah, opa! A culpa é minha, desculpe.

Eu nunca realmente pretendi que mais alguém usasse o tema, ele está apenas muito ajustado da maneira que eu gosto, e tem os componentes de tema que gosto de ter disponíveis.