Thread: BUG #15459: no connection to the server
The following bug has been logged on the website: Bug reference: 15459 Logged by: medivhJay Email address: jay.medivh@gmail.com PostgreSQL version: 9.6.8 Operating system: debian Description: Hello I used php7.1 + PDO connect to postgresql when I use fork , like this <?php $pid = pcntl_fork(); if ( $pid === 1 ) { TaskManager::log('error'); } elseif ( $pid ) { pcntl_wait($status); } else { try { call_user_func_array($func, $argv); } catch ( \Exception $e ) { TaskManager::log($e); } exit(0); } PDO throw an exception like this [2018-10-26 13:12:02] PDOException: SQLSTATE[HY000]: General error: 7 no connection to the server in if I don't use pcntl_fork , nothing I don't know how to fix it , I need your help Thank you!
On Fri, Oct 26, 2018 at 1:34 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 15459
Logged by: medivhJay
Email address: jay.medivh@gmail.com
PostgreSQL version: 9.6.8
Operating system: debian
Description:
Hello
I used php7.1 + PDO connect to postgresql
when I use fork , like this
<?php
$pid = pcntl_fork();
if ( $pid === 1 ) {
TaskManager::log('error');
} elseif ( $pid ) {
pcntl_wait($status);
} else {
try {
call_user_func_array($func, $argv);
} catch ( \Exception $e ) {
TaskManager::log($e);
}
exit(0);
}
PDO throw an exception
You shouldn't have a database handle open over a fork call. Open it after the fork. I have no idea how to do that, since it seems to be happening implicitly, or at least in part of your code not shown. You might want to ask in a forum specific to php PDO. Also, shouldn't you be testing $pid against -1, not +1?
Cheers,
Jeff