Il frontend della mia istanza di discourse è completamente vuoto e non si carica dopo il nuovo aggiornamento. Non è una buona cosa e sono un po’ nel panico perché gli utenti sono insoddisfatti. Il backend sembra essere attivo.
Questo è successo dopo l’ultimo aggiornamento di oggi, su una droplet di Digital Ocean che esegue un container. Ho usato launcher per ricostruire l’app.
Qualsiasi aiuto è molto apprezzato.
L’errore della console dice:
app.js:31
Uncaught TypeError: Cannot read properties of undefined (reading 'registerAsyncHelper') at s.callback (vendor-suffix.js:58:1)
at s.exports (loader.js:106:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at s._reify (loader.js:143:1)
at s.reify (loader.js:130:1)
at s.exports (loader.js:104:1)
at requireModule (loader.js:27:1)
at n._prepareInitializer (app.js:24:1)
at app.js:81:1
at Array.forEach (<anonymous>)
at n.start (app.js:73:1)
at HTMLDocument.<anonymous> (start-app.js:4:1)
at discourse-boot.js:30:1
at discourse-boot.js:31:1
Ugh… era un plugin… non sono sicuro di quale fosse, ma dopo aver scavato un po’ qui ho sospettato che potesse essere un problema… ho rimosso cakeday, signatures, data explorer, discourse-video-upload e encryption. Li introdurrò uno alla volta in un secondo momento e vedrò se riesco a individuare il colpevole. Ma per ora, l’app è di nuovo attiva e non la tocco
Esperienza terribile. Mi sento piuttosto in colpa in questo momento… dovrei probabilmente avere un processo di clonazione di staging per questi aggiornamenti in futuro. Lezione imparata. O almeno farò sempre uno snapshot prima dell’aggiornamento in modo da poter ripristinare in caso di errore.
Il problema è Discourse encrypt. Puoi risolverlo mettendolo per ultimo nel tuo file yml e selezionando il commit da prima che venisse rotto per la prima volta (la verifica della firma si è rotta l’altro giorno), in questo modo:
- git clone https://github.com/discourse/docker-manager.git
... poi i tuoi altri plugin ...
- git clone https://github.com/discourse/discourse-encrypt.git
- cd discourse-encrypt && git checkout 12639de
Come puoi vedere, ho messo l’ultimo plugin Discourse encrypt, nel caso in cui i comandi cd e git checkout influenzassero i comandi successivi (cosa che non credo farebbero).
E sì, questo è l’hash del commit dell’ultima versione che funziona sicuramente bene.
Il mio sito ora funziona di nuovo correttamente. E Discourse Encrypt ha di nuovo le spunte verdi.
@sam Domani presenterò una candidatura per la posizione di Full Stack Engineer. Visto che sto inseguendo plugin non funzionanti, proverò a unirmi al team e a lavorare sui plugin
Ti manderei un messaggio privato, ma questa istanza non me lo permette.
Per favore, non lasciare questa configurazione attiva per molto tempo: la tua istanza non riceverà futuri aggiornamenti del plugin Encrypt. Ciò causerà molto probabilmente problemi in futuro.
Tuttavia, questo errore Ember.Test è inaspettato. @Mycobee puoi confermare quale versione di Discourse stai eseguendo? Come hai eseguito l’aggiornamento? Tramite l’interfaccia utente /admin/upgrade?
Sì, questo è di vitale importanza e ho dimenticato di menzionarlo (erano quasi le 4 del mattino per me quando l’ho scritto e avevo appena ripristinato il funzionamento e ho pensato di controllare qui per vedere se qualcun altro aveva lo stesso problema). Questa è solo una soluzione temporanea per ripristinare il funzionamento. Grazie per il promemoria @david.
Quella soluzione non ha funzionato per me quando ho aggiornato tutto alle 00:00 UTC di stamattina (dieci ore e mezza fa). Ho aggiornato la mia istanza solo allora perché ho visto che la verifica della firma era stata corretta. Poi ho dovuto applicare la soluzione temporanea descritta sopra. È possibile che il mio solito aggiornamento non abbia rilevato il codice più recente per qualche motivo?
Stavi ancora riscontrando il problema di verifica della firma ? O hai riscontrato il problema Ember.Test?
Inoltre, ho appena parlato con il team e sembra che abbiamo identificato il problema Ember.Test e avremo presto una soluzione. Aggiorneremo qui quando sarà disponibile.
La pagina principale era vuota e ho dovuto disabilitare tutti i plugin (in modalità provvisoria) per far caricare il sito. Eseguo aggiornamenti settimanali il lunedì intorno alle 9:00 UTC e questo è stato un aggiornamento aggiuntivo per risolvere il problema della verifica della firma. Tuttavia… ci sono state anche molte altre modifiche, ovviamente. E la versione è stata aggiornata a 2.9.0beta3 in quel periodo.
Come avrai già visto (ma forse qualcuno non l’ha visto), ecco il diff per Discourse Encrypt tra la versione che sto eseguendo ora e l’ultima versione al momento di questo messaggio.
Inoltre, non ci è voluto quasi fino alle 4 del mattino per risolvere il problema. Era tutto a posto poco prima delle 2 del mattino, ma poi ho dovuto dire alle persone cosa era successo (la maggior parte dei nostri utenti si trova negli Stati Uniti).
@david Mi sono aggiornato alla versione 2.9.0.beta3, che ha causato il problema.
Per quanto riguarda il processo di aggiornamento, di solito lo faccio tramite l’interfaccia utente /admin/upgrade. Questo caso è stato diverso.
Ho aggiornato solo docker-manager dall’interfaccia di aggiornamento. Dopo di che, ho dovuto occuparmi di altre cose e sono tornato al percorso /admin/upgrade qualche ora dopo per completare il processo di aggiornamento.
Mi sono trovato di fronte a una pagina di testo che mi diceva di andare sull’host, cambiare nella directory /var/discourse, fare git pull e ricostruire l’app con ./launcher… Quindi è quello che ho fatto, e poi è iniziato il caos.
Mentre lo stress e i nervi erano alti, ho trovato qualcosa su questo forum riguardo a TypeError non gestiti correlati a un plugin, quindi ho rimosso tutto ciò che non era essenziale dai plugin di app.yml e ho ricostruito il container. A quel punto, l’app Ember ha ricominciato a funzionare.