File tree 1 file changed +4
-2
lines changed
src/Symfony/Component/HttpFoundation/Session/Storage/Handler
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -552,14 +552,16 @@ private function doAdvisoryLock($sessionId)
552
552
{
553
553
switch ($ this ->driver ) {
554
554
case 'mysql ' :
555
+ // MySQL 5.7.5 and later enforces a maximum length on lock names of 64 characters. Previously, no limit was enforced.
556
+ $ lockId = \substr ($ sessionId , 0 , 64 );
555
557
// should we handle the return value? 0 on timeout, null on error
556
558
// we use a timeout of 50 seconds which is also the default for innodb_lock_wait_timeout
557
559
$ stmt = $ this ->pdo ->prepare ('SELECT GET_LOCK(:key, 50) ' );
558
- $ stmt ->bindValue (':key ' , $ sessionId , \PDO ::PARAM_STR );
560
+ $ stmt ->bindValue (':key ' , $ lockId , \PDO ::PARAM_STR );
559
561
$ stmt ->execute ();
560
562
561
563
$ releaseStmt = $ this ->pdo ->prepare ('DO RELEASE_LOCK(:key) ' );
562
- $ releaseStmt ->bindValue (':key ' , $ sessionId , \PDO ::PARAM_STR );
564
+ $ releaseStmt ->bindValue (':key ' , $ lockId , \PDO ::PARAM_STR );
563
565
564
566
return $ releaseStmt ;
565
567
case 'pgsql ' :
You can’t perform that action at this time.
0 commit comments