CodeIgniter4 icon indicating copy to clipboard operation
CodeIgniter4 copied to clipboard

Bug: [Memcached] session_start(): Unable to clear session lock record

Open sandydevvns opened this issue 2 years ago • 4 comments

PHP Version

8.2

CodeIgniter4 Version

4.3.2

CodeIgniter4 Installation Method

Composer (using codeigniter4/appstarter)

Which operating systems have you tested for this bug?

Linux

Which server did you use?

fpm-fcgi

Database

Mysql 5.7

What happened?

I have configured session store as memcached, it was working fine in PHP 7.1 with codeIgniter 2,

After upgrading PHP 7.1 to 8.2 and codeIgniter 2 to 4 I am getting an error on multiple async ajax call

session_start(): Unable to clear session lock record
in SYSTEMPATH/Session/Session.php on line 928.
 1 [internal function]: CodeIgniter\Debug\Exceptions->errorHandler()
 2 SYSTEMPATH/Session/Session.php(928): session_start()
 3 SYSTEMPATH/Session/Session.php(250): CodeIgniter\Session\Session->startSession()
 4 SYSTEMPATH/Config/Services.php(674): CodeIgniter\Session\Session->start()
 5 SYSTEMPATH/Config/BaseService.php(252): CodeIgniter\Config\Services::session()
 6 SYSTEMPATH/Config/BaseService.php(193): CodeIgniter\Config\BaseService::__callStatic()
 7 SYSTEMPATH/Config/Services.php(641): CodeIgniter\Config\BaseService::getSharedInstance()
 8 SYSTEMPATH/Config/BaseService.php(252): CodeIgniter\Config\Services::session()
 9 SYSTEMPATH/Common.php(988): CodeIgniter\Config\BaseService::__callStatic()

codeIgniter official website also suggests to use session_write_close() for resolving this issue. But this did not work for ajax concurrent call.

Steps to Reproduce

When I am calling multiple sync ajax than getting error

Expected Output

Getting Json Response

Anything else?

No response

sandydevvns avatar Jun 21 '23 13:06 sandydevvns

Do you use the same version of Memcached with CI2 and CI4?

kenjis avatar Jun 21 '23 22:06 kenjis

Try:

[memcached]
memcached.sess_lock_wait_min = 100;
memcached.sess_lock_wait_max = 1000;
memcached.sess_lock_retries = 30;

kenjis avatar Jun 21 '23 22:06 kenjis

Do you use the same version of Memcached with CI2 and CI4?

yes I am using same version of memcached 1.6.6

sandeephealthians190 avatar Jun 22 '23 05:06 sandeephealthians190

See https://github.com/bcit-ci/CodeIgniter/issues/5382

kenjis avatar Dec 12 '23 08:12 kenjis