Closed
Description
- My problem, suggestion: (Required)
Only fail the update test inimi-swoole-pgsql-raw
[php] Imi update to PHP 8.3 TechEmpower/FrameworkBenchmarks#8589
- Error log: (Optional)
https://github.com/TechEmpower/FrameworkBenchmarks/actions/runs/7036725903/job/19149991259?pr=8589#step:9:3364
VERIFYING QUERY COUNT FOR http://tfb-server:8080/pgUpdateRaw?queries=20
--------------------------------------------------------------------------------
imi-swoole-pgsql-raw: [2023-11-29 18:19:31] imi.ERROR: PDOException: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
imi-swoole-pgsql-raw: DETAIL: Process 369 waits for ShareLock on transaction 1128; blocked by process 491.
imi-swoole-pgsql-raw: Process 491 waits for ShareLock on transaction 1132; blocked by process 403.
imi-swoole-pgsql-raw: Process 403 waits for ShareLock on transaction 999; blocked by process 259.
imi-swoole-pgsql-raw: Process 259 waits for ExclusiveLock on tuple (13,50) of relation 16416 of database 16384; blocked by process 418.
imi-swoole-pgsql-raw: Process 418 waits for ShareLock on transaction 1112; blocked by process 309.
imi-swoole-pgsql-raw: Process 309 waits for ShareLock on transaction 1134; blocked by process 347.
imi-swoole-pgsql-raw: Process 347 waits for ShareLock on transaction 1049; blocked by process 369.
imi-swoole-pgsql-raw: HINT: See server log for query details.
imi-swoole-pgsql-raw: CONTEXT: while updating tuple (23,199) in relation "world" in /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php:146
imi-swoole-pgsql-raw: Stack trace:
imi-swoole-pgsql-raw: #0 /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php(146): PDOStatement->execute()
imi-swoole-pgsql-raw: #1 /imi/ApiServer/Controller/PgController.php(194): Imi\Pgsql\Db\Drivers\PdoPgsql\Statement->execute(Array)
imi-swoole-pgsql-raw: #2 /imi/vendor/imiphp/imi/src/Util/DelayServerBeanCallable.php(86): ImiApp\ApiServer\Controller\PgController->pgUpdateRaw(20)
imi-swoole-pgsql-raw: #3 /imi/vendor/imiphp/imi/src/Server/Http/Middleware/ActionMiddleware.php(79): Imi\Util\DelayServerBeanCallable->__invoke('20')
imi-swoole-pgsql-raw: #4 /imi/vendor/imiphp/imi/src/Server/Http/Dispatcher.php(68): Imi\Server\Http\Middleware\ActionMiddleware->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest), Object(Imi\Swoole\Http\Message\SwooleResponse))
imi-swoole-pgsql-raw: #5 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Listener/BeforeRequest.php(49): Imi\Server\Http\Dispatcher->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest))
imi-swoole-pgsql-raw: #6 /imi/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Http\Listener\BeforeRequest->handle(Object(Imi\Swoole\Server\Event\Param\RequestEventParam))
imi-swoole-pgsql-raw: #7 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Server.php(125): Imi\Server\Contract\BaseServer->trigger('request', Array, Object(Server__Bean__29), 'Imi\\Swoole\\Serv...')
imi-swoole-pgsql-raw: #8 [internal function]: Imi\Swoole\Server\Http\Server->Imi\Swoole\Server\Http\{closure}(Object(Swoole\Http\Request), Object(Swoole\Http\Response))
imi-swoole-pgsql-raw: #9 {main}
imi-swoole-pgsql-raw: [2023-11-29 18:19:31] imi.ERROR: PDOException: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
imi-swoole-pgsql-raw: DETAIL: Process 423 waits for ShareLock on transaction 1089; blocked by process 125.
imi-swoole-pgsql-raw: Process 125 waits for ShareLock on transaction 1190; blocked by process 117.
imi-swoole-pgsql-raw: Process 117 waits for ShareLock on transaction 1106; blocked by process 297.
imi-swoole-pgsql-raw: Process 297 waits for ShareLock on transaction 1145; blocked by process 353.
imi-swoole-pgsql-raw: Process 353 waits for ShareLock on transaction 1129; blocked by process 423.
imi-swoole-pgsql-raw: HINT: See server log for query details.
imi-swoole-pgsql-raw: CONTEXT: while updating tuple (82,125) in relation "world" in /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php:146
imi-swoole-pgsql-raw: Stack trace:
imi-swoole-pgsql-raw: #0 /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php(146): PDOStatement->execute()
imi-swoole-pgsql-raw: #1 /imi/ApiServer/Controller/PgController.php(194): Imi\Pgsql\Db\Drivers\PdoPgsql\Statement->execute(Array)
imi-swoole-pgsql-raw: #2 /imi/vendor/imiphp/imi/src/Util/DelayServerBeanCallable.php(86): ImiApp\ApiServer\Controller\PgController->pgUpdateRaw(20)
imi-swoole-pgsql-raw: #3 /imi/vendor/imiphp/imi/src/Server/Http/Middleware/ActionMiddleware.php(79): Imi\Util\DelayServerBeanCallable->__invoke('20')
imi-swoole-pgsql-raw: #4 /imi/vendor/imiphp/imi/src/Server/Http/Dispatcher.php(68): Imi\Server\Http\Middleware\ActionMiddleware->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest), Object(Imi\Swoole\Http\Message\SwooleResponse))
imi-swoole-pgsql-raw: #5 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Listener/BeforeRequest.php(49): Imi\Server\Http\Dispatcher->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest))
imi-swoole-pgsql-raw: #6 /imi/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Http\Listener\BeforeRequest->handle(Object(Imi\Swoole\Server\Event\Param\RequestEventParam))
imi-swoole-pgsql-raw: #7 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Server.php(125): Imi\Server\Contract\BaseServer->trigger('request', Array, Object(Server__Bean__29), 'Imi\\Swoole\\Serv...')
imi-swoole-pgsql-raw: #8 [internal function]: Imi\Swoole\Server\Http\Server->Imi\Swoole\Server\Http\{closure}(Object(Swoole\Http\Request), Object(Swoole\Http\Response))
imi-swoole-pgsql-raw: #9 {main}
imi-swoole-pgsql-raw: [2023-11-29 18:19:32] imi.ERROR: PDOException: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
imi-swoole-pgsql-raw: DETAIL: Process 403 waits for ShareLock on transaction 999; blocked by process 259.
imi-swoole-pgsql-raw: Process 259 waits for ShareLock on transaction 1031; blocked by process 418.
imi-swoole-pgsql-raw: Process 418 waits for ShareLock on transaction 1179; blocked by process 122.
imi-swoole-pgsql-raw: Process 122 waits for ShareLock on transaction 1128; blocked by process 491.
imi-swoole-pgsql-raw: Process 491 waits for ShareLock on transaction 1132; blocked by process 403.
imi-swoole-pgsql-raw: HINT: See server log for query details.
imi-swoole-pgsql-raw: CONTEXT: while updating tuple (77,90) in relation "world" in /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php:146
imi-swoole-pgsql-raw: Stack trace:
imi-swoole-pgsql-raw: #0 /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php(146): PDOStatement->execute()
imi-swoole-pgsql-raw: #1 /imi/ApiServer/Controller/PgController.php(194): Imi\Pgsql\Db\Drivers\PdoPgsql\Statement->execute(Array)
imi-swoole-pgsql-raw: #2 /imi/vendor/imiphp/imi/src/Util/DelayServerBeanCallable.php(86): ImiApp\ApiServer\Controller\PgController->pgUpdateRaw(20)
imi-swoole-pgsql-raw: #3 /imi/vendor/imiphp/imi/src/Server/Http/Middleware/ActionMiddleware.php(79): Imi\Util\DelayServerBeanCallable->__invoke('20')
imi-swoole-pgsql-raw: #4 /imi/vendor/imiphp/imi/src/Server/Http/Dispatcher.php(68): Imi\Server\Http\Middleware\ActionMiddleware->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest), Object(Imi\Swoole\Http\Message\SwooleResponse))
imi-swoole-pgsql-raw: #5 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Listener/BeforeRequest.php(49): Imi\Server\Http\Dispatcher->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest))
imi-swoole-pgsql-raw: #6 /imi/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Http\Listener\BeforeRequest->handle(Object(Imi\Swoole\Server\Event\Param\RequestEventParam))
imi-swoole-pgsql-raw: #7 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Server.php(125): Imi\Server\Contract\BaseServer->trigger('request', Array, Object(Server__Bean__29), 'Imi\\Swoole\\Serv...')
imi-swoole-pgsql-raw: #8 [internal function]: Imi\Swoole\Server\Http\Server->Imi\Swoole\Server\Http\{closure}(Object(Swoole\Http\Request), Object(Swoole\Http\Response))
imi-swoole-pgsql-raw: #9 {main}
imi-swoole-pgsql-raw: [2023-11-29 18:19:32] imi.ERROR: PDOException: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
imi-swoole-pgsql-raw: DETAIL: Process 341 waits for ShareLock on transaction 1037; blocked by process 313.
imi-swoole-pgsql-raw: Process 313 waits for ExclusiveLock on tuple (7,70) of relation 16416 of database 16384; blocked by process 370.
imi-swoole-pgsql-raw: Process 370 waits for ShareLock on transaction 1028; blocked by process 440.
imi-swoole-pgsql-raw: Process 440 waits for ShareLock on transaction 1170; blocked by process 106.
imi-swoole-pgsql-raw: Process 106 waits for ShareLock on transaction 1149; blocked by process 110.
imi-swoole-pgsql-raw: Process 110 waits for ShareLock on transaction 1072; blocked by process 260.
imi-swoole-pgsql-raw: Process 260 waits for ShareLock on transaction 1036; blocked by process 371.
imi-swoole-pgsql-raw: Process 371 waits for ShareLock on transaction 1085; blocked by process 237.
imi-swoole-pgsql-raw: Process 237 waits for ShareLock on transaction 1108; blocked by process 341.
imi-swoole-pgsql-raw: HINT: See server log for query details.
imi-swoole-pgsql-raw: CONTEXT: while rechecking updated tuple (127,2) in relation "world" in /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php:146
imi-swoole-pgsql-raw: Stack trace:
imi-swoole-pgsql-raw: #0 /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php(146): PDOStatement->execute()
imi-swoole-pgsql-raw: #1 /imi/ApiServer/Controller/PgController.php(194): Imi\Pgsql\Db\Drivers\PdoPgsql\Statement->execute(Array)
imi-swoole-pgsql-raw: #2 /imi/vendor/imiphp/imi/src/Util/DelayServerBeanCallable.php(86): ImiApp\ApiServer\Controller\PgController->pgUpdateRaw(20)
imi-swoole-pgsql-raw: #3 /imi/vendor/imiphp/imi/src/Server/Http/Middleware/ActionMiddleware.php(79): Imi\Util\DelayServerBeanCallable->__invoke('20')
imi-swoole-pgsql-raw: #4 /imi/vendor/imiphp/imi/src/Server/Http/Dispatcher.php(68): Imi\Server\Http\Middleware\ActionMiddleware->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest), Object(Imi\Swoole\Http\Message\SwooleResponse))
imi-swoole-pgsql-raw: #5 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Listener/BeforeRequest.php(49): Imi\Server\Http\Dispatcher->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest))
imi-swoole-pgsql-raw: #6 /imi/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Http\Listener\BeforeRequest->handle(Object(Imi\Swoole\Server\Event\Param\RequestEventParam))
imi-swoole-pgsql-raw: #7 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Server.php(125): Imi\Server\Contract\BaseServer->trigger('request', Array, Object(Server__Bean__29), 'Imi\\Swoole\\Serv...')
imi-swoole-pgsql-raw: #8 [internal function]: Imi\Swoole\Server\Http\Server->Imi\Swoole\Server\Http\{closure}(Object(Swoole\Http\Request), Object(Swoole\Http\Response))
imi-swoole-pgsql-raw: #9 {main}
imi-swoole-pgsql-raw: [2023-11-29 18:19:33] imi.ERROR: PDOException: SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
imi-swoole-pgsql-raw: DETAIL: Process 313 waits for ExclusiveLock on tuple (7,70) of relation 16416 of database 16384; blocked by process 370.
imi-swoole-pgsql-raw: Process 370 waits for ShareLock on transaction 1028; blocked by process 440.
imi-swoole-pgsql-raw: Process 440 waits for ShareLock on transaction 1170; blocked by process 106.
imi-swoole-pgsql-raw: Process 106 waits for ShareLock on transaction 1149; blocked by process 110.
imi-swoole-pgsql-raw: Process 110 waits for ShareLock on transaction 1096; blocked by process 244.
imi-swoole-pgsql-raw: Process 244 waits for ShareLock on transaction 1189; blocked by process 236.
imi-swoole-pgsql-raw: Process 236 waits for ShareLock on transaction 1037; blocked by process 313.
imi-swoole-pgsql-raw: HINT: See server log for query details. in /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php:146
imi-swoole-pgsql-raw: Stack trace:
imi-swoole-pgsql-raw: #0 /imi/vendor/imiphp/imi/src/Db/Drivers/TPdoStatement.php(146): PDOStatement->execute()
imi-swoole-pgsql-raw: #1 /imi/ApiServer/Controller/PgController.php(194): Imi\Pgsql\Db\Drivers\PdoPgsql\Statement->execute(Array)
imi-swoole-pgsql-raw: #2 /imi/vendor/imiphp/imi/src/Util/DelayServerBeanCallable.php(86): ImiApp\ApiServer\Controller\PgController->pgUpdateRaw(20)
imi-swoole-pgsql-raw: #3 /imi/vendor/imiphp/imi/src/Server/Http/Middleware/ActionMiddleware.php(79): Imi\Util\DelayServerBeanCallable->__invoke('20')
imi-swoole-pgsql-raw: #4 /imi/vendor/imiphp/imi/src/Server/Http/Dispatcher.php(68): Imi\Server\Http\Middleware\ActionMiddleware->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest), Object(Imi\Swoole\Http\Message\SwooleResponse))
imi-swoole-pgsql-raw: #5 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Listener/BeforeRequest.php(49): Imi\Server\Http\Dispatcher->dispatch(Object(Imi\Swoole\Http\Message\SwooleRequest))
imi-swoole-pgsql-raw: #6 /imi/vendor/imiphp/imi/src/Event/TEvent.php(202): Imi\Swoole\Server\Http\Listener\BeforeRequest->handle(Object(Imi\Swoole\Server\Event\Param\RequestEventParam))
imi-swoole-pgsql-raw: #7 /imi/vendor/imiphp/imi-swoole/src/Server/Http/Server.php(125): Imi\Server\Contract\BaseServer->trigger('request', Array, Object(Server__Bean__29), 'Imi\\Swoole\\Serv...')
imi-swoole-pgsql-raw: #8 [internal function]: Imi\Swoole\Server\Http\Server->Imi\Swoole\Server\Http\{closure}(Object(Swoole\Http\Request), Object(Swoole\Http\Response))
imi-swoole-pgsql-raw: #9 {main}
- Please execute the following command to get environment information.
php -v & php --ri swoole & composer info | grep -a imi
# Use dockerfile
FROM php:8.3-cli
ENV SWOOLE_VERSION 5.1.1
ARG TFB_TEST_DATABASE
ENV TFB_TEST_DATABASE=${TFB_TEST_DATABASE}
RUN apt -yqq update && \
apt upgrade -y && \
apt -yqq install git unzip libpq-dev
RUN docker-php-ext-install -j$(nproc) pdo_pgsql opcache mysqli
RUN cd /tmp && curl -sSL "https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz" | tar xzf - \
&& cd swoole-src-${SWOOLE_VERSION} \
&& phpize && ./configure --enable-swoole-pgsql && make -j install \
&& docker-php-ext-enable swoole
COPY . /imi
COPY php.ini /usr/local/etc/php/
RUN chmod -R ug+rwx /imi/.runtime
WORKDIR /imi
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
RUN composer install --no-dev --classmap-authoritative --quiet
RUN composer require imiphp/imi-swoole:~2.1.0 -W
RUN composer dumpautoload -o
EXPOSE 8080
CMD ./run-swoole.sh
- Provide the smallest reproducible code: (Optional)
Run the techempower test locally
// Your code
Metadata
Metadata
Assignees
Labels
No labels