zsero
(Zsolt Ero)
3. Dezember 2019 um 11:06
1
Ich betreibe ein langlebiges System und hatte bisher keine Probleme. Ich führe Upgrades immer durch eine vollständige Neuerstellung durch, niemals mit dem integrierten Upgrade-Tool.
Kürzlich habe ich ein apt-get upgrade durchgeführt, Docker auf Version 19.03.5 aktualisiert und versucht, eine Neuerstellung durchzuführen, aber das System ist nun defekt. Das System läuft unter Ubuntu 16.04.6.
Hier ist mein Snippet für die Neuerstellung:
cd /var/discourse || exit
sudo git pull
sudo docker stop maphub_forum
sudo docker rm maphub_forum
sudo ./launcher rebuild maphub_forum
Hier ist das vollständige Log:
diag.txt (518,9 KB)
zsero
(Zsolt Ero)
3. Dezember 2019 um 11:14
2
Ich habe auf Docker 18.09.9 zurückgerüstet, und das Problem besteht weiterhin.
gerhard
(Gerhard Schlager)
3. Dezember 2019 um 11:49
3
@j.jaffeux Sollte Discourse.redis auf stable und beta zurückportiert werden? Ich denke, das wäre einfacher, als Code für Abwärtskompatibilität in mehrere Plugins einzubauen.
j.jaffeux
(Joffrey Jaffeux)
3. Dezember 2019 um 11:52
4
Ja, ich hatte gehofft, dass es nicht zu viele Probleme verursachen würde, aber wahrscheinlich doch. Es sind jedoch mehrere Commits.
j.jaffeux
(Joffrey Jaffeux)
3. Dezember 2019 um 13:30
5
Ich habe es auf Beta und Stable zurückportiert. Lass mich wissen, falls du auf ein Problem stößt.
hosna
(hosna)
3. Dezember 2019 um 15:30
7
@j.jaffeux Jetzt kann ich mich vom Dashboard aus nicht mehr aktualisieren:
/var/www/discourse/plugins/docker_manager/lib/docker_manager/git_repo.rb:23:in `upgrade_version'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/git_repo.rb:27:in `upgrading?'
/var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:42:in `block in repos'
/var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:29:in `map!'
/var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:29:in `repos'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:136:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/rendering.rb:39:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.7/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:25:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:274:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.4.1/lib/logster/middleware/reporter.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.3/lib/mini_profiler/profiler.rb:296:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:176:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
zsero
(Zsolt Ero)
3. Dezember 2019 um 17:20
9
Danke, jetzt funktioniert es perfekt!
hosna
(hosna)
3. Dezember 2019 um 20:24
10
Hängt dieses Problem überhaupt mit dem neuen Update zusammen?
gerhard
(Gerhard Schlager)
3. Dezember 2019 um 21:15
11
Du musst den Container neu erstellen.
cd /var/discourse
git pull
./launcher rebuild app
Ich bin mir ziemlich sicher, dass die neuesten Änderungen docker_manager brechen, da es vor Discourse aktualisiert wird und somit Discourse.redis nicht findet.
pfaffman
(Jay Pfaffman)
3. Dezember 2019 um 21:23
12
Aber git pull; ./launcher rebuild app funktioniert doch, oder?
Ich habe eine Reihe von Kunden, für die ich Upgrades durchführe, wenn ein neues Container-Image veröffentlicht wird . Ich führe diese Upgrades in der Regel kurz nach (1) der Notwendigkeit eines neuen Containers und (2) der Veröffentlichung eines neuen Betas durch.
Ich weiß, dass deine Fähigkeit, die Zukunft zuverlässig vorherzusagen, etwas begrenzt ist, aber erwartest du, dass es bald eine neue Beta-Version geben wird?
j.jaffeux
(Joffrey Jaffeux)
5. Dezember 2019 um 10:45
13
Wir erwarten eine Beta-Version noch heute oder zu Beginn der nächsten Woche.
zsero
(Zsolt Ero)
26. Dezember 2019 um 00:44
14
Es ist wieder abgestürzt. Vollständiges Protokoll nach git pull + Neuaufbau:
discourse.txt (24,4 KB)
Falco
(Falco)
26. Dezember 2019 um 02:00
15
Der Branch “stable” ist derzeit defekt.
zsero
(Zsolt Ero)
26. Dezember 2019 um 21:29
16
Kurze Zusammenfassung: „tests-passed
pfaffman
(Jay Pfaffman)
26. Dezember 2019 um 22:35
17
Wie sich herausstellt, ist tests-passed die Version, die discourse.org auf ihren Servern einsetzt. Sie ist besser getestet und zuverlässiger als stable. Wenn Sie bei tests-passed bleiben, haben Sie weniger Probleme. Wenn Sie stable betreiben möchten, müssen Sie verstehen, dass dies mehr Aufwand erfordert als tests-passed, beispielsweise das Einrichten eines Staging-Servers, um Upgrades vor dem Einsatz in der Produktion zu testen.
zsero
(Zsolt Ero)
26. Dezember 2019 um 23:05
18
Ich möchte einfach etwas, das stabil und zuverlässig ist und auf
tests-passed basiert. Das ist das, was discourse.org auf ihren Servern einsetzt, und es ist besser getestet und zuverlässiger als stable.
Ich bleibe dabei. Zwei Dinge sind immer noch sehr seltsam:
Warum heißt das dann test-passed und nicht stable, wenn es tatsächlich stabil ist? „stable
RGJ
(Richard - Communiteq)
26. Dezember 2019 um 23:06
19
pfaffman:
Es ist besser getestet und zuverlässiger als stable. Wenn du bei tests-passed bleibst, wirst du weniger Probleme haben. Wenn du stable verwenden möchtest, musst du verstehen, dass dies mehr Aufwand erfordert als tests-passed, beispielsweise das Betreiben eines Staging-Servers, um Updates zu testen, bevor du sie in der Produktion ausführst.
Mit aller gebotenen Achtung, aber ich stimme dem nicht zu. Stable ist sehr zuverlässig und nun mal stabil. Rubygems hat eine Abhängigkeit aktualisiert, die sowohl tests-passed als auch stable zum Absturz gebracht hat. Die Lösung bestand lediglich darin, einen Fix zu backporten .
BTW: Dies hätte vermieden werden können, indem man Rubygems im Befehl gem update auf eine bestimmte Version festgelegt hätte. gem update --system 3.0.6 wäre sicher gewesen.
Die Tatsache, dass stable länger ausgefallen war als tests-passed, ist nur ein Zufall und – soweit ich mich erinnere – ein Novum.
Wir machen das (Stable als Standard zu verwenden) seit über sechs Jahren mit vielen hundert Discourse-Instanzen ohne größere Probleme.
zsero
(Zsolt Ero)
26. Dezember 2019 um 23:55
20
Gerade in diesem Thread gibt es mehrere Fälle, in denen Stable links in einem defekten Zustand neu aufgebaut wurde – das ist definitiv nicht das erste Mal. Wenn die kommerziellen Instanzen von discourse.org als „Test bestanden
pfaffman
(Jay Pfaffman)
27. Dezember 2019 um 00:59
21
Ich weiß, dass das stimmt, aber du bist nun mal kein durchschnittlicher Discourse-Admin. Du hast mich schon oft gerettet, und als Faustregel lese ich alles, was du schreibst, zweimal durch, um sicherzugehen, dass ich es richtig verstanden habe. Trotzdem bin ich der Meinung, dass es für die meisten normalen Anwender am sichersten ist, bei „tests-passed
zsero
(Zsolt Ero)
27. Dezember 2019 um 01:19
22
Aber selbst wenn ich das tue, wird es mich in einer Situation, in der die stabile Version defekt ist, nicht retten, oder? In beiden Fällen lag das Problem an einem fehlenden Backport, und dieser würde meiner Meinung nach ebenso in jeder Git-Commit-ID fehlen.
Daher gibt es kein „Release