gassim
(Al-Gassim Sharaf Addin)
10.Апрель.2025 08:06:36
1
До последнего обновления существовала автоматизация с использованием плагина Automation, выполнявшая следующие действия (что было протестировано и работало успешно без каких-либо изменений):
Скрипт: Отправка личных сообщений
Когда: «Пользователь добавлен в группу»
Отслеживаемая группа: «группа, где требуется предварительное одобрение заявок владельцем группы»
Параметры скрипта: одно личное сообщение (протестировано и работало успешно).
В настоящее время в версии 3.5.0.beta3-dev(231e9ca99a) при попытке одобрить пользователей появляется ошибка «внутренняя ошибка сервера».
Ниже приведена ошибка, которая возникает:
PG::NotNullViolation (ERROR: null value in column "total_time" of relation "discourse_automation_stats" violates not-null constraint
DETAIL: Failing row contains (18, 8, 2025-04-10, 2025-04-10 07:34:42.740189, null, null, null, null, 1).
)
lib/mini_sql_multisite_connection.rb:109:in `run'
lib/plugin/instance.rb:609:in `block in on'
lib/discourse_event.rb:12:in `block in trigger'
lib/discourse_event.rb:12:in `trigger'
app/models/group.rb:869:in `trigger_user_added_event'
app/models/group.rb:838:in `add'
app/controllers/groups_controller.rb:502:in `block in handle_membership_request'
app/controllers/groups_controller.rb:500:in `handle_membership_request'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13: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/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
Я подозреваю, что это связано с новыми изменениями в таблице discourse_automation_stats, упомянутыми здесь:
Спасибо!
1 лайк
j.jaffeux
(Joffrey Jaffeux)
10.Апрель.2025 08:51:01
4
Спасибо за отчет. Я думаю, у вас есть другая ошибка, но добавленный нами код состояния её скрывает.
Это должно исправить проблему:
main ← resilient-stat-log
merged 09:05AM - 10 Apr 25 UTC
The previous code could attempt to log a `nil` `run_time` if the block would rai… se an exception. This commit adds two safeguards:
- rescue any exception to still compute `run_time`
- defaults to `0` if we still don't have any `run_time`
После этого мы сможем увидеть фактическую ошибку.
2 лайка
gassim
(Al-Gassim Sharaf Addin)
10.Апрель.2025 13:11:25
5
Спасибо!
Это значит, что после обновления мне нужно получить фактическую ошибку?
1 лайк
j.jaffeux
(Joffrey Jaffeux)
10.Апрель.2025 13:49:44
6
Да, пожалуйста, хотя, полагаю, вы сможете исправить это самостоятельно.
2 лайка
gassim
(Al-Gassim Sharaf Addin)
24.Апрель.2025 12:05:43
7
Спасибо за ваше терпение!
Я снова получаю общую ошибку {"status":422,"error":"Unprocessable Entity"}. Пожалуйста, посмотрите скриншот после нажатия на «одобрить»:
Данные запроса отправляются в формате формы (application/x-www-form-urlencoded; charset=UTF-8):
user_id=10127&accept=true
Спасибо! Хотя я не понимаю, почему сообщается об ошибке «unprocessable entity» (необрабатываемый объект), есть какие-то советы?
j.jaffeux
(Joffrey Jaffeux)
24.Апрель.2025 18:39:16
8
Извините, но это не похоже на автоматизацию.
Не могли бы вы нажать на «Ответ» на первом скриншоте?
gassim
(Al-Gassim Sharaf Addin)
25.Апрель.2025 04:50:28
9
Привет
Спасибо! Ответ тот же…
Я провёл дополнительное расследование и понял, что…
Уже произошли два изменения:
Пользователь успешно добавляется в группу
Автоматическое сообщение отправляется
Эта ошибка «unprocessable entity» не появляется, когда запрос на вступление в группу принимает учётная запись администратора, но она возникает у обычного владельца группы (не администратора), даже если пункты 1 и 2 теперь выполняются успешно как для администратора, так и для не-администратора.
Похоже, теперь мы говорим о новой проблеме (учитывая, что вышеуказанные функции работают, но результат неясен, когда процесс блокируется этой новой ошибкой)…
Даже логи ошибок сервера изменились:
info log
ActiveRecord::RecordNotSaved (Что-то пошло не так. Возможно, эта тема была закрыта или удалена, пока вы её просматривали?)
lib/post_creator.rb:238:in `create!'
app/controllers/groups_controller.rb:523:in `handle_membership_request'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13: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/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
backtrace log
lib/post_creator.rb:238:in `create!'
app/controllers/groups_controller.rb:523:in `handle_membership_request'
actionpack (7.2.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (7.2.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:76:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.2.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (7.2.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack (7.2.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (7.2.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:896:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.13) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.13) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.13) lib/rack/head.rb:12:in `call'
actionpack (7.2.2.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:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.13) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.13) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (7.2.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (7.2.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/request_id.rb:33:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.13) lib/rack/method_override.rb:24:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'
rack (2.2.13) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:385:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
railties (7.2.2.1) lib/rails/engine.rb:535:in `call'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.13) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.13) lib/rack/urlmap.rb:58:in `each'
rack (2.2.13) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
env log
hostname
community-app
process_id
913
application_version
6fc5ce968892b980c3db6b19b49683fb38a59e29
HTTP_HOST
meta.discourse.org
REQUEST_URI
/groups/200/handle_membership_request.json
REQUEST_METHOD
PUT
HTTP_USER_AGENT
Mozilla/5.0
HTTP_ACCEPT
/
HTTP_REFERER
https://meta.discourse.org/g/group_name/requests
HTTP_X_FORWARDED_FOR
0.0.0.0
HTTP_X_REAL_IP
0.0.0.0
username
copuxtest
time
7:37 am
params
user_id
5836
accept
true
j.jaffeux
(Joffrey Jaffeux)
28.Апрель.2025 17:47:24
10
Извините, но я очень запутался, как это связано с темой. Вы не получаете эту ошибку через автоматизацию, верно? Насколько я понимаю, это прямое действие, которое вы выполняете в админке.
1 лайк
gassim
(Al-Gassim Sharaf Addin)
29.Апрель.2025 07:52:08
11
Снова привет!
Спасибо, что уделили время этому вопросу, думаю, теперь всё исправлено. Изначально ошибка появлялась только после активации автоматизации (первая ошибка была опубликована в первом сообщении), а после вашего исправления она исчезла, но в логах, как объяснялось выше, появилась другая ошибка.
Ошибки исчезли после того, как я сделал следующее:
Отключил автоматизацию
Очистил кэш браузера
Снова включил автоматизацию
После включения/выключения автоматизации и очистки кэша все ошибки исчезли. Спасибо!
j.jaffeux
(Joffrey Jaffeux)
29.Апрель.2025 08:03:34
12
О, очень удивительно, но если у вас это работает, то всё отлично! Спасибо за обновление.
1 лайк
j.jaffeux
(Joffrey Jaffeux)
Закрыл(а) тему
02.Май.2025 23:52:58
14
Эта тема была автоматически закрыта через 3 дня после последнего ответа. Новые ответы больше не принимаются.