Я использую Catalyst :: Plugin :: Session вместе с Catalyst :: Plugin :: Session :: Store :: DBIC и CatalystX :: SimpleLogin. Раньше я использовал их несколько раз, но сейчас у меня странное поведение. Я вижу, что как только я вхожу в систему, сеанс создается, затем удаляется, а затем предпринимается попытка обновить несуществующую строку сеанса, что приводит к сбою. Вот выполняемые запросы:
INSERT INTO sessions ( id) VALUES ( ? ): 'session:ff4732c1779d955a73d31b967db50ba59d3c0573'
DELETE FROM sessions WHERE ( id = ? ): 'session:ff4732c1779d955a73d31b967db50ba59d3c0573'
DELETE FROM sessions WHERE ( id = ? ): 'flash:ff4732c1779d955a73d31b967db50ba59d3c0573'
UPDATE sessions SET expires = ?, session_data = ? WHERE ( id = ? ): '1467954773', 'BQoDAAAABQp5TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTFfNCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUxLjAuMjcwNC4xMDMgU2FmYXJpLzUzNy4zNgAAAAxfX3VzZXJfYWdlbnQJV33k1QAAAAlfX2NyZWF0ZWQJV33k1QAAAAlfX3VwZGF0ZWQKBXVzZXJzAAAADF9fdXNlcl9yZWFsbQQDAAAAAQiBAAAAAmlkAAAABl9fdXNlcg==', 'session:ff4732c1779d955a73d31b967db50ba59d3c0573'
Вот результаты отладки, которые я вижу:
[debug] Created session "ff4732c1779d955a73d31b967db50ba59d3c0573"
[debug] Created session "aec058e68a823f5711d64b18ad8c53611b1b832f"
[debug] change_sessid: deleting session data from "ff4732c1779d955a73d31b967db50ba59d3c0573"
[debug] change_sessid: storing session data to "aec058e68a823f5711d64b18ad8c53611b1b832f"
А вот и вылет:
Я проверил, и функция, вызывающая delete_session_data
, равна Catalyst::Plugin::Session::change_session_id
.
Кроме того, это работает, когда я использую Catalyst :: Plugin :: Session: : Store :: File вместо Catalyst :: Plugin :: Session :: Store :: DBIC.
Кто-нибудь знает, что может пойти не так?
ОБНОВЛЕНИЕ:
Я проверил один из моих других серверов, который работает, и похоже, что по какой-то причине запросов на удаление нет:
INSERT INTO sessions ( id) VALUES ( ? ): 'session:08844c28572b99acd3603d50c2c3975d13c3a4b8'
UPDATE sessions SET expires = ?, session_data = ? WHERE ( id = ? ): '1467956394', 'BQcDAAAABgp5TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTFfNCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzUxLjAuMjcwNC4xMDMgU2FmYXJpLzUzNy4zNgAAAAxfX3VzZXJfYWdlbnQKBXVzZXJzAAAADF9fdXNlcl9yZWFsbQoONTAuMTc0LjI0Mi4yNTMAAAAJX19hZGRyZXNzBAMAAAABCgExAAAAAmlkAAAABl9fdXNlcgoKMTQ2Nzg2OTk5NAAAAAlfX2NyZWF0ZWQKCjE0Njc4Njk5OTQAAAAJX191cGRhdGVk', 'session:08844c28572b99acd3603d50c2c3975d13c3a4b8'
Дальнейшее обновление:
Я использую Perl 5.24. Я подумал, что это может быть актуально. Я собираюсь попробовать загрузить старую версию Perl и посмотреть, работает ли она.