@darkpixlz pouvez-vous confirmer quelle version de Discourse vous utilisez ? stable, bêta ou tests-validés ?
J’utilise la version bêta, 2.9.0beta7. Je suis 2 commits de retard, aucun des deux ne ferait quoi que ce soit à ce problème.
Liste des mises à jour :
Discourse Akismet
Apple Auth
BBCode color
Cakeday
Calendar
Custom Wizard
Follow
Math
Microsoft Auth
Perspective API
ImgFlip
Prometheus
QA
Reactions
Solved
Spoiler
Steam Login
User notes
Voting
Who’s Online
Yearly Review
Docker manager
Styleguide
J’ai vient de pousser ce commit dans le core :
Il introduit une nouvelle tâche rake qui devrait nous aider à traquer ce problème. Nous ne constatons aucune erreur sur notre hébergement, ce qui suggère que le problème est lié à un plugin tiers.
Quelqu’un qui rencontre le problème peut-il mettre à jour vers la dernière version tests-passed, puis exécuter :
./launcher enter app
cd /var/www/discourse
bin/rake "revisions:debug_deserialization"
Cela devrait afficher des informations sur les classes problématiques, et un exemple de révision pour chaque classe. Veuillez partager la section résumé/exemple de la sortie dans ce sujet (ou par message privé, si vous préférez ne pas partager publiquement l’exemple de révision).
Une fois que nous saurons exactement ce qui cause le problème, cela nous aidera à construire une solution. (probablement une migration de base de données dans le plugin tiers, ou une tâche rake du core qui peut nettoyer toute donnée inattendue)
J’ai demandé à mon hôte de l’exécuter, je mettrai à jour ici une fois que j’aurai un résultat.
Nous attendons que les personnes rapportent des informations de la tâche de ratissage avant de continuer ici.
Faites-nous savoir.
Ouais, il ne m’a jamais répondu, je viens de lui rappeler.
Salut à tous,
malheureusement, j’ai perdu du temps dans ce fil de discussion…
J’ai donc juste mis à jour vers la dernière version et j’ai toujours le problème.
J’ai essayé de l’exécuter mais je suppose que ma configuration ne me permet pas d’aider ici :
Je l’ai fait fonctionner dans docker / postgres.
Y a-t-il autre chose que je puisse faire pour vous aider avec cela ?
Ce sont les plugins que j’utilise
Vous avez besoin de l’environnement configuré… essayez rake au lieu de bin/rake
Ah, si vous avez exécuté ./launcher enter app, vous deviendrez root. Il semble que vous deviez passer à l’utilisateur discourse pour accéder à la base de données. Ceci devrait fonctionner :
sudo -EH -u discourse bin/rake "revisions:debug_deserialization"
Le type de sortie que nous recherchons est
Checking 5 PostRevision records in batches of 1000... this may take some time...
Done
---- Summary ----
Checked records: 5
---- Examples ----
(bien que, évidemment, s’il y a des problèmes, la section « Exemples » ne sera pas vide)
Voici notre sortie ;
sudo -EH -u discourse bin/rake "revisions:debug_deserialization"
Vérification de 1096 enregistrements PostRevision par lots de 1000... cela peut prendre un certain temps...
Terminé
---- Résumé ----
Enregistrements vérifiés : 1096
---- Exemples ----
Oh ! C’est inattendu !
Rencontrez-vous toujours des erreurs lorsque vous essayez de visualiser certaines révisions de publication ?
Au fait, s’agit-il d’une « installation standard » ou est-elle hébergée dans un cluster multisite ?
Oui, c’est standard.
Et plus vraiment, je n’ai pas remarqué depuis un moment, je pense que cela pourrait être résolu.
Ok super, merci @darkpixlz
@B-iggy si vous pouviez essayer la commande dans ce post, je pense que cela devrait résoudre l’erreur que vous avez vue la première fois ![]()
Merci beaucoup les gars !
Cette fois, cela s’est déroulé avec succès et voici la sortie
$w3dg @ 06:14:52 > /var/discourse: sudo ./launcher enter app
[sudo] password for w3dg:
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@W3DG-app:/var/www/discourse# cd /var/www/discourse
root@W3DG-app:/var/www/discourse# sudo -EH -u discourse bin/rake "revisions:debug_deserialization"
Checking 18451 PostRevision records in batches of 1000... this may take some time...
Done
---- Summary ----
Checked records: 18451
---- Examples ----
root@W3DG-app:/var/www/discourse#
Mais malheureusement, ma révision de ce sujet ici est toujours vide. Désolé. Y a-t-il d’autres journaux que je peux vous fournir ?
Mon discourse est également une installation standard, soit dit en passant.
Merci @B-iggy. C’est assez surprenant - je m’attendais à ce que le script liste les erreurs. ![]()
Pouvez-vous s’il vous plaît essayer de visiter /logs sur votre site et voir s’il y a des journaux d’erreurs récents ? En particulier, nous recherchons ceux qui commencent par Psych::DisallowedClass.
Sure. I have bunch of Psych errors.
Question is: which one you need? ![]()
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:97:in `find'
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:28:in `load'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:411:in `resolve_class'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:208:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:141:in `visit_Psych_Nodes_Sequence'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:141:in `visit_Psych_Nodes_Sequence'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:340:in `block in revive_hash'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `each_slice'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `revive_hash'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:162:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:313:in `visit_Psych_Nodes_Document'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych.rb:360:in `safe_load'
activerecord (7.0.3.1) lib/active_record/coders/yaml_column.rb:50:in `yaml_load'
activerecord (7.0.3.1) lib/active_record/coders/yaml_column.rb:26:in `load'
activerecord (7.0.3.1) lib/active_record/type/serialized.rb:22:in `deserialize'
activemodel (7.0.3.1) lib/active_model/type/helpers/mutable.rb:8:in `cast'
activemodel (7.0.3.1) lib/active_model/attribute.rb:179:in `type_cast'
activemodel (7.0.3.1) lib/active_model/attribute.rb:43:in `value'
activemodel (7.0.3.1) lib/active_model/attribute_set.rb:46:in `fetch_value'
activerecord (7.0.3.1) lib/active_record/attribute_methods/read.rb:38:in `_read_attribute'
activemodel (7.0.3.1) lib/active_model/attribute_methods.rb:277:in `modifications'
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5: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.rb:347:in `as_json'
activesupport (7.0.3.1) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3.1) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
actionpack (7.0.3.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.3.1) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
i18n (1.12.0) lib/i18n.rb:322:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3.1) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3.1) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3.1) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3.1) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (7.0.3.1) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3.1) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.4) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.4) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.4) lib/rack/head.rb:12:in `call'
actionpack (7.0.3.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
rack (2.2.4) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.4) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/cookies.rb:697:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.3.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
logster (2.11.3) lib/logster/middleware/reporter.rb:43:in `call'
railties (7.0.3.1) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.3.1) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/reque
Message (33 copies reported)
Psych::DisallowedClass (Tried to load unspecified class: Tag)
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5:in `_fast_attributes'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415: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:366:in `call'
config/initializers/008-rack-cors.rb:25: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:202:in `call'
Backtrace
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:97:in `find'
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:28:in `load'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:411:in `resolve_class'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:208:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'
Env
HTTP HOSTS: forum.empyrion-homeworld.net
Psych::DisallowedClass (Tried to load unspecified class: Tag)
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5:in `_fast_attributes'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415: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:368:in `call'
config/initializers/008-rack-cors.rb:25: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:202:in `call'
Merci, c’est utile ! Pouvez-vous essayer d’exécuter cette commande et de coller la sortie ?
sudo -EH -u discourse bin/rails runner "puts PostRevisor.tracked_topic_fields.inspect"
Cela devrait nous aider à identifier quels plugins ajoutent des données aux PostRevisions ![]()
Sur mon site local, cela renvoie
{:title=>#<Proc:0x0000000124b02960 /Users/david/discourse/discourse/lib/post_revisor.rb:79>, :archetype=>#<Proc:0x0000000124b028c0 /Users/david/discourse/discourse/lib/post_revisor.rb:83>, :category_id=>#<Proc:0x0000000124b020a0 /Users/david/discourse/discourse/lib/post_revisor.rb:87>, :tags=>#<Proc:0x0000000124b01880 /Users/david/discourse/discourse/lib/post_revisor.rb:103>, :featured_link=>#<Proc:0x0000000124b017e0 /Users/david/discourse/discourse/lib/post_revisor.rb:129>}
Merci beaucoup !
C’est ma sortie
root@W3DG-app:/var/www/discourse# sudo -EH -u discourse bin/rails runner "puts PostRevisor.tracked_topic_fields.inspect"
{:title=>#<Proc:0x0000563008c879c0 /var/www/discourse/lib/post_revisor.rb:79>, :archetype=>#<Proc:0x0000563008c87920 /var/www/discourse/lib/post_revisor.rb:83>, :category_id=>#<Proc:0x0000563008c87010 /var/www/discourse/lib/post_revisor.rb:87>, :tags=>#<Proc:0x0000563008c867a0 /var/www/discourse/lib/post_revisor.rb:103>, :featured_link=>#<Proc:0x0000563008c86700 /var/www/discourse/lib/post_revisor.rb:129>}
@B-iggy et moi avons enquêté sur ce problème via MP et avons réussi à le résoudre. Le sujet en question avait des anciennes étiquettes attachées, mais l’étiquetage était désactivé sur le site. Ces deux choses combinées ont conduit à une condition limite étrange dans le cœur du système, ce qui causait l’erreur. Ce problème particulier devrait être résolu par
Il est possible qu’il y ait encore d’autres problèmes, donc je vais laisser ce sujet ouvert pendant encore quelques semaines. N’hésitez pas à nous faire savoir si vous rencontrez toujours des problèmes pour charger les révisions.




