Vorhin um Mitternacht crashte mir meine #
Pleroma Instanz ohne dass ich irgendwas geändert hätte. Also weder den Code geupdated noch irgendwas am benutzten #
Erlang oder #
Elixir geändert. Nichts! Es ging einfach nur der Cronjob zum aufräumen los und der konnte schon nicht mehr starten.
==> prometheus_ex
Compiling 19 files (.ex)
== Compilation error in file lib/prometheus/buckets.ex ==
** (UndefinedFunctionError) function Kernel.Utils.defdelegate/2 is undefined or private. Did you mean:
* defdelegate_all/3
* defdelegate_each/2
(elixir 1.14.0) Kernel.Utils.defdelegate({:new, [line: 18], [{:arg, [line: 18], nil}]}, [])
lib/prometheus/buckets.ex:18: (module)
could not compile dependency :prometheus_ex, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile prometheus_ex", update it with "mix deps.update prometheus_ex" or clean it with "mix deps.clean prometheus_ex"
Wenn man danach googled kommt man auf ein Problem mit einer neueren Elixir Version 1.14 Version:
#^https://github.com/deadtrickster/prometheus.ex/issues/48Das sieht also so aus, als ob der Pleroma Code (den ich ja nicht erneuert habe) mit Elixir 1.14 nicht klar kommt. Ich kann nur spekulieren, dass bei #
Uberspace die Elixir Version angehoben wurde?
Glücklicher Weise steht in genau dem Issue auch, wie man das Problem auflösen kann, bis Elixir 1.14 gefixt ist. Man sucht in der Datei
mix.exs
die Zeile mit dem
prometheus_ex
Eintrag. Bei mir sah die so aus:
{:prometheus_ex,
git: "https://git.pleroma.social/pleroma/elixir-libraries/prometheus.ex.git",
ref: "a4e9beb3c1c479d14b352fd9d6dd7b1f6d7deee5",
override: true},
Diese Zeile ersetzt man so dass das gefixte prometheus eingebunden wird:
{:prometheus_ex,
git: "https://github.com/lanodan/prometheus.ex",
branch: "fix/elixir-1.14",
override: true},
Hat man das erledigt kann man vorgehen, wie es bei #
Uberspace für einem Update der Quellen beschrieben ist (
#^https://lab.uberspace.de/guide_pleroma):
mix deps.get
MIX_ENV=prod mix ecto.migrate
supervisorctl start pleroma
Der zweite Command crashte bei mir vorher, nun lief er durch und auch der Service ließ sich wieder starten. \o/
cc: @
Uberspace Support