Fehler mit Kategorien mit eingeschränkter Sichtbarkeit und/oder Unterkategorien

Bei mir dasselbe, und ich habe heute ein Upgrade durchgeführt. Also ist es in Discourse?

Und jetzt versuche ich, ein wenig tiefer zu graben.

1 „Gefällt mir“

Hmm, bei Ihnen handelt es sich um einen serverseitigen Fehler, @Jagster, ich glaube, das ist etwas anderes. Außerdem ist diese Änderung noch nicht zusammengeführt worden, sodass sie keine Auswirkungen auf selbst gehostete Websites haben sollte.

Das stimmt, aber ich war angemeldet. Der Fehler des OP ist für Anonyme. Und sowieso passiert es in beiden Fällen mit Kategorien.

Von Discourse:

HasCustomFields::NotPreloadedError (Versuch, auf das nicht vorab geladene benutzerdefinierte Feld 'sort_topics_by_event_start_date' in der Klasse 'Category' zuzugreifen.

Und

Message

HasCustomFields::NotPreloadedError (Versuch, auf das nicht vorab geladene benutzerdefinierte Feld 'sort_topics_by_event_start_date' in der Klasse 'Category' zuzugreifen. Dies ist verboten, um N+1-Abfragen zu verhindern.)
app/models/concerns/has_custom_fields.rb:203:in `[]'
(eval):47:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/application_controller.rb:531:in `serialize_data'
app/controllers/application_controller.rb:540:in `render_serialized'
app/controllers/categories_controller.rb:408:in `categories_and_topics'
app/controllers/categories_controller.rb:99:in `categories_and_latest'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:389:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

Backtrace

app/models/concerns/has_custom_fields.rb:203:in `[]'
plugins/discourse-calendar/plugin.rb:88:in `block (2 levels) in activate!'
(eval):47:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:124:in `block in serialize'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `map'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `serialize'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'

Also… als nächstes werde ich das Kalender-Plugin deaktivieren, richtig?

edit

Links zu Kategorien in der Seitenleiste funktionieren gut, alle anderen Kategorie-Links geben einen Fehler aus.

Ich habe diesen Fehler etwas eingeschränkt. Er tritt nur auf, wenn eine Kategorie Unterkategorien hat. Und /categories gibt ebenfalls einen Fehler 500 zurück.

Und ich bin mir immer noch nicht sicher, ob er vom Kalender kommt. Wenn ja, ist das ein weiterer Fall, in dem der sichere Modus zahnlos ist?

Aber Lockdown gibt Folgendes aus:

Message

HasCustomFields::NotPreloadedError (Versuch, auf das nicht vorab geladene benutzerdefinierte Feld 'redirect_url' der Klasse 'Category' zuzugreifen. Dies ist verboten, um N+1-Abfragen zu verhindern.)
app/models/concerns/has_custom_fields.rb:203:in `[]'
(eval):49:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/application_controller.rb:531:in `serialize_data'
app/controllers/application_controller.rb:540:in `render_serialized'
app/controllers/categories_controller.rb:408:in `categories_and_topics'
app/controllers/categories_controller.rb:99:in `categories_and_latest'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:389:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

Backtrace

app/models/concerns/has_custom_fields.rb:203:in `[]'
plugins/discourse-category-lockdown/plugin.rb:18:in `block (2 levels) in activate!'
(eval):49:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:124:in `block in serialize'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `map'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `serialize'

Env

HTTP HOSTS: foorumi.katiska.eu

Ich bin mir also ziemlich sicher, dass dies nicht von Plugins, sondern von Discourse selbst stammt, aber auch hier bin ich kein Entwickler.

Ich bin der OP und habe das Kalender-Plugin nicht installiert (ich bin auf einem gehosteten Discourse-Level, das dieses Plugin nicht hat.)

Es ist möglich, dass die “Unterkategorien die Ursache sind”… Ich kann es jetzt nicht sagen, da die Dinge auf meiner Website ziemlich kaputt sind. Aber ich habe gerade eine Kategorie erstellt… also wenn (ich vergesse, wie es funktioniert) es standardmäßig neue Kategorien unter, zum Beispiel, Public legt, dann habe ich gerade meine erste Unterkategorie (versehentlich) erstellt.

Der Fehler sieht sicherlich so aus… sort_topics_by_event_start_date

Dies wird hier registriert:

und für Kategorien hier:

Ich habe das Gefühl, dass dies eine Regression aufgrund der Kategorie-Skalierbarkeitsarbeit sein könnte, die wir gerade durchführen… wir werden uns das ansehen.

1 „Gefällt mir“

Ah nett! Es wurde bereits gemeldet. Ich lasse dies unten, damit die Suche besser funktioniert.

while trying to load /categories.json)

Wir untersuchen das.

Dieses Problem wurde durch discourse-calendar verursacht, aber die neueste Version (bald) des Plugins sollte es beheben:

Dies ist ein Problem von discourse-category-lockdown, über das wir keine Kontrolle haben. Ich kann jedoch einen PR dazu einreichen.

6 „Gefällt mir“

Weitere Problemverfolgung hier non preloaded custom field - Discourse Category Lockdown - Pavilion

1 „Gefällt mir“

Verursacht? Also, beide Plugins haben aus Grund X denselben Fehler, oder hat Discourse etwas geändert, das beide betrifft?

Ich mache niemandem Vorwürfe, aber ich versuche nur, die Fachsprache zu verstehen.

Eine kürzliche Leistungsverbesserung hat dies verursacht. Benutzerdefinierte Felder sind ein Einhorn in unserer Codebasis, das von verschiedenen Plugins zur Erweiterung der Funktionalität verwendet werden kann. Wenn sie jedoch falsch verwendet werden, kann dies zu Leistungseinbußen führen. Diese Verbesserung befasst sich mit der Behebung dieses Problems:

1 „Gefällt mir“

Ich habe hierfür einen PR eingereicht, aber es ist kein Repository, auf das wir Zugriff haben:

6 „Gefällt mir“

Ich habe gesehen, dass es zusammengeführt wurde. Ich habe einen Rebuild durchgeführt und das Problem behoben :tada: Danke für die schnelle Behebung, wie immer schnell.

1 „Gefällt mir“

Ja. Funktioniert gut. Vielen Dank.

Category Lockdown gibt zwar den Spinner of Eternity, aber (nun, dieses Problem könnte auch von Firefox/iPad im Spionage-Modus herrühren). Aber das ist ein anderes Problem, denke ich.

1 „Gefällt mir“