Ember jquery Mémoire saturée lors de la saisie de la réponse

Sur la version 2.7.0beta4 11f28e3eb3

La saisie d’une réponse fige le navigateur client ; la console de développement affiche « Out Of Memory » dans Ember-jquery.

J’ai désactivé Presence, masqué l’aperçu, initialisé une nouvelle image web_only et lancé un nouveau conteneur. Les mêmes erreurs persistent.

J’utilise un CDN pour les uploads S3 et le contenu statique. J’ai vidé le cache du CDN.

Je constate également un flot de messages dans error.log :

Feb 19 02:27:42 discourse error.log 2021/02/19 10:27:42 [alert] 677#677: 768 worker_connections are not enough

Le problème se produit-il si vous essayez le mode sans échec ?

votre.site.com/mode-sans-echec

Mode sans échec, toutes les cases cochées, m’affiche la page Oops :

Oops

Le logiciel alimentant ce forum de discussion a rencontré un problème inattendu. Nous nous excusons pour le désagrément.

Des informations détaillées sur l'erreur ont été enregistrées et une notification automatique a été générée. Nous allons l'examiner.

Aucune action supplémentaire n'est nécessaire. Cependant, si l'erreur persiste, vous pouvez fournir des détails supplémentaires, y compris les étapes pour reproduire l'erreur, en publiant un sujet de discussion dans la catégorie de commentaires du site.

Je suis un peu confus — cela pointe vers un problème serveur, mais le reste de vos descriptions concerne des problèmes côté client.
L’échec du mode sans échec implique des problèmes supplémentaires côté serveur.

Pouvez-vous prendre une capture d’écran de l’erreur « out of memory » ?

Essayez de visiter /logs. Y a-t-il quelque chose d’intéressant là-bas ?

Quelque chose d’inhabituel dans votre configuration de base de données ?

Les messages du fichier error.log peuvent provenir de ma vidange du cache CDN et de son tirage.

Tout fonctionnait parfaitement quelques heures plus tôt. J’ai amorcé une nouvelle image lorsque la version bêta a été publiée ; j’avais amorcé une image pour intégrer les correctifs relatifs aux badges d’avatar du CDN S3 de Falco.

Je viens d’amorcer une nouvelle image et de la déployer.

Lorsque vous tapez un seul caractère dans la zone de réponse, l’interface se fige.

Backtrace :

plugins/discourse-feature-voting/plugin.rb:165:in `reached_voting_limit?'
plugins/discourse-feature-voting/plugin.rb:178:in `votes_exceeded'
(eval):58: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.rb:347:in `as_json'
activesupport (6.0.3.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (6.0.3.3) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (6.0.3.3) 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:571:in `preload_current_user_data'
app/controllers/application_controller.rb:382:in `preload_json'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:428:in `block in make_lambda'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:200:in `block (2 levels) in halting'
actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:201:in `block in halting'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:513:in `block in invoke_before'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:513:in `each'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:513:in `invoke_before'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:110:in `block in run_callbacks'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
i18n (1.8.9) lib/i18n.rb:314:in `with_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:139:in `run_callbacks'
actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.0.3.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `block in instrument'
activesupport (6.0.3.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `instrument'
actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (6.0.3.3) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (6.0.3.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.0.3.3) lib/abstract_controller/base.rb:136:in `process'
actionview (6.0.3.3) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method'


actionpack (6.0.3.3) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.0.3.3) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.0.3.3) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (6.0.3.3) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:834:in `call'
lib/middleware/omniauth_bypass_middleware.rb:68: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'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/008-rack-cors.rb:25: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.0.3.3) lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (6.0.3.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.5) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.0.3.3) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.0.3.3) 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.0.3.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/request_id.rb:27:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.0.3.3) lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiler.rb:373:in `call'


message_bus (3.3.4) lib/message_bus/rack/middleware.rb:61:in `call'
lib/middleware/request_tracker.rb:177:in `call'
railties (6.0.3.3) lib/rails/engine.rb:527:in `call'
railties (6.0.3.3) lib/rails/railtie.rb:190:in `public_send'
railties (6.0.3.3) lib/rails/railtie.rb:190: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 (5.8.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (5.8.0) lib/unicorn/http_server.rb:732:in `worker_loop'
unicorn (5.8.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn (5.8.0) lib/unicorn/http_server.rb:144:in `start'
unicorn (5.8.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'
1 « J'aime »

Le mode sans échec semble fonctionner maintenant.

Okay, je pense l’avoir trouvé.

Il y a un composant de thème qui semble en être la cause.

J’ai supprimé ce composant et tout fonctionne comme prévu maintenant.

6 « J'aime »

Avez-vous envisagé de passer à notre hébergement ? Ainsi, nous pourrions vous alléger une partie de cette charge et vous bénéficieriez d’un canal de support privé :slight_smile:

2 « J'aime »

Nous y avons réfléchi, mais je ne pense pas que les coûts d’une solution hébergée soient compensés par les économies réalisées avec l’hébergement et le support internes.

Le nombre de vues de page par mois et le nombre d’administrateurs/modérateurs que nous avons nous placeraient dans la catégorie « Demander un devis », par rapport à ce que nous payons actuellement pour Bunny.net (CDN), Backblaze B2 et la solution gratuite (après les crédits) de DO pour le droplet. Discourse n’est pas vraiment pénible à maintenir ; il a simplement été négligé pendant longtemps car il avait été configuré par quelqu’un qui ne fait plus partie de l’équipe, sans véritable explication des raisons et des actions entreprises. Il est probablement temps de refaire complètement l’ensemble de la configuration maintenant que nous avons organisé les choses par catégories.

4 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.