post/pool versions: fix database timeouts not being set.

Bug: database timeouts were set only on the main database, not on the
post and pool versions database, so users effectively had an unlimited
timeout when dealing with these things.
This commit is contained in:
evazion
2019-09-30 00:58:34 -05:00
parent 5b2675b831
commit c66f7c4626
2 changed files with 16 additions and 1 deletions

View File

@@ -1,11 +1,11 @@
class PostVersionsController < ApplicationController
before_action :member_only, except: [:index, :search]
before_action :check_availabililty
around_action :set_timeout
respond_to :html, :xml, :json
respond_to :js, only: [:undo]
def index
# XXX statement timeouts
@post_versions = PostArchive.includes(:updater, post: [:versions]).search(search_params).paginate(params[:page], :limit => params[:limit], :search_count => params[:search])
respond_with(@post_versions)
end
@@ -22,6 +22,13 @@ class PostVersionsController < ApplicationController
private
def set_timeout
PostArchive.connection.execute("SET statement_timeout = #{CurrentUser.user.statement_timeout}")
yield
ensure
PostArchive.connection.execute("SET statement_timeout = 0")
end
def check_availabililty
if !PostArchive.enabled?
raise NotImplementedError.new("Archive service is not configured. Post versions are not saved.")