User.protected_attributes returning empty Set instead of nil -- causing activerecord/lib/base:2307 to raise

I have a model that uses attr_accessible, and in my tests I get this:

RuntimeError (Declare either attr_protected or attr_accessible for
User, but not both.):
base.rb:2307:in `remove_attributes_protected_from_mass_assignment'
base.rb:2114:in `attributes='
base.rb:2033:in `update_attributes'
    /app/controllers/accounts_controller.rb:50:in `update'

The model doesnt use attr_protected. It turns out that
User.protected_attributes is returning an empty set instead of nil,
which is what remove_attributes_protected_from_mass_assignment wants.

The real fun part is that this only happens in tests (rake
test:functional or ruby ./user_controller_test.rb). And for a real
kick in the crotch, I've seen it in development but only once in about
50 tries.

Anyone ever seen this?