Hallo, wir stecken in letzter Zeit bei einem sehr üblen Fehler fest, der unsere gesamte Website lahmgelegt hat und scheinbar keinen Ausweg bietet. Wir haben alles versucht, von der Neuerstellung bis zum Entfernen/Hinzufügen von Plugins, alles ohne Erfolg. Wir haben ein funktionierendes Backup von vor ein paar Monaten, aber jeder Versuch, dies mit einer neueren Version neu zu erstellen, bricht die Website einfach ab.
Die Hauptmeldung, die angezeigt wird, lautet:
Ups
Die Software, die dieses Diskussionsforum antreibt, ist auf ein unerwartetes Problem gestoßen. Wir entschuldigen uns für die Unannehmlichkeiten.
Detaillierte Informationen über den Fehler wurden protokolliert und eine automatische Benachrichtigung generiert. Wir werden uns darum kümmern.
Es sind keine weiteren Maßnahmen erforderlich. Wenn die Fehlerbedingung jedoch weiterhin besteht, können Sie zusätzliche Details, einschließlich der Schritte zur Reproduktion des Fehlers, bereitstellen, indem Sie ein Diskussionsthema in der Feedback-Kategorie der Website erstellen.
Dies ist eine generische Discourse-Fehlermeldung, die bei der Fehlerbehebung keine tatsächlichen Ergebnisse liefert. Als ich die Protokolle unseres Docker überprüfte, fand ich Folgendes:
Completed 500 Internal Server Error in 152ms (ActiveRecord: 0.0ms | Allocations: 17980)
ActionView::Template::Error (undefined method `[]' for nil:NilClass)
lib/svg_sprite/svg_sprite.rb:502:in `block in custom_icons'
lib/svg_sprite/svg_sprite.rb:500:in `each'
lib/svg_sprite/svg_sprite.rb:500:in `custom_icons'
lib/svg_sprite/svg_sprite.rb:275:in `block in all_icons'
lib/distributed_cache.rb:25:in `defer_get_set'
lib/svg_sprite/svg_sprite.rb:517:in `get_set_cache'
lib/svg_sprite/svg_sprite.rb:268:in `all_icons'
lib/svg_sprite/svg_sprite.rb:337:in `bundle'
lib/svg_sprite/svg_sprite.rb:285:in `block in version'
lib/distributed_cache.rb:25:in `defer_get_set'
lib/svg_sprite/svg_sprite.rb:517:in `get_set_cache'
lib/svg_sprite/svg_sprite.rb:284:in `version'
lib/svg_sprite/svg_sprite.rb:290:in `path'
app/helpers/application_helper.rb:586:in `client_side_setup_data'
app/views/layouts/application.html.erb:61
lib/topic_list_responder.rb:13:in `block (2 levels) in respond_with_list'
lib/topic_list_responder.rb:9:in `respond_with_list'
app/controllers/list_controller.rb:103:in `block (2 levels) in <class:ListController>'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
Also dachte ich natürlich, ich könnte das Problem beheben, indem ich einfach einen Try/Catch in Zeile 501 implementiere, wo der Fehler auftritt. Dies ist die betreffende Methode:
def self.custom_icons(theme_id)
# Automatically register icons in sprites added via themes or plugins
icons = []
custom_svg_sprites(theme_id).each do |item|
begin
svg_file = Nokogiri::XML(item[:sprite])
svg_file.css('symbol').each do |sym|
icons << sym.attributes['id'].value if sym.attributes['id'].present?
end
rescue Exception => e
puts e
end
end
icons
end
Während dies die Funktionalität der Website wiederherstellt, geschieht dies leider, indem keine Icons oder Bilder auf der gesamten Website geladen werden, sodass dies letztendlich nichts behebt.
Wir verwenden die folgenden Plugins:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-bbcode.git
- git clone https://github.com/discourse/discourse-follow.git
- git clone https://github.com/discourse/discourse-user-notes.git
Soweit ich mich erinnere, haben wir einige Plugins wie discourse-follow verwendet, bevor sie offiziell unterstützt wurden, daher hat das Downgrading von ihnen möglicherweise etwas im Prozess kaputt gemacht.
Die ursprüngliche Version vor dem Update war 2.8.0.beta2, wir sind jetzt auf 2.9.0.beta1.
Ich habe so ziemlich alles versucht, was mir einfällt. Ich war mir nicht sicher, ob ich hier posten sollte, weil ich das Gefühl habe, dass dies ein zu generischer Fehler ist, bei dem jemand helfen kann, aber wenn jemand Ideen hat, was dies verursacht, würde ich mich über Hilfe freuen.
