BryanV
(Bryan Van de ven)
Décembre 2, 2021, 7:53
1
J’ai reçu une notification aujourd’hui concernant une mise à niveau, mais en naviguant vers la page de mise à niveau, je constate qu’elle est vide :
Je vois qu’il y a plusieurs discussions à ce sujet, et le consensus semble être de reconstruire manuellement. Mais le fait est que j’ai littéralement effectué une reconstruction manuelle il y a deux jours, lorsque j’ai installé un plugin Onebox personnalisé que je viens d’écrire :
https://github.com/bokeh/discourse-bokeh-onebox
J’aimerais comprendre pourquoi cette page vide se produit. Y a-t-il quelque chose qui cloche avec mon plugin trivial qui a causé cela, ou que je dois changer ? Est-ce sans rapport avec le plugin, et si oui, que puis-je faire pour éviter cette situation à l’avenir ?
Est-ce que cela se produit si vous désactivez les plugins en mode sans échec ? Cela pourrait vous aider à cerner le problème.
[VotreSite]/safe-mode
BryanV
(Bryan Van de ven)
Décembre 2, 2021, 8:36
3
Le lien /upgrade n’est plus présent sur la page /admin en mode sans échec et essayer d’y accéder manuellement ne fonctionne pas
Oups ! Cette page n’existe pas ou est privée.
Si vous décochez « désactiver tous les plugins », mais laissez les deux autres, il est là. La désactivation des plugins officiels désactivera docker-manager, mais vous devriez toujours pouvoir vérifier les thèmes et les plugins non officiels, si cela peut vous aider ?
Steven
Décembre 2, 2021, 9:12
5
Avez-vous des alertes rouges dans la console si vous tapez F12 sur la page de mise à niveau ?
BryanV
(Bryan Van de ven)
Décembre 2, 2021, 9:16
6
@JammyDodger Ah, merci. Non, cela n’aide pas, la page de mise à niveau est complètement vide, même en mode sans échec avec les thèmes et les plugins non officiels désactivés.
@Steven oui, ceci est dans le journal de la console JS
1 « J'aime »
BryanV
(Bryan Van de ven)
Décembre 3, 2021, 12:30
7
Pour résumer, il semble que la page soit vierge en raison d’une erreur HTTP 500 lors d’une requête AJAX vers
https://discourse.bokeh.org/admin/docker/repos
Existe-t-il une explication connue à cela ? Existe-t-il une mesure corrective autre qu’une reconstruction manuelle ?
Falco
(Falco)
Décembre 3, 2021, 12:44
8
En cas d’erreur 500, une entrée correspondante doit se trouver dans /logs.
BryanV
(Bryan Van de ven)
Décembre 3, 2021, 1:30
9
@Falco Merci, je n’étais pas au courant de ce point de terminaison. L’erreur est
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 « J'aime »
Falco
(Falco)
Décembre 3, 2021, 1:46
10
Un des plugins que vous avez installés a un nom nil pour une raison quelconque
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
Vous pouvez exécuter DockerManager::GitRepo.find_all dans une console Rails pour vérifier d’où cela provient.
BryanV
(Bryan Van de ven)
Décembre 3, 2021, 1:51
11
@Falco Eh bien, je suppose que ce serait mon plugin Onebox, bien que je ne sois pas sûr de pourquoi les choses n’ont pas non plus fonctionné en mode sans échec. Quoi qu’il en soit, j’ai assemblé ce fichier à partir de morceaux, n’ayant jamais écrit de Ruby auparavant. Si jamais vous savez comment/où je devrais spécifier le « nom », j’apprécierais :
https://github.com/bokeh/discourse-bokeh-onebox/blob/main/plugin.rb
Falco
(Falco)
Décembre 3, 2021, 2:02
12
Peut-être suivre un exemple comme
# 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 « J'aime »
BryanV
(Bryan Van de ven)
Décembre 3, 2021, 2:26
13
J’ai consulté plusieurs exemples, je n’aurais jamais imaginé que le nom était extrait d’un commentaire et non configuré comme de véritables données/code. Je vais mettre à jour mon plugin et reconstruire, merci.
1 « J'aime »
system
(system)
A fermé ce sujet ()
Janvier 2, 2022, 2:27
14
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.