Kann die standardmäßig beobachtete Kategorie/Tags nicht speichern

Ich habe ein separates Thema für dieses Problem eröffnet. Ich befinde mich auf dem Branch tests-passed und habe bereits einen Neuaufbau durchgeführt. Der abgesicherte Modus zeigt das Problem weiterhin.
(2cb805a683)

Anonymisiertes Fehlerprotokoll: TypeError: Cannot read property 'categories' of undefined at https://domain - Pastebin.com

Schritte zur Reproduktion? Beim Auswählen einer Kategorie als Standardbeobachtung und Drücken des grünen Buttons passiert nichts. Das rote Kreuz führt zur Rückgängigmachung, und das grüne Häkchen bewirkt ebenfalls nichts (es sollte nachfragen, ob die Änderung auf alte Benutzer angewendet werden soll; dies funktioniert auf einem anderen von mir installierten Forum).

Edit: Klarerer Titel

Das ist weder die Lösung noch der Fall.

Zur Aktualisierung meines Falls: Ich habe auf einem neuen Server eine saubere Installation durchgeführt, und es funktioniert. Ich kann die Einstellung problemlos aktivieren. Als ich jedoch das Backup meiner Produktionsseite wiederhergestellt habe, trat dasselbe Problem erneut auf. Ich bin völlig ratlos. Dies war vor nur zwei Tagen eine saubere Installation, und ich habe keine Ahnung, was ich falsch gemacht habe.

Wenn jemand vom Team das Problem selbst überprüfen möchte, kann ich Ihnen einen Admin-Zugang zu meiner Staging-Umgebung bereitstellen. Sie können dann tun, was immer nötig ist, um das Problem zu untersuchen.

Haben Sie auf einem Host mit einem anderen Hostnamen eine Import durchgeführt und ihn auf diesen Server wiederhergestellt?

Ja. Um genauer zu sein: Ich habe den Staging-Server auf stage1.domain.com eingerichtet, das erste Setup durchgeführt, Wiederherstellungen aktiviert, dies über die Weboberfläche hochgeladen und wiederhergestellt.

Aber lassen Sie mich das anders fragen: Sollte der Hostname in /etc/hosts exakt mit meinem Hostnamen in meiner Discourse app.yml-Datei übereinstimmen?

Und wie hängt das mit dem Hostnamen zusammen, den ich ursprünglich bei DO eingerichtet habe, und dem Namen, den der Droplet innerhalb von DO hat?

Nein, der Hostname in /etc/hosts ist unerheblich. Wenn es darauf ankäme, würden Sie im Installationsleitfaden aufgefordert, diesen zu bestätigen.

Der Leitfaden, auf den Jay verlinkt hat, enthält alle erforderlichen Schritte für Änderungen des Domainnamens.

Habt ihr beide dieses Problem gelesen? Es hat nichts mit einer Domain-Änderung zu tun, und es ist wirklich frustrierend zu sehen, wie Leute einfach irgendeine URL an mich werfen. Ich kenne den Leitfaden. Warum verweisen alle immer wieder darauf? Das ist nicht das Problem, meine Seite funktioniert einwandfrei, abgesehen von dem Fehler.

Ich habe das Gefühl, nach zwei Tagen bei diesem verrückten Problem einfach im Dunkeln gelassen zu werden. Bitte lest den Eröffnungsbeitrag noch einmal. Ich KANN DIE STANDARD-ÜBERWACHUNGS-EINSTELLUNGEN NICHT SPEICHERN – der Hostname ist irrelevant und korrekt, daher brauche ich diesen Leitfaden nicht, noch einmal.

Ist da jemand vom Team hier? Es ist super nett, das in unter 30 Minuten zu installieren, aber sobald es Probleme gibt, stelle ich fest, dass viele Forenthemen offen und ungelöst bleiben. Ich fange an zu denken, dass es ein Fehler war, dies selbst zu hosten.

Also, es funktioniert.

Bis du dein Backup wiederherstellst.

Das deutet darauf hin, dass mit den wiederhergestellten Daten etwas nicht stimmt. Wir haben eine Lösung vorgeschlagen, aber du hast kaum etwas darüber gesagt, wie die Daten erstellt wurden, sodass unser Vorschlag möglicherweise falsch ist.

Ja. Das ist ihre Aufgabe, daher werden sie wahrscheinlich erst wieder am Montag da sein.

Auf welche Lösung beziehst du dich? Bisher habe ich zahlreiche Installationen gemäß den Anleitungen durchgeführt, und der Hostname ist korrekt. Mein Vorschlag bezüglich der etc/hosts-Datei war nur eine mögliche Fehlerquelle, von der ich mittlerweile weiß, dass sie damit nichts zu tun hat. Ja, wir können also feststellen, dass das Problem in meinem Backup oder der Datenbank liegt.

Ich habe jedoch nichts Ungewöhnliches getan. Mein Forum hat gestartet, und Benutzer haben sich angemeldet – ich habe niemals etwas an meiner Datenbank verändert. Das lässt mich völlig ratlos zurück, wie ich dieses Problem lösen soll.

Kannst du mir sagen, was du brauchst, um mir bei der Lösung zu helfen? Ich habe im Eröffnungspost einen Pastebin-Link zu meinem Fehlerprotokoll bereitgestellt. Hilft das?

So habe ich die Wiederherstellungsdaten erstellt. Die Daten sind eigentlich nur eine zwei Tage alte Datenbank, die von Grund auf neu erstellt wurde.

  1. Backup auf der Produktionsseite erstellt
  2. Tar.gz-Datei über die per E-Mail gesendete URL heruntergeladen
  3. Staging-Umgebung auf einem neuen DO-Droplet eingerichtet
  4. Wiederherstellungen in den Einstellungen erlaubt und über die Admin-Oberfläche wiederhergestellt.

Dieses Problem sollte behoben sein,

Das habe ich gedacht und gehofft, als ich diesen Commit gesehen habe. Die neu eingerichtete Staging-Website hat tatsächlich diesen neuen Build, aber das Problem besteht weiterhin..

Edit: Meine Staging-Umgebung hat tatsächlich ein Upgrade erhalten – ich installiere es jetzt und melde mich zurück.

Edit2: @dax Ich kann bestätigen, dass ich meine stage1-Domain aktualisiert habe und immer noch das gleiche Problem habe.
Installiert
2.4.0.beta6
(6f6a02645c)

Kannst du ein wenig Debugging übernehmen? Ich kann deinen Fehler nicht reproduzieren, und da es in der Produktion läuft, sagen mir die Logs bisher nicht genug aus.

Das könntest du tun:

  • Öffne die Chrome-Entwicklerkonsole (geht auch mit anderen Browsern, aber das kenne ich am besten)
  • Führe die problematische Aktion aus
  • Kopiere die erste Zeile des Stacktraces, die in deinem Pastbin so aussehen würde: https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519
  • Drücke cmd + shift + p (auf Windows weiß ich es nicht genau, aber es sollte ähnlich sein)
  • Stelle sicher, dass du das > entfernst, und füge dann https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 ein. Es sollte eine Datei gefunden werden – klicke darauf.
  • Klicke unten links auf {}, es sollte dir etwas Code anzeigen. Kopiere diesen Block bitte hierher.

(Möglicherweise ist der Link https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 in deiner Konsole anklickbar. Dann kannst du einfach darauf klicken und {} drücken, um den Code formatiert zu sehen.)

@j.jaffeux Ich habe deine Schritte nachvollzogen, aber leider führt das Klicken auf diesen Link (oder die Suche danach) zu einer Datei, die jedoch leer ist:

Falls du möchtest, kann ich dir die Details für meine Staging-Umgebung geben, damit du Tests durchführen kannst. (Es handelt sich um eine Online-Umgebung.)

Klar, wenn du es auch auf Staging reproduzieren kannst, schick mir bitte per Nachricht die Details.

Ok, das passiert in diesem Code-Block:

define("discourse/routes/about", ["exports", "discourse/lib/ajax", "discourse/routes/discourse"], function(e, t, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }),
    e.default = n.default.extend({
        model: function() {
            var o = this;
            return (0,
            t.ajax)("/about.json").then(function(i) {
                var t = []
                  , n = []
                  , s = moment().locale("en").utc().subtract(1, "year");
                i.about.admins.forEach(function(e) {
                    moment(e.last_seen_at) > s && t.push(e)
                }),
                i.about.moderators.forEach(function(e) {
                    moment(e.last_seen_at) > s && n.push(e)
                }),
                i.about.admins = t,
                i.about.moderators = n;
                var e = i.about.category_moderators;
                return e && e.length && e.forEach(function(e, t) {
                    var n = o.site.categories.findBy("id", e.category_id);
                    i.about.category_moderators[t].category = n
                }),
                i.about
            })
        },
        titleToken: function() {
            return I18n.t("about.simple_title")
        },
        actions: {
            didTransition: function() {
                return this.controllerFor("application").set("showFooter", !0),
                !0
            }
        }
    })
})

Dieser befindet sich hier im Quellcode:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/routes/about.js.es6#L25

Ich bin mir noch nicht sicher, wie diese Aktion dies beeinflusst… werde mich morgen damit beschäftigen.

Vielen Dank, dass Sie sich darum kümmern. Bitte, mein Forum funktioniert ansonsten einwandfrei, es hat keine Eile. Es ist Sonntagabend, genießen Sie ihn, und vielen Dank, dass Sie das Problem bestätigt haben.

Das Problem tritt weiterhin in Version 2.4.0beta7 auf.

Edit2: Ich habe gerade festgestellt, dass ich auch die folgenden Einstellungen nicht speichern kann:

Nach jedem Commit habe ich es immer wieder versucht.

Ich habe gerade einen Neuaufbau durchgeführt, weil ich das Fingerprint-Plugin installieren wollte. Ich weiß nicht, ob ihr das Problem behoben habt oder ob es Magie war? Aber… ich kann endlich meine Standard-Einstellungen für das Überwachen speichern. Danke!

Es ist im Commit behoben