SSO 损坏 - 找不到请求的 URL 或资源

我使用 Memberful 作为我的 SSO,在今天重建后,在登录 Discourse 时开始收到“找不到请求的 URL 或资源”错误。我现在甚至无法进入管理界面。我能够成功登录 Memberful,只是无法登录 Discourse。我该如何从这里进行故障排除?我已经重建了没有插件,运行了 discourse-doctor,并且没有发现任何奇怪的地方。

在重建之前,我遇到了新会员注册未在 Discourse 中创建为用户的问题。我在控制台中收到以下错误,但在重建后,即使是现有用户也无法登录。请帮忙!

这是 Memberful 对此问题的回应:

他说这看起来是论坛本身的一个问题。我们不确定这是否与您发送的截图(原始错误日志截图)有关,但当我们尝试同步成员时,我们收到了内部服务器错误:

Oops - Error 500

Oops

The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.

Detailed information about the error was logged, and an automatic notification generated. We'll take a look at it.

No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site's feedback category.

当向 /admin/users/sync_sso 发送 POST 请求时会发生这种情况。

他建议联系您的 Discourse 主机或管理员,看看他们是否能帮助防止此错误。

您是否尝试过以下方法登录:

来自 Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)

本质上,上面说的是,当您在启用 SSO 时无法以管理员身份登录时,您有两个选择:

  • 前往 yourforum.com//u/admin-login 输入您的管理员凭据并尝试登录(这假设您的 SMTP 服务器/服务正在运行)。
  • 第二个选项是如上所述使用 Ruby 控制台。

您最近是否对标签通知进行了任何更改?
如果进行了更改,您可以尝试从控制台中还原这些设置。

1 个赞

我能够通过 Memberful 登录该网站。我没有发现任何问题。

根据我现在所知,我认为这是网络连接或 Memberful 的问题。

Thanks to @pfaffman 的提醒,我得以通过 /u/admin-login 路由重新获得管理员访问权限,谢谢 Jay!

所以“请求的 URL…”不再是问题,但新用户无法创建的其他问题仍然存在。Jay,你之所以能够登录是因为你已经有了一个登录账户,但新用户无法登录并遇到登录错误。

@RGJ 我最近确实对此进行了一些更改,你真的认为这会导致登录问题吗?我创建了一个标签并将其默认设置为静音,这是唯一的更改。

抱歉,这有点零散,今天早上有很多问题在发生!

直到一小时前,我还不这么认为。但 idx_tag_users_ix1 索引一直在报错。它可能已损坏,所以我们可能在对抗症状,但禁用那些通知至少可以帮助你的论坛恢复可用,因为那些是在用户创建时设置的。

有了堆栈跟踪和所有信息,就不太可能了。

3 个赞

哇。真是精彩的接球!

我不确定那在哪个表里,但是

   discourse=# reindex table tag_users;

没有报错。

Jay抢在我之前解决了,因为我们一直在私下交流,是的,Richard,这就是解决方案!您真是太聪明了。我将该标签从默认静音中移除,将其应用于所有用户,现在它又可以正常工作了。我将进行一些测试,看看是否可以重新启用它,以确定它只是损坏还是某种错误。谢谢,谢谢!

编辑:后续跟进,它确实已损坏,我将标签通知放回原位,一切都正常工作。

4 个赞

我担心这个问题又出现了,现在删除导致问题的标签也不起作用了。我该如何识别日志中看到的标签 ID 842?谢谢!

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"idx_tag_users_ix1\" DETAIL: Key (user_id, tag_id, notification_level)=(8118, 842, 0) already exists. )

尝试用户登录的日志
rack-mini-profiler (3.0.0) lib/patches/db/pg.rb:69:in `exec_params'
rack-mini-profiler (3.0.0) lib/patches/db/pg.rb:69:in `exec_params'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
activesupport (7.0.3) lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport (7.0.3) lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract_adapter.rb:765:in `block in log'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract_adapter.rb:756:in `log'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql/database_statements.rb:54:in `exec_query'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/database_statements.rb:150:in `exec_insert_all'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `exec_insert_all'
activerecord (7.0.3) lib/active_record/insert_all.rb:41:in `execute'
activerecord (7.0.3) lib/active_record/persistence.rb:213:in `insert_all!'
app/models/user.rb:1734:in `set_default_tags_preferences'
activesupport (7.0.3) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3) lib/active_support/callbacks.rb:236:in `block in halting_and_conditional'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `block in invoke_after'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `each'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `invoke_after'
activesupport (7.0.3) lib/active_support/callbacks.rb:108:in `run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:929:in `_run_create_callbacks'
activerecord (7.0.3) lib/active_record/callbacks.rb:461:in `_create_record'
activerecord (7.0.3) lib/active_record/timestamp.rb:108:in `_create_record'
activerecord (7.0.3) lib/active_record/persistence.rb:1067:in `create_or_update'
activerecord (7.0.3) lib/active_record/callbacks.rb:457:in `block in create_or_update'
activesupport (7.0.3) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
activerecord (7.0.3) lib/active_record/autosave_association.rb:370:in `around_save_collection_association'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
activerecord (7.0.3) lib/active_record/callbacks.rb:457:in `create_or_update'
activerecord (7.0.3) lib/active_record/timestamp.rb:126:in `create_or_update'
activerecord (7.0.3) lib/active_record/persistence.rb:648:in `save!'
activerecord (7.0.3) lib/active_record/validations.rb:53:in `save!'
activerecord (7.0.3) lib/active_record/transactions.rb:302:in `block in save!'
activerecord (7.0.3) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
activerecord (7.0.3) lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
activerecord (7.0.3) lib/active_record/transactions.rb:302:in `save!'
activerecord (7.0.3) lib/active_record/suppressor.rb:54:in `save!'
app/models/discourse_connect.rb:260:in `block in match_email_or_create_user'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
app/models/discourse_connect.rb:239:in `match_email_or_create_user'
app/models/discourse_connect.rb:121:in `lookup_or_create_user_unsafe'
app/models/discourse_connect.rb:109:in `block in lookup_or_create_user'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
app/models/discourse_connect.rb:108:in `lookup_or_create_user'
app/controllers/admin/users_controller.rb:460:in `sync_sso'
actionpack (7.0.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.3) 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.10.0) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3) 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) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3) lib/action_dispatch/journey/router

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