โรงกลั่นล้มเหลวพร้อมข้อความคูณโมดูลที่กำหนด: 'Elixir.Telemetry'

เมื่อฉันพยายามอัปเกรดแอปพลิเคชัน 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 Forum แล้ว:

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
สร้าง Release สำเร็จแล้ว แต่ฉันไม่สามารถอัปเกรดได้ ฉันได้รับข้อความนี้: ตัวจัดการการวางจำหน่ายล้มเหลวในการติดตั้ง: {: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 repots ที่สามารถอัปเดตได้เพียง 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 fwiw คุณสงสัยว่าผู้คนทำการแลกเปลี่ยนความร้อนหรือไม่ ⇑ - person Aleksei Matiushkin; 04.04.2019