[Catalyst] Catalyst::Plugin::Session: Duplicate entry errors

Tobias Kremer tobias.kremer at gmail.com
Fri May 7 09:33:05 GMT 2010


Hey folks,

we're still getting a couple of duplicate entry errors every day
(about 10-15 on a site with 20 million page impressions/month) caused
by Catalyst::Plugin::Session (0.25) used with the DBIx::Class storage
backend (0.10) and a MySQL 5 with an InnoDB session table which was
created exactly as specified in the POD. This seems to happen during
peak hours or when users hammer the site with reloads or in other
words, when there are a lot of parallel requests with the same session
cookie.

I'm not sure why this is happening because the _load_row() method of
the store delegate explicitly wraps everything in a txn_do() which
should make the find_or_create() atomic and not prone to concurrent
select/insert/update problems.
I know that this has been talked about a lot in the past and I'm a
little bit surprised that we're still experiencing this. Can somebody
smarter than me explain why this is still happening? Could our
somewhat outdated DBIx::Class version be the culprit? (0.08107, which
we unfortunately have to stick with for now because of some unexpected
incompatibilities with recent versions).

Thanks a lot for shedding some light on this!
--Toby



More information about the Catalyst mailing list