Skip to content

Commit 40316aa

Browse files
committed
Initialize @default_timezone and @timestamp_decoder in add_pg_decoders
Staled `@default_timezone` would cause an error on `reconnect!` after `disconnect!`. https://buildkite.com/rails/rails/builds/59495#23be8079-3a4f-4375-9991-0a6f874554f2 Steps to reproduce: ``` % ARCONN=postgresql bin/test test/cases/adapter_test.rb test/cases/base_test.rb -n "/(?:test_attributes_on_dummy_time|test_reconnect_after_a_disconnect)$/" --seed 15849 Using postgresql Run options: -n "/(?:test_attributes_on_dummy_time|test_reconnect_after_a_disconnect)$/" --seed 15849 # Running: . E Error: ActiveRecord::AdapterTestWithoutTransaction#test_reconnect_after_a_disconnect: NoMethodError: undefined method `add_coder' for #<PG::TypeMapAllStrings:0x00007f85ab9dd5b8> /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:866:in `update_typemap_for_default_timezone' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:652:in `exec_no_cache' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:636:in `execute_and_clear' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:894:in `add_pg_decoders' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:744:in `connect' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:285:in `rescue in block in reconnect!' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:281:in `block in reconnect!' /Users/kamipo/.rbenv/versions/2.6.1/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize' /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:280:in `reconnect!' /Users/kamipo/src/github.com/rails/rails/activerecord/test/cases/adapter_test.rb:465:in `block in <class:AdapterTestWithoutTransaction>' ```
1 parent 1816c4f commit 40316aa

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,6 @@ def initialize(connection, logger, connection_parameters, config)
247247

248248
# @local_tz is initialized as nil to avoid warnings when connect tries to use it
249249
@local_tz = nil
250-
@default_timezone = nil
251-
@timestamp_decoder = nil
252250
@max_identifier_length = nil
253251

254252
configure_connection
@@ -869,6 +867,9 @@ def update_typemap_for_default_timezone
869867
end
870868

871869
def add_pg_decoders
870+
@default_timezone = nil
871+
@timestamp_decoder = nil
872+
872873
coders_by_name = {
873874
"int2" => PG::TextDecoder::Integer,
874875
"int4" => PG::TextDecoder::Integer,

0 commit comments

Comments
 (0)