The problem was with pgbouncer: https://pgbouncer.github.io/changelog.html
WARNING: Since version 1.7, server_reset_query is not executed when
database is in transaction-pooling mode. Seems this was not highlighted
enough in 1.7 announcement. If your apps depend on that happening, use
server_reset_query_always to restore previous behaviour.
We use pool_mode = transaction
Adding server_reset_query_always = 1 solves the problem. But I have not
understand a reason yet.
2016-09-05 18:05 GMT+03:00 Tom Lane <tgl@sss.pgh.pa.us>:
> iurii.i.popov@gmail.com writes:
> > We have a repeating problem with triggers and handles in foreign keys
> since
> > we have updated PostgreSQL.
>
> > There are two projects with PostgreSQL 9.2.17 and 9.4.9 respectively. We
> do
> > not have the problem with 9.2.16 and 9.4.4 versions.
>
> > By accident a BEFORE INSERT FOR EACH ROW triggers do not fire and
> handles in
> > foreign keys (ON DELETE SET NULL and ON DELETE CASCADE) do not fire.
>
> > If we do actions by hands (INSERT or DELETE) everything works but with
> > people online we have this problem by accident.
>
> This is not enough information for anyone to reproduce your problem, or
> even really to understand what you're talking about.
>
> For hints on how to submit a useful bug report, please see
>
> https://www.postgresql.org/docs/9.4/static/bug-reporting.html
>
> https://wiki.postgresql.org/wiki/Guide_to_reporting_problems
>
> regards, tom lane
>
--
Iurii Popov