Erreur avec les catégories à visibilité limitée et/ou les sous-catégories

Pareil pour moi, et j’ai mis à jour aujourd’hui. Donc c’est dans Discourse ?

Et maintenant j’essaie de creuser un peu plus.

1 « J'aime »

Hmm, le vôtre est une erreur côté serveur @Jagster, je pense que c’est une chose différente. De plus, ce changement n’est pas encore fusionné, il ne devrait donc pas affecter les sites auto-hébergés.

C’est vrai, mais j’étais connecté. L’erreur de l’OP concerne les anonymes. Et de toute façon, dans les deux cas, cela arrive aux catégories.

Depuis Discourse :

HasCustomFields::NotPreloadedError (Tentative d'accès au champ personnalisé non préchargé 'sort_topics_by_event_start_date' sur la classe 'Category'.)

Et

Message

HasCustomFields::NotPreloadedError (Tentative d'accès au champ personnalisé non préchargé 'sort_topics_by_event_start_date' sur la classe 'Category'. Ceci est interdit pour éviter les requêtes N+1.)
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!'

Alors… je vais supprimer le plugin calendrier ensuite, c’est ça ?

edit

Les liens vers les catégories dans la barre latérale fonctionnent bien, tous les autres liens de catégorie donnent une erreur.

J’ai limité cet erreur un peu. Elle se produit uniquement lorsqu’une catégorie a des sous-catégories. Et /categories donne aussi une erreur 500.

Et je ne suis toujours pas sûr si cela vient de Calender. Si oui, est-ce un autre cas où le mode sécurisé est inefficace ?

Mais Lockdown donne ceci :

Message

HasCustomFields::NotPreloadedError (Tentative d'accès au champ personnalisé non préchargé 'redirect_url' sur la classe 'Category'. Ceci est interdit pour éviter les requêtes N+1.)
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

Je suis donc assez sûr que cela ne vient pas des plugins mais de Discourse lui-même, mais encore une fois, je ne suis pas développeur.

Je suis l’OP et je n’ai pas le plugin Calendrier installé (je suis sur un niveau d’hébergement Discourse qui n’a pas ce plugin.)

Il est possible que « les sous-catégories en soient la cause »… Je ne peux pas le dire maintenant car les choses sont assez cassées sur mon site. Mais je viens de créer une catégorie… donc si (j’oublie comment ça marche) elle se place par défaut sous, par exemple, Public… alors je viens de créer ma première sous-catégorie (accidentellement).

L’erreur ressemble certainement à cela… sort_topics_by_event_start_date

Ceci est enregistré ici :

et pour les catégories ici :

J’ai l’impression que cela pourrait être une régression due au travail sur la scalabilité des catégories que nous faisons actuellement… nous allons examiner cela.

1 « J'aime »

Ah sympa ! C’était déjà signalé. Je laisse ça ci-dessous pour que la recherche fonctionne mieux.

while trying to load /categories.json)

Nous enquêtons sur cela.

Ce problème a été causé par discourse-calendar, mais la dernière version (bientôt) du plugin devrait le résoudre :

Ceci est un problème de discourse-category-lockdown, sur lequel nous n’avons aucun contrôle. Je peux cependant soumettre une PR à ce sujet.

6 « J'aime »

Suivi supplémentaire des problèmes ici non preloaded custom field - Discourse Category Lockdown - Pavilion

1 « J'aime »

Causé ? Donc, les deux plugins ont le même bug pour la raison X, ou Discourse a changé quelque chose qui affecte les deux ?

Non, je n’accuse personne, mais j’essaie juste de comprendre le jargon.

Une récente amélioration des performances a causé cela. Les champs personnalisés sont une licorne dans notre base de code qui peut être utilisée par divers plugins pour étendre les fonctionnalités. Cependant, s’ils sont mal utilisés, cela peut entraîner une baisse des performances. Cette amélioration vise à résoudre ce problème :

1 « J'aime »

J’ai soumis une PR pour celle-ci ici, mais ce n’est pas un dépôt auquel nous avons accès :

6 « J'aime »

Je l’ai vu fusionné, j’ai fait une reconstruction et cela a résolu le problème :tada: Merci pour la correction rapide, comme toujours rapide.

1 « J'aime »

Oui. Ça fonctionne bien. Merci beaucoup.

La catégorie Lockdown donne une roue d’éternité, cependant (eh bien, ce problème peut aussi provenir de Firefox/iPad en mode espion…). Mais c’est un problème différent, je pense.

1 « J'aime »