Ich betreibe eine selbst gehostete Instanz von Discourse unter https://forum.embeetle.com.
Gestern ist das Ein-Klick-Browser-Upgrade fehlgeschlagen, also habe ich mich auf dem Server angemeldet und versucht, ./launcher rebuild app auszuführen.
Dies schlug ebenfalls fehl, mit der folgenden Fehlermeldung:
I, [2024-08-01T20:46:09.837292 #1] INFO -- :
I, [2024-08-01T20:46:09.837631 #1] INFO -- : cd /var/www/discourse & su discourse -c 'yarn install --frozen-lockfile & yarn cache clean'
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
error Error: https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz: ESOCKETTIMEDOUT
at ClientRequest.<anonymous> (/usr/share/yarn/lib/cli.js:142037:19)
at Object.onceWrapper (node:events:631:28)
at ClientRequest.emit (node:events:517:28)
at TLSSocket.emitRequestTimeout (node:_http_client:847:9)
at Object.onceWrapper (node:events:631:28)
at TLSSocket.emit (node:events:529:35)
at Socket._onTimeout (node:net:598:8)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7)
Danach scheint der Befehl zu hängen (nichts passiert für mindestens 10 Minuten), also habe ich ihn beendet und es erneut versucht. Gleiches Ergebnis.
Es gibt kein Netzwerkproblem: Innerhalb des Docker-Containers (./launcher enter app) gibt wget https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz erfolgreich in weniger als 0,1 Sekunden zurück.
Ich habe mir dieses ähnliche Problem angesehen: Error during the update ESOCKETTIMEDOUT registry.yarnpkg.com - #4 by jericson Der dortige Vorschlag ist, das Timeout zu erhöhen, indem /var/discourse/templates/web.template.yml bearbeitet wird.
Leider existiert dieser Pfad in meiner Installation nicht (innerhalb des Docker-Containers gibt es kein /var/discourse; es gibt einen Ordner var/www/discourse, der das Standardarbeitsverzeichnis beim Betreten der App ist, aber dieser hat keinen Unterordner templates; ich habe nach web.template.yml gesucht, konnte es aber nirgends finden.
Ich bin auch nicht sehr zuversichtlich, dass die Erhöhung des Timeouts das Problem beheben würde, angesichts des sehr schnellen Downloads von https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz.
Ich habe schließlich ein Backup von vor ein paar Tagen wiederhergestellt, mit einer älteren Version von Discourse, und die aktuellste Version von discourse/shared hineinkopiert. Das funktioniert, also ist das Forum wieder online.
Stimmt etwas mit der neuesten Version im Main-Branch nicht? Ich habe tatsächlich versucht, ./launcher rebuild app erneut auszuführen, und es schlägt wieder auf die gleiche Weise fehl, also musste ich das Forum erneut aus dem Backup wiederherstellen.