diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-05 11:42:06 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-05 11:42:15 -0800 |
commit | a640da454fdb9cd8806a1b6bd98c2da93f1b53b9 (patch) | |
tree | a69eff36c33ece5879267886ec20a7a8263fa2ba /activerecord/lib/active_record/timestamp.rb | |
parent | f4f998d60d0d095c7d49a26b6030bee4cf92a5d3 (diff) | |
download | rails-a640da454fdb9cd8806a1b6bd98c2da93f1b53b9.tar.gz rails-a640da454fdb9cd8806a1b6bd98c2da93f1b53b9.tar.bz2 rails-a640da454fdb9cd8806a1b6bd98c2da93f1b53b9.zip |
disable controller / view thread spawning in tests
Tests can (and do) access the database from the main thread. In this
case they were starting a transaction, then making a request. The
request would create a new thread, which would allocate a new database
connection. Since the main thread started a transaction that contains
data that the new thread wants to see, the new thread would not see it
due to data visibility from transactions. Spawning the new thread in
production is fine because middleware should not be doing database
manipulation similar to the test harness. Before 603fe20c it was
possible to set the database connection id based on a thread local, but
603fe20c changes the connection lookup code to never look at the
"connection id" but only at the thread object itself. Without that
indirection, we can't force threads to use the same connection pool as
another thread.
Fixes #23483
Diffstat (limited to 'activerecord/lib/active_record/timestamp.rb')
0 files changed, 0 insertions, 0 deletions