Re: [GENERAL] Perl script is killed by SIGPIPE - Mailing list pgsql-general

From Yogesh Sharma
Subject Re: [GENERAL] Perl script is killed by SIGPIPE
Date
Msg-id CAEZUwCRUPUYkOtHSVLw4OfeLUegOCNv9NXAYKRzPvVgP5Zy5Fg@mail.gmail.com
Whole thread Raw
In response to Re: [GENERAL] Perl script is killed by SIGPIPE  ("Daniel Verite" <daniel@manitou-mail.org>)
Responses Re: [GENERAL] Perl script is killed by SIGPIPE  (tirveni yadav <yadav.tirveni@gmail.com>)
List pgsql-general
Dear Daniel,
Yes , we are using DBI for connection.

Basically we observed that after dbh->do() return nothing if we are trying to insert duplicate entry.
But it is not occurred always.
It return exit 1 if try to insert duplicate entry into Db.
But sometime it return nothing and child script is killed.

On Tuesday, September 12, 2017, Daniel Verite <daniel@manitou-mail.org> wrote:
        Yogesh Sharma wrote:

> We have found child script is killed by signal 13 SIGPIPE. When duplicate
> key violates error occured, script is killed but not all time.

"child script" and this kind of error suggests that a forked process
inherits a database connection opened by a parent process.

When the database handle goes out of scope, it might
close the connection to the database, affecting the
parent process too, since it's the same connection.

If you're using DBI, it has a setting to avoid that issue:
https://metacpan.org/pod/DBI#InactiveDestroy

Aside from that, inherited connections can't be used
simultaneously by parent and child process.
In general, a child process should open and close
its own connection.

Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite

pgsql-general by date:

Previous
From: Hung Phan
Date:
Subject: Re: [GENERAL] pg_rewind copy so much data
Next
From: "Frank Millman"
Date:
Subject: Re: [GENERAL] Joining 16 tables seems slow