Upgraded Rails recently and my sessions stopped working. I had the old Stefan Kaes roll your own mysql session store but it wasn’t playing nice. So - I decided to try and use memcached sessions instead - but I got this odd error:
ArgumentError (key too long “rack:session:900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1900980980980sd98f0saddklqjhsdkjh123e09u2f90u1o2dhqwj,dhqkwhd9182ye102ue1pojdlkasjd0291u8409120r8h120ie120e102dh1029eu1sdfwerffqwd23t34t23qwe”):
So I tried to switch back to ActiveRecord sessions - the old kind - but sessions weren’t working. Everytime I set a value and then redirected the values I set weren’t there. I found someone noting similar behavior here and reading the thread saw that there was supposed to be an initializers folder. I didn’t have one - my app is old and I’ve been upgrading over time - this is a jump from 2.0X to 2.3.2.
So - I generated a new rails app - copied over the config/initializers folder, and it started to work. Looking in this file - session_store.rb, there is a line that initializes the session key. Aha! Without that key in there rails tried to use some other value - not sure where it got the value above from (I changed it from the one that is local, but its the same size) - but that one is too big.
Oh well - 2 hours I’ll never get back - wait, I guess I am giving back 2 hours of productivity boosts that Rails gave me for free. I think I’m still ahead.
Still not sure why ActiveRecord sessions isn’t working - but it probably has something to do with how intrusive Kaes’s solution was - maybe I need to just pull that one out by the roots and see if it works.