Ho un’istanza di Discourse attiva da una settimana e presenta alcuni dei sintomi più strani che non riesco a risolvere, in parte perché nei log non appare assolutamente nulla di utile.
Il sintomo più evidente è che se vado nelle impostazioni, modifico una configurazione e poi clicco sulla spunta verde, la modifica viene accettata e tutto sembra corretto. Tuttavia, se ricarico la pagina delle impostazioni, c’è un’alta probabilità che venga mostrata la vecchia impostazione o quella nuova. Continuando a ricaricare, a volte appare un’impostazione, a volte l’altra.
Ancora peggio, non si tratta solo della schermata delle impostazioni: a volte sembra che anche la funzionalità del server stesso cambi. Ad esempio, se provo a caricare un nuovo logo, a volte viene mostrato quello vecchio e a volte quello nuovo.
Per rispondere alla domanda ovvia: no, non sto eseguendo più istanze dietro un load balancer; è un’unica istanza.
Non sono sicuro che sia correlato, ma ho notato anche che il plugin math di Discourse non viene renderizzato correttamente. Mentre le equazioni vengono visualizzate correttamente nell’anteprima, una volta pubblicato il post, lo script JavaScript non sembra essere incluso e quindi non viene renderizzato correttamente. Il problema con le equazioni non è la priorità qui, ma lo menziono nel caso possa fornire ulteriori indizi.
Sono davvero bloccato: con i log che sembrano tutti normali, non sono nemmeno sicuro di cosa pubblicare per ottenere aiuto. Qualsiasi idea sarebbe gradita.
Ci ho provato senza successo. Molto probabilmente c’è qualcosa che non va nel modo in cui lo sto installando.
Sono uno sviluppatore anch’io: hai idea di cosa possa essersi rotto durante l’installazione e causare questo problema? Qualche indizio su dove iniziare a fare debug e risoluzione dei problemi?
Inizialmente ho seguito quel processo. Purtroppo non supporta la maggior parte degli ambienti di produzione di livello aziendale a mia disposizione. La maggior parte dei framework gestisce, avvia e distribuisce container. A causa della natura dell’approccio di installazione standard, non è possibile lavorare con questi strumenti e ambienti.
Di conseguenza, sto cercando di migliorare/riparare il processo in modo che possa essere installato ovunque sia supportata una distribuzione standard basata su Docker. Sebbene questo sforzo stia funzionando per la maggior parte, è il bug che ho segnalato in origine a cui sto facendo fatica a trovare una soluzione.
Una volta che sarà funzionante, lo rilascerò naturalmente per gli altri. Ho passato l’ultimo anno ad attendere che Discourse supportasse Docker standard, ma ho deciso di fare io stesso il contributo. Siamo così vicini, ma spero che qualcuno con più esperienza di me possa dirmi dove guardare.
Grazie, potrebbe rivelarsi molto utile. Dato che il plugin MathJax sembrava funzionare in modo sporadico per poi smettere, sembra probabile che sia legato a JavaScript.
Sono appena andato a provare a impostare una configurazione dopo aver svuotato la cache, facendo attenzione a monitorare la scheda di rete. Non sono comparsi errori prima o dopo la modifica di un’impostazione (anche se il bug si è manifestato).
Un motivo per cui non ha senso che la modifica non venga applicata affatto è il comportamento. Effettuo una modifica, poi aggiorno la pagina e sembra che la modifica venga annullata. Ma se continuo semplicemente ad aggiornare (senza tentare di apportare di nuovo la modifica), la modifica appare circa il 50% delle volte. Ogni volta che aggiorno, c’è circa il 50% di probabilità che venga visualizzata la vecchia impostazione rispetto a quella nuova.
Ho anche trovato il seguente errore nella console, ma penso sia irrilevante?
Impossibile trovare widget actions-summary-item nel registro
Ho provato questo, come avevo fatto in precedenza. Non ha aiutato. Ma sono scettico sul fatto di essere stato davvero in modalità provvisoria. Sono andato in */safe-mode e ho ottenuto la finestra di dialogo per entrare in modalità provvisoria. L’ho accettata. Ma ho notato che il tema Material Design che uso era ancora visibile. Quindi, anche se pensavo di essere in modalità provvisoria, forse non lo ero davvero?
Due container: uno per Sidekiq e uno per il core di Discourse. Solo un’istanza della coppia. Sto eseguendo Postgres e Redis come servizi gestiti su macchine separate.
Dipende da cosa intendi. Nella scheda di rete “ispeziona” per il debug, tutto risulta con codice 200; la console mostra solo l’errore che ho menzionato sopra (probabilmente non correlato). Nei log di Docker, quando provo a impostare la configurazione, vedo quanto segue che conferma il successo dell’operazione. Eppure, quando ricarico la pagina delle impostazioni, il 50% delle volte appare l’impostazione ld e il 50% delle volte quella nuova.
> 2019-08-20T13:14:15.960335498Z Started PUT "/admin/site_settings/categories_topics" for 213.127.19.53 at 2019-08-20 13:14:15 +0000
> 2019-08-20T13:14:15.968667966Z Processing by Admin::SiteSettingsController#update as */*
> 2019-08-20T13:14:15.968951769Z Parameters: {"categories_topics"=>"25", "id"=>"categories_topics"}
> 2019-08-20T13:14:15.978407541Z Rendering text template
> 2019-08-20T13:14:15.978607623Z Rendered text template (0.0ms)
> 2019-08-20T13:14:15.978834745Z Completed 200 OK in 10ms (Views: 0.6ms | ActiveRecord: 0.0ms)
> 2019-08-20T13:18:39.821498901Z [ N 2019-08-20 13:18:39.8209 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6157, application /opt/bitnami/discourse (production)
> 2019-08-20T13:18:59.866033984Z [ N 2019-08-20 13:18:59.8655 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 5973, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:04.848923491Z [ N 2019-08-20 13:19:04.8484 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6018, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:08.900933057Z [ N 2019-08-20 13:19:08.9004 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 5995, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:09.499349110Z [ N 2019-08-20 13:19:09.4989 4304/T4 age/Cor/CoreMain.cpp:1146 ]: Checking whether to disconnect long-running connections for process 6041, application /opt/bitnami/discourse (production)
> 2019-08-20T13:19:29.645095032Z Creating scope :open. Overwriting existing method Poll.open.
Non utilizza l’installazione standard, anche se l’ho usata come guida per imparare. In pratica, ho dovuto scrivere e modificare i file Docker per farli funzionare con Docker Compose. Una volta che Docker Compose funzionava in locale, l’ho convertito nella sua forma JSON in modo che potesse essere utilizzato con gli strumenti aws-cli.
Quindi il processo di installazione presenta differenze sostanziali rispetto a quello standard.