Неудача при добавлении темы навсегда блокирует её установку

Только что столкнулся с этим на новом форуме. Я попытался добавить тему, но это не удалось из-за одного из расширений файлов. Затем я временно разрешил *, чтобы попытаться исправить проблему, после чего при попытке добавить тему начал получать ошибки 500.

Сообщение

Не удалось корректно обработать перехваченный ответ: ActiveRecord::RecordNotUnique : PG::UniqueViolation: ОШИБКА: дубликат значения ключа нарушает уникальное ограничение "index_child_themes_on_parent_theme_id_and_child_theme_id"
ДЕТАЛИ: Ключ (parent_theme_id, child_theme_id)=(50, 35) уже существует.

Трассировка стека

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 `block 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'

О, странно, похоже, мы некорректно обрабатываем очистку при ошибке.

Это воспроизводится?

Я перепроверю, но шаги для воспроизведения должны быть следующими:

  1. Найдите тему с файлом, который по умолчанию не разрешён (или удалите всё из списка разрешённых расширений темы или сделайте что-то подобное).
  2. Попробуйте импортировать тему.
  3. Убедитесь, что импорт не удался из-за расширения файла.
  4. Разрешите соответствующие расширения (или просто *).
  5. Попробуйте снова импортировать тему, но это всё равно не сработает.

Также, возможно, к теме должны быть прикреплены какие-то компоненты темы, но я не уверен.

Изначально я вызвал эту проблему с помощью собственной темы, но, насколько мне известно, теоретически это может вызвать большинство тем.

Редактирование:
Верно, единственное реальное обязательное условие здесь — заблокированный файл, поэтому тема с пользовательским шрифтом, логотипом и т. д. может вызвать эту проблему, если вы запретите соответствующее расширение файла. (Кроме того, загрузка сотрудниками, apparently, переопределяет загрузку тем, поэтому убедитесь, что файл не разрешён ни в одном из этих настроек).

Привет :wave:

Я проверил вашу тему, похоже, проблема в вашем файле about.json.

В компонентах есть дублирование.

Строка 29 и строка 38 :arrow_down_small:


Однако вы устанавливаете довольно много компонентов одновременно с темой. Все ли они необходимы? :slightly_smiling_face:

2 лайка

Ой, моя ошибка, извините.

Я никогда не планировал, что кто-то ещё будет использовать эту тему, она просто сильно настроена под мои предпочтения, и в ней есть те компоненты темы, которые я люблю иметь под рукой.