Protokollfenster stoppt die Aktualisierung während des Updates

Ich aktualisiere gerade zwei Foren auf 2.7.0.beta6. Bei einem verlief die Aktualisierung reibungslos: Zuerst den Docker-Manager und dann Discourse. Beim anderen, das auch ein Update für den Data Explorer benötigte, blieb die Log-Ansicht während des letzten Aktualisierungsschritts von Discourse selbst zweimal hängen. Beide Male stand sie auf
Waiting for Unicorn to reload...........
– einmal am Anfang und einmal am Ende, nachdem ich den Browser-Tab aktualisiert hatte.

Beim Hängen am Ende waren bereits 11 Zeilen mit „Waiting“ ausgegeben worden, bevor es stoppte.

Done compiling CSS: 2021-04-08 12:54:13 UTC
Restarting unicorn pid: 49
Waiting for Unicorn to reload.
Waiting for Unicorn to reload..
Waiting for Unicorn to reload...
Waiting for Unicorn to reload....
Waiting for Unicorn to reload.....
Waiting for Unicorn to reload......
Waiting for Unicorn to reload.......
Waiting for Unicorn to reload........
Waiting for Unicorn to reload.........
Waiting for Unicorn to reload..........
Waiting for Unicorn to reload...........

Das Hängen am Anfang erfolgte bei etwa derselben Anzahl an Zeilen.

Ich konnte die Prozesse über die Seite „Processes“ in einem anderen Tab überwachen und sah, dass Fortschritte erzielt wurden.

Das Upgrade war erfolgreich, und nach einem Neuladen konnte ich das gesamte Protokoll einsehen und überprüfen. Dennoch war es beunruhigend und möglicherweise irreführend, dass sich die Log-Ansicht nicht mehr aktualisierte.

Aus der JavaScript-Konsole gibt es nichts zu melden.

Ah, nach langer Zeit sehe ich etwas in der JS-Konsole (das ist Chrome auf dem Mac)

[Violation] 'setTimeout' handler took 64ms

mit einem Link zur Zeile 5211 von docker-manager-vendor-970…js, das heißt /assets/docker-manager-vendor-9709990270a4ade37544c98dda3cfad18f77cdf6cd433291c3c5ef7bd25cb50d.js
was so aussieht:

try{r||n?t=s.minPollInterval:(t=s.callbackInterval,o>2?t*=o:a()||(t=s.backgroundCallbackInterval),t>s.maxPollInterval&&(t=s.maxPollInterval),(t-=new Date-w)<100&&(t=100))}catch(i){console.log&&i.message&&console.log("MESSAGE BUS FAIL: "+i.message)}d&&(clearTimeout(d),d=null),u&&(d=setTimeout((function(){d=null,e()}),t)),s.longPoll=null}})}},s={minHiddenPollInterval:1500,enableChunkedEncoding:!0,enableLongPolling:!0,callbackInterval:15e3,backgroundCallbackInterval:6e4,minPollInterval:100,maxPollInterval:18e4,callbacks:n,clientId:i,alwaysLongPoll:!1,baseUrl:"/",headers:{},ajax:p&&p.ajax,noConflict:function(){return e.MessageBus=e.MessageBus.previousMessageBus,this},diagnostics:function(){console.log("Stopped: "+l+" Started: "+u),console.log("Current callbacks"),console.log(n),console.log("Total ajax calls: "+O+" Recent failure count: "+o+" Total failures: "+R),console.log("Last ajax call: "+(new Date-w)/1e3+" seconds ago")},pause:function(){f=!0},resume:function(){f=!1,T(h),h=[]},stop:function(){l=!0,u=!1,v&&(clearTimeout(v),v=null),s.longPoll&&s.longPoll.abort()},start:function(){var r

Möglicherweise ist Ihrem System der Arbeitsspeicher ausgegangen oder etwas Ähnliches.

Können Sie versuchen, es über die Konsole neu zu erstellen?

Beachten Sie, dass das Upgrade erfolgreich war: Das Problem liegt in der Darstellung des Protokollstreams im Browser. Nach dem Aktualisieren war das gesamte Protokoll sichtbar. Daher bin ich mir ziemlich sicher, dass wir es hier mit einem Client-Problem zu tun haben, nicht mit einem Upgrade-, Rebuild- oder Server-seitigen Problem.

Wenn niemand sonst dieses Problem jemals sieht, würde ich es gerne auf ein Problem mit meinem Browser oder Laptop zurückführen.

Ich verstehe nicht, wie das vom Browser gesehene JavaScript mit dem Quellcode-Baum zusammenhängt, aber vielleicht ist dies der Code, den ich in der Konsole verlinkt gesehen habe (es ist Code, der sich in letzter Zeit nicht geändert hat)

Ich habe das gleiche Problem auf einigen der von mir verwalteten Seiten festgestellt, aber nicht auf allen, was also auf ein Konfigurationsproblem hindeutet. Ich habe zwar noch keine konkreten Beweise, aber meine fundierteste Vermutung ist, dass es etwas mit Multisite zu tun haben könnte.

Es tut mir leid, dass ich hier keine nützlichen Informationen habe, aber ich wollte mich nur kurz melden, um zu bestätigen, dass das Problem nicht nur bei Ihnen auftritt.

Danke, das ist interessant und hilfreich. Ich habe noch kein Multisite-Setup – meine beiden Foren laufen auf verschiedenen Hosts. Somit können sowohl Multisite- als auch Single-Site-Installationen dies sehen.

Das ist gerade wieder mit dem Update auf 2.7.0.beta9 passiert: Der Log-Stream hat einfach nur angezeigt, dass die Unicorns gestoppt werden, während die Prozessansicht (in einem anderen Tab geöffnet) zeigte, dass der Precompile-Prozess bereits gestartet war.

Als Workaround habe ich einen Tab mit der Versionsansicht geöffnet, habe den großen blauen Button gesehen, der nun „Aktuell wird aktualisiert