aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
index e03c5e4aa..ccaa48bee 100644
--- a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
+++ b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
@@ -717,8 +717,16 @@ module ActsAsXapian
if not $?.success?
raise "batch fork child failed, exiting also"
end
- # database connection doesn't survive a fork, rebuild it
- ActiveRecord::Base.connection.reconnect!
+
+ # FIXME: Under Rails 3.1 we get "SSL error: decryption failed or bad record mac", this works around it
+ retry_count = 0
+ begin
+ # database connection doesn't survive a fork, rebuild it
+ ActiveRecord::Base.connection.reconnect!
+ rescue
+ retry_count += 1
+ retry_count > 3 ? raise : retry
+ end
else
# fully reopen the database each time (with a new object)