DEV: Fix flaky spec related to Scheduler::Defer

In some cases in CI env, it seems the AR connection isn’t available and
the `ensure` block is executed. It’s calling `#verify!` on the
connection, so it can fail sometimes. This is probably why
`#clear_active_connections!` was failing too sometimes.

Here, we just check the connection is present before clearing the
connections.
This commit is contained in:
Loïc Guitaut 2024-11-28 11:27:58 +01:00 committed by Loïc Guitaut
parent ef7518d4ad
commit f69f0211df

View File

@ -136,8 +136,9 @@ module Scheduler
rescue => ex
Discourse.handle_job_exception(ex, message: "Processing deferred code queue")
ensure
ActiveRecord::Base.connection.verify!
ActiveRecord::Base.connection_handler.clear_active_connections!
if ActiveRecord::Base.connection
ActiveRecord::Base.connection_handler.clear_active_connections!
end
if start
@stats_mutex.synchronize do
stats = @stats[desc]