Thread:
Hello,
Hope everything is well with you.
We are running on PostgreSQL v 12.1 , Redhat 7.8.
We are running a query - ALTER TABLE mytable ADD COLUMN deposited DOUBLE PRECISION;
This query is blocked by pid 0. It's not a postgres PID and won't allow to terminate from postgres.
What would be the way forward to troubleshoot this?
Thanks and Regards,
Devendra Yadav
On Tue, 2021-03-30 at 12:36 +0530, Devendra Yadav wrote: > Hope everything is well with you. Thanks, yes. I hope you are fine too. > We are running on PostgreSQL v 12.1 , Redhat 7.8. > We are running a query - ALTER TABLE mytable ADD COLUMN deposited DOUBLE PRECISION; > > This query is blocked by pid 0. It's not a postgres PID and won't allow to terminate from postgres. > What would be the way forward to troubleshoot this? That is probably a stale prepared transaction. Look into "pg_prepared_xacts" for any prepared transactions and use ROLLBACK PREPARED 'name'; to remove stale entries. When using prepared transactions, you must use a transaction manager that does these things for you. Also, you should monitor prepared transactions. Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com
Thanks a ton Laurenz.
It worked
Regards,
Devendra Yadav
On Tue, 30 Mar 2021, 16:39 Laurenz Albe, <laurenz.albe@cybertec.at> wrote:
On Tue, 2021-03-30 at 12:36 +0530, Devendra Yadav wrote:
> Hope everything is well with you.
Thanks, yes. I hope you are fine too.
> We are running on PostgreSQL v 12.1 , Redhat 7.8.
> We are running a query - ALTER TABLE mytable ADD COLUMN deposited DOUBLE PRECISION;
>
> This query is blocked by pid 0. It's not a postgres PID and won't allow to terminate from postgres.
> What would be the way forward to troubleshoot this?
That is probably a stale prepared transaction.
Look into "pg_prepared_xacts" for any prepared transactions and use
ROLLBACK PREPARED 'name';
to remove stale entries.
When using prepared transactions, you must use a transaction manager
that does these things for you. Also, you should monitor prepared
transactions.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com
Devendra Yadav <devendra.857@gmail.com> writes: > We are running on PostgreSQL v 12.1 , Redhat 7.8. > We are running a query - ALTER TABLE mytable ADD COLUMN deposited DOUBLE > PRECISION; > This query is blocked by pid 0. It's not a postgres PID and won't allow to > terminate from postgres. It would be better if you showed the evidence that makes you think this, as it's fairly likely that the true problem is somewhere else than you think. At a guess, however, a pg_locks display that suggests a lock is held by "pid 0" might be trying to represent a lock held by a prepared-but- uncommitted transaction. Try looking into the pg_prepared_xacts view. regards, tom lane