È possibile che il mio blocco annunci sia coinvolto?
Dopo l’aggiornamento, osservando la console del browser, ho notato due voci:
/message-bus/fc3f44b30aea4975be751a4cc8736f76/poll:1 Impossibile caricare la risorsa: net::ERR_HTTP2_PROTOCOL_ERROR
docker/upgrade:1 Impossibile caricare la risorsa: il server ha risposto con uno stato 504 ()
Vedo lo stesso. In effetti, qualsiasi cosa diventi il pulsante ‘Avvia aggiornamento’ quando l’aggiornamento inizia – credo che in passato si trasformasse in un qualche tipo di pulsante Annulla – ho notato che è tornato rapidamente a ‘Avvia aggiornamento’ mentre l’aggiornamento era ancora in corso, ed è rimasto così anche dopo il completamento riuscito dell’aggiornamento. Sto utilizzando Chrome Version 86.0.4240.80 (Official Build) (x86_64) su un Mac.
Ho visto questo durante un precedente aggiornamento. L’aggiornamento attuale è alla versione 2.6.0.beta4 partendo dalla 2.6.0.beta3. Credo che l’aggiornamento immediatamente precedente richiedesse una ricostruzione dell’app.
Modifica: sul mio altro forum, ho appena visto la stessa cosa e ho fatto alcuni screenshot. Il pulsante è tornato indietro mentre il log mostrava ancora uno dei tanti messaggi “In attesa di Unicorn per il ricaricamento” all’inizio. (Speculo che il cambio sia basato sul tempo trascorso, non sul progresso dell’aggiornamento. Modifica: 60 secondi dal clic sul pulsante fino al ritorno allo stato iniziale. Mentre la barra di progresso si è mossa per la prima volta dopo circa 90 secondi.) Vedi sotto:
Riavviare la macchina (forse solo il container Docker) o riavviare Redis dovrebbe risolvere il problema, penso. Non abbiamo passaggi di riproduzione chiari per questo, ma l’ho visto anch’io, quindi succede sicuramente.
È quasi solo estetico, quindi non è una priorità alta. Se avessimo passaggi di riproduzione chiari e coerenti…
Sono riuscito a riprodurre il problema. Il codice client non è cambiato in modo significativo. Sembra che il problema sia che una chiamata a /admin/docker/upgrade sta ora restituendo un errore 504 gateway timeout.
Il nostro gestore degli errori gli dice quindi di impostare lo stato su “non in aggiornamento”, il che significa che quando arriva la notifica dal message bus per il completamento, non risulta contrassegnato come terminato.
A mio avviso, la causa principale qui è il timeout 504 che non avevamo visto prima. Sospetto qualche modifica relativa a proxy o Rails. Forse qualcosa nella nostra immagine Docker? @sam, sei a conoscenza di qualcosa o puoi eventualmente assegnare il compito al team di dev ops?
Vedo alcune stranezze sul client che stanno causando qualche sorpresa:
Perché stiamo effettuando richieste HTTP al server durante l’aggiornamento? Sembra che stiamo facendo una richiesta a /admin/docker/upgrade a metà dell’aggiornamento, il che mi sembra confuso. Dovremmo semplicemente attendere il message bus. Ho eseguito questo test su Firefox, quindi ho capacità di debug limitate.
Il message bus non utilizza il long polling, ma solo lo short polling, il che porta al raggiungimento dei limiti di frequenza.
“Vai al prossimo aggiornamento” è un po’ confuso; dovremmo semplicemente dire “completato” quando si finisce di aggiornare una parte, invece di passare rapidamente all’altra.
@Osama, puoi dedicare del tempo a debuggare, rifinire e aggiornare Ember e così via? Penso che la maggior parte del lavoro qui sembri riguardare il client.
Nota per le persone coinvolte in questo argomento: risolveremo il problema, ma probabilmente ci vorranno 2-4 settimane. Dato che la situazione è in corso da un mese, penso che possiamo aspettare un po’.
Non l’ho mai visto prima - fa parte di ‘Aggiorna tutto’?
Per me va benissimo, certo. Mi è sembrato di vedere qualcuno dire di aver cliccato per sbaglio su ‘Avvia aggiornamento’ quando è ricomparso - speriamo che non sia dannoso. Non ho mai usato ‘Reimposta aggiornamento’, ma presumo sia una misura di sicurezza nel caso in cui l’aggiornamento si blocchi.