Сбой ликеро-водочного завода с сообщением Умножить определенный модуль: «Эликсир.Телеметрия»

Когда я попытался обновить работающее приложение Phoenix с помощью Distillery, сборка завершилась с ошибкой с такими сообщениями:

Generated teamgenik app
==> Assembling release..
==> Building release my_app:0.10.7 using environment prod
==> Generated .appup for artificery 0.2.6 -> 0.4.1
==> Generated .appup for db_connection 2.0.3 -> 2.0.6
==> Generated .appup for decimal 1.6.0 -> 1.7.0
==> Generated .appup for ecto 3.0.6 -> 3.0.8
==> Generated .appup for ecto_sql 3.0.4 -> 3.0.0
==> Generated .appup for phoenix 1.4.0 -> 1.4.3
==> Generated .appup for phoenix_html 2.13.0 -> 2.13.2
==> Generated .appup for phoenix_pubsub 1.1.1 -> 1.1.2
==> Generated .appup for plug 1.7.1 -> 1.7.2
==> Generated .appup for plug_cowboy 2.0.1 -> 2.0.2
==> Generated .appup for teamgenik 0.10.6 -> 0.10.7
==> Generated .appup for telemetry 0.3.0 -> 0.2.0
==> Release failed with multiple errors:
    Multiply defined module: 'Elixir.Telemetry'

Я работаю с этим приложением несколько месяцев и несколько раз успешно обновлял его. На этот раз я хочу поднять версию Phoenix с 1.4.0 до 1.4.3.

Я прочитал эту запись на форуме Elixir:

https://elixirforum.com/t/distillery-build-error-multiply-defined-module-elixir-collectable-ecto-adapters-sql-stream/19489

Я пробовал mix deps.clean --all и mix release.clean. Любой совет или предложение?

ОБНОВЛЕНИЕ

Я заметил странное явление. Когда я выполнил bin/my_app upgrade 0.10.7 на RELEASE_ROOT_DIR, я получил это сообщение об ошибке (обратите внимание на двойные кавычки и запятую между ними):

Could not locate code path for release-my_app","0.10.6!

person Tsutomu    schedule 02.04.2019    source источник
comment
Релиз был успешно собран, но я не смог его обновить. Я получаю это сообщение: Не удалось установить обработчик выпуска: {:no_matching_relup, '0.10.7', '0.10.6'}   -  person Tsutomu    schedule 02.04.2019
comment
mix hex.outdated? Кроме того, вы изменили версию самого приложения в mix.exs на более позднюю?   -  person Aleksei Matiushkin    schedule 02.04.2019
comment
MIX_ENV=prod mix hex.outdated сообщает, что только ecto_sql можно обновить с 3.0.0 до 3.0.5. Версия на mix.exs - 0.10.7. Я хочу перейти на эту версию. Предыдущая версия была 0.10.6.   -  person Tsutomu    schedule 02.04.2019
comment
Ну, это похоже на distillery проблему/ловушку, которая не связана с исходным вопросом. Итак, как собрать релиз? В частности, есть ли у вас AUTO_VERSION=commit-count+git-revision+branch-unless-master или какие-либо другие AUTO_VERSION в вашем .deliver/config?   -  person Aleksei Matiushkin    schedule 02.04.2019
comment
Сейчас я читаю github.com/bitwalker/distillery/issues/495, что кажется иметь отношение к моей проблеме.   -  person Tsutomu    schedule 02.04.2019


Ответы (1)


Хотя я не смог определить основную причину моей проблемы, мне удалось обновить свое приложение следующим образом.

  1. Остановите приложение.
  2. Удалите каталог выпуска.
  3. Восстановите каталог выпуска.
  4. Удалить каталог _build из исходного каталога.
  5. Разверните приложение с помощью mix release.

Другими словами, я отказался от подкачки кода хоста и решил заново развернуть свое приложение.

Кажется, что моя проблема связана с этими проблемами:

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

person Tsutomu    schedule 03.04.2019
comment
@JoséValim между прочим, вам было интересно, делают ли люди горячую замену. ⇑ - person Aleksei Matiushkin; 04.04.2019