嵌入搜索仍在运行错误

我在升级到 2026.9.0 时在日志中看到了这个新错误

Message (2 copies reported)

'hijack discourse_ai/embeddings/embeddings search ' is still running after 90 seconds on db default, this process may need to be restarted!

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:217:in 'Array#map'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#error'
/var/www/discourse/lib/scheduler/defer.rb:133:in 'block (2 levels) in Scheduler::Deferrable#do_work'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/message_bus-5.0.0/lib/message_bus/timer_thread.rb:117:in 'MessageBus::TimerThread#do_work'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/message_bus-5.0.0/lib/message_bus/timer_thread.rb:95:in 'block (2 levels) in MessageBus::TimerThread#queue'

你们服务器上的嵌入是如何配置的?性能如何?

这是配置,标准的 OOB gemini 嵌入。几年前配置的,之后一直没动过。这是我第一次遇到与嵌入相关的错误。你需要我从设置中提供什么具体信息吗?

@RBoy 谢谢,配置看起来是标准的。你能确认一下 HyDE 是否已启用,并在出现警告时分享 PostgreSQL 日志或活动查询吗?既然这是在升级到 2026.9.0 之后开始的,这可能是回归问题,也可能是数据库查询缓慢导致的。

是的,HyDE 已启用(据我所知一直如此)。请告诉我从哪里获取日志。我刚才查看了 discourse 错误日志,发现了这个问题并进行了报告。

今天又遇到了

Message (4 copies reported)

'hijack discourse_ai/embeddings/embeddings search ' is still running after 90 seconds on db default, this process may need to be restarted!

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:217:in 'Array#map'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.1.3.1/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#error'
/var/www/discourse/lib/scheduler/defer.rb:133:in 'block (2 levels) in Scheduler::Deferrable#do_work'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/message_bus-5.0.0/lib/message_bus/timer_thread.rb:117:in 'MessageBus::TimerThread#do_work'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/message_bus-5.0.0/lib/message_bus/timer_thread.rb:95:in 'block (2 levels) in MessageBus::TimerThread#queue'

告诉我你需要我提供什么来进一步排查,以及该从哪方面入手。如果需要直接访问权限,随时私信我继续讨论。

于是我更新到了 2026.10.0 版本,但我仍然看到该错误,供你参考。

就我而言,当我看到此错误时,它总是先出现一个来自 Gemini 的错误,提示该模型过载,请稍后重试。

Message (13 copies reported)

DiscourseAi::Completions::Endpoints::GeminiInteractions: status: 503 - body: {"error":{"message":"gemini-3.8-flash is currently experiencing high demand, spikes in demand are usually temporary. Please try again later.","code":"service_unavailable"}}

Backtrace

/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.4/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.4/lib/active_support/broadcast_logger.rb:217:in 'Array#map'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.4/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/activesupport-8.1.4/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#warn'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:756:in 'Kernel#public_send'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:756:in 'DiscourseAi::Completions::Endpoints::Base#failed_response_retry_status_and_delay'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:527:in 'block (3 levels) in DiscourseAi::Completions::Endpoints::Base#perform_completion_request_with_retries'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http.rb:2520:in 'block in Net::HTTP#transport_request'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http/response.rb:341:in 'Net::HTTPResponse#reading_body'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http.rb:2517:in 'Net::HTTP#transport_request'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http.rb:2463:in 'Net::HTTP#request'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/rack-mini-profiler-5.0.0/lib/patches/net_patches.rb:19:in 'block in Net::HTTP#request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/rack-mini-profiler-5.0.0/lib/mini_profiler/profiling_methods.rb:51:in 'Rack::MiniProfiler::ProfilingMethods#step'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/rack-mini-profiler-5.0.0/lib/patches/net_patches.rb:18:in 'Net::HTTP#request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:522:in 'block (2 levels) in DiscourseAi::Completions::Endpoints::Base#perform_completion_request_with_retries'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http.rb:1634:in 'Net::HTTP#start'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/net-http-0.10.0/lib/net/http.rb:1068:in 'Net::HTTP.start'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:503:in 'block in DiscourseAi::Completions::Endpoints::Base#perform_completion_request_with_retries'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:477:in 'Kernel#loop'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:477:in 'DiscourseAi::Completions::Endpoints::Base#perform_completion_request_with_retries'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:171:in 'DiscourseAi::Completions::Endpoints::Base#perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:386:in 'DiscourseAi::Completions::Llm#generate'
/var/www/discourse/plugins/discourse-ai/lib/agents/bot.rb:366:in 'DiscourseAi::Agents::Bot#reply'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:196:in 'DiscourseAi::Embeddings::SemanticSearch#hypothetical_post_from'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:45:in 'block in DiscourseAi::Embeddings::SemanticSearch#hyde_embedding'
/var/www/discourse/lib/cache.rb:93:in 'Cache#fetch'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:45:in 'DiscourseAi::Embeddings::SemanticSearch#hyde_embedding'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:80:in 'DiscourseAi::Embeddings::SemanticSearch#search_for_topics'
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/embeddings/embeddings_controller.rb:70:in 'block in DiscourseAi::Embeddings::EmbeddingsController#search'
/var/www/discourse/lib/hijack.rb:68:in 'BasicObject#instance_eval'
/var/www/discourse/lib/hijack.rb:68:in 'block (2 levels) in Hijack#hijack'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n.rb:354:in 'I18n::Base#with_locale'
/var/www/discourse/lib/hijack.rb:68:in 'block in Hijack#hijack'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.8/lib/concurrent-ruby/concurrent/promises.rb:911:in 'Concurrent::Promises::Event#callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.8/lib/concurrent-ruby/concurrent/promises.rb:797:in 'Concurrent::Promises::AbstractEventFuture#call_callback'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.8/lib/concurrent-ruby/concurrent/promises.rb:803:in 'Concurrent::Promises::AbstractEventFuture#call_callbacks'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.8/lib/concurrent-ruby/concurrent/promises.rb:692:in 'Concurrent::Promises::AbstractEventFuture#resolve_with'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.8/lib/concurrent-ruby/concurrent/promises.rb:1331:in 'Concurrent::Promises::ResolvableEvent#resolve'
/var/www/discourse/lib/scheduler/defer.rb:135:in 'block in Scheduler::Deferrable#do_work'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/rails_multisite-9.0.0/lib/rails_multisite/connection_management/null_instance.rb:54:in 'RailsMultisite::ConnectionManagement::NullInstance#with_connection'
/var/www/discourse/vendor/bundle/ruby/4.0.0/gems/rails_multisite-9.0.0/lib/rails_multisite/connection_management.rb:23:in 'RailsMultisite::ConnectionManagement.with_connection'
/var/www/discourse/lib/scheduler/defer.rb:130:in 'Scheduler::Deferrable#do_work'
/var/www/discourse/lib/scheduler/defer.rb:116:in 'block (2 levels) in Scheduler::Deferrable#start_thread'
1 个赞