BUG #15459: no connection to the server

Started by PG Bug reporting formover 7 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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!

#2Jeff Janes
jeff.janes@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #15459: no connection to the server

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