codeigniter4 / codeigniter4/CodeIgniter4
Bug: [Memcached] session_start(): Unable to clear session lock record
- Vorherrschende Sprache
- PHP
- Sterne
- 6k
- Forks
- 2k
- Ø Merge
- 1 T. 11 Std.
- Gemergte PRs (30 T.)
- 73
Beschreibung
### 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_
Beitragsleitfaden
Rechercherichtung
Beginne bei SYSTEMPATH/Session/Session.php Zeile 928 und verfolge den Pfad von startSession(), der session_start() aufruft. Reproduziere den Fehler mit Memcached bei mehreren gleichzeitigen AJAX-Anfragen unter PHP 8.2 und vergleiche das Verhalten mit der erwarteten JSON-Antwort. Das Problem ist behoben, wenn gleichzeitige Anfragen den session lock-record-Fehler nicht mehr melden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- memcached, php
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100