diff options
| -rwxr-xr-x | script/handle-mail-replies.rb | 4 | ||||
| -rw-r--r-- | vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb | 8 | 
2 files changed, 10 insertions, 2 deletions
| diff --git a/script/handle-mail-replies.rb b/script/handle-mail-replies.rb index be6bd10da..da0fc8e96 100755 --- a/script/handle-mail-replies.rb +++ b/script/handle-mail-replies.rb @@ -21,6 +21,10 @@ load 'configuration.rb'  MySociety::Config.set_file(File.join($alaveteli_dir, 'config', 'general'), true)  MySociety::Config.load_default  require 'mail_handler' +if RUBY_VERSION.to_f >= 1.9 +    # the default encoding for IO is utf-8, and we use utf-8 internally +    Encoding.default_external = Encoding.default_internal = Encoding::UTF_8 +end  def main(in_test_mode)      Dir.chdir($alaveteli_dir) do 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 d45308fec..1e5df8de4 100644 --- a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb +++ b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb @@ -711,6 +711,9 @@ module ActsAsXapian                # We fork here, so each batch is run in a different process. This is                # because otherwise we get a memory "leak" and you can't rebuild very                # large databases (however long you have!) + +              ActiveRecord::Base.connection.disconnect! +                pid = Process.fork # XXX this will only work on Unix, tough                if pid                      Process.waitpid(pid) @@ -718,11 +721,10 @@ module ActsAsXapian                          raise "batch fork child failed, exiting also"                      end                      # database connection doesn't survive a fork, rebuild it -                    ActiveRecord::Base.connection.reconnect!                else -                      # fully reopen the database each time (with a new object)                      # (so doc ids and so on aren't preserved across the fork) +                    ActiveRecord::Base.establish_connection                      @@db_path = ActsAsXapian.db_path + ".new"                      ActsAsXapian.writable_init                      STDOUT.puts("ActsAsXapian.rebuild_index: New batch. #{model_class.to_s} from #{i} to #{i + batch_size} of #{model_class_count} pid #{Process.pid.to_s}") if verbose @@ -738,6 +740,8 @@ module ActsAsXapian                      Kernel.exit! 0                end +              ActiveRecord::Base.establish_connection +              end          end      end | 
