BryanV
(Bryan Van de ven)
2. Dezember 2021 um 19:53
1
Ich habe heute eine Benachrichtigung über ein Upgrade erhalten, aber wenn ich zur Upgrade-Seite navigiere, ist diese leer:
Ich sehe, dass es mehrere Threads dazu gibt, und der Konsens scheint zu sein, manuell neu zu erstellen. Aber die Sache ist, dass ich erst vor zwei Tagen manuell neu erstellt habe, als ich ein benutzerdefiniertes Onebox-Plugin installiert habe, das ich gerade geschrieben habe:
https://github.com/bokeh/discourse-bokeh-onebox
Ich möchte verstehen, warum diese leere Seite auftritt. Ist etwas mit meinem trivialen Plugin schiefgelaufen, das dies verursacht hat, oder das ich ändern muss? Hängt es nicht mit dem Plugin zusammen, und wenn ja, was kann ich tun, um diese Situation in Zukunft zu vermeiden?
Tritt das Problem auf, wenn Sie die Plugins im abgesicherten Modus deaktivieren? Das könnte helfen, das Problem einzugrenzen.
[YourSite]/safe-mode
BryanV
(Bryan Van de ven)
2. Dezember 2021 um 20:36
3
Der /upgrade-Link ist auf der Safe-Mode-/admin-Seite nicht mehr vorhanden und der Versuch, dorthin manuell zu navigieren, funktioniert nicht
Ups! Diese Seite existiert nicht oder ist privat.
Wenn Sie ‘Alle Plugins deaktivieren’ deaktivieren, die anderen beiden jedoch aktiviert lassen, ist es vorhanden. Das Deaktivieren der offiziellen Plugins deaktiviert docker-manager, aber Sie sollten immer noch Themen und inoffizielle Plugins überprüfen können, falls das hilft?
Steven
2. Dezember 2021 um 21:12
5
Gibt es rote Warnungen in der Konsole, wenn Sie auf der Upgrade-Seite F12 eingeben?
BryanV
(Bryan Van de ven)
2. Dezember 2021 um 21:16
6
@JammyDodger Ah, danke. Nein, das hilft nicht, die Upgrade-Seite ist komplett leer, selbst im abgesicherten Modus, wenn Themes und inoffizielle Plugins deaktiviert sind.
@Steven Ja, das ist im JS-Konsolenprotokoll
1 „Gefällt mir“
BryanV
(Bryan Van de ven)
3. Dezember 2021 um 00:30
7
Zusammenfassend lässt sich sagen, dass die Seite aufgrund eines HTTP-Fehlers 500 bei einer AJAX-Anfrage an
https://discourse.bokeh.org/admin/docker/repos
leer ist. Gibt es eine bekannte Erklärung dafür? Gibt es Korrekturmaßnahmen, die über einen manuellen Neuaufbau hinausgehen?
Falco
(Falco)
3. Dezember 2021 um 00:44
8
Wenn ein 500-Fehler auftritt, sollte ein entsprechender Eintrag unter /logs vorhanden sein.
BryanV
(Bryan Van de ven)
3. Dezember 2021 um 01:30
9
@Falco Danke, ich war mir dieses Endpunkts nicht bewusst. Der Fehler ist
NoMethodError (undefined method downcase' for nil:NilClass) lib/middleware/omniauth_bypass_middleware.rb:71:in call’ lib/content_security_policy/middleware.rb:12:in `call’ lib/middleware/anonymous_c
plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:40:in `block in repos'
plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:29:in `map!'
plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb:29:in `repos'
actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:106:in `run_callbacks'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.8) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (3.3.6) lib/message_bus/rack/middleware.rb:61:in `call'
lib/middleware/request_tracker.rb:198:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'
unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:25:in `<main>'
1 „Gefällt mir“
Falco
(Falco)
3. Dezember 2021 um 01:46
10
Eines der von Ihnen installierten Plugins hat irgendwie einen nil-Namen
result = {
name: r.name,
path: r.path,
branch: r.branch,
official: Plugin::Metadata::OFFICIAL_PLUGINS.include?(r.name)
}
result[:fork] = true if result[:official] && !r.url.starts_with?("https://github.com/discourse/")
if r.valid?
result[:id] = r.name.downcase.gsub(/[^a-z]/, '_').gsub(/_+/, '_').sub(/_$/, '')
result[:version] = r.latest_local_commit
result[:pretty_version] = r.latest_local_tag_version.presence
result[:url] = r.url
if r.upgrading?
result[:upgrading] = true
result[:version] = r.upgrade_version
end
end
result
end
Sie können DockerManager::GitRepo.find_all in einer Rails-Konsole ausführen, um zu überprüfen, woher dies kommt.
BryanV
(Bryan Van de ven)
3. Dezember 2021 um 01:51
11
@Falco Nun, ich schätze (nehme an), das wäre mein Onebox-Plugin, obwohl ich mir nicht sicher bin, warum die Dinge auch im abgesicherten Modus nicht funktionierten. Auf jeden Fall habe ich diese eine Datei aus Teilen zusammengeschustert, da ich noch nie zuvor Ruby geschrieben habe. Wenn Sie zufällig wissen, wie/wo ich den „Namen“ angeben sollte, wäre das eine Hilfe:
https://github.com/bokeh/discourse-bokeh-onebox/blob/main/plugin.rb
Falco
(Falco)
3. Dezember 2021 um 02:02
12
Vielleicht einem Beispiel folgen wie
# frozen_string_literal: true
# name: docker_manager
# about: Docker manager for Discourse image
# version: 0.1
# authors: Robin Ward, Sam Saffron
# url: https://github.com/discourse/docker_manager
if !defined? ::Discourse.redis
# HACK: make Discourse.redis work on old versions of Discourse
module ::Discourse
def self.redis
$redis # rubocop:disable Style/GlobalVars
1 „Gefällt mir“
BryanV
(Bryan Van de ven)
3. Dezember 2021 um 02:26
13
Ich habe mehrere Beispiele konsultiert, ich hätte nie erraten, dass der Name aus einem Kommentar extrahiert und nicht als tatsächliche Daten/Code konfiguriert wurde. Ich werde mein Plugin aktualisieren und neu erstellen, danke.
1 „Gefällt mir“
system
(system)
Geschlossen,
2. Januar 2022 um 02:27
14
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.