I'm trying to recreate a race condition in a test, so I can try out some solutions. I find that in the threads I create in my test, ActiveRecord always returns 0 for counts and nil for finds. For example, with 3 rows in the table "foos":
it "whatever" do
puts Foo.count
5.times do
Thread.new do
puts Foo.count
end
end
end
will print
3
0
0
0
0
0
test.log shows the expected query, the expected 6 times:
SELECT count(*) AS count_all FROM `active_agents`
Any idea what's going on here?