Hi Frédérick,
PostgreSQL BDR uses 'Master-Master' replication and requires locking if any of the PostgreSQL BDR nodes (that are in replication cluster) executes DDL SQL queries. It causes the whole cluster to lock as far as I remember.
The reason you may be experiencing the database getting locked when you restart one of the FreeSWITCH nodes is that FreeSWITCH upon its start/restart executes DDL queries.
FreeSWITCH AFAIK unconditionally executes 'DROP TABLE/VIEW...' and 'CREATE TABLE/VIEW ...' for tables like 'channels', 'calls', 'interfaces', 'tasks' (TABLES) & 'detailed_calls', 'basic_calls' (VIEWS) that ultimately leads to PostgreSQL BDR getting locked.
Hi guys,
I have an issue with FS unable to reconnect to postgresql database. Here
is the setup: 2 FreeSWITCH servers with 2 postgresql servers. Each
freeswitch is connected to 1 postgresql server. DB servers are synced
with BDR. It was working very well until I restarted freeswitch service
on one of the servers. Then, I got theses errors showing up on
freeswitch console:
switch_pgsql.c:384 Query X took too long to complete or database not
responding.
database is locked against ddl by another node
I followed some guides to remove locks with these commands:
SELECT * FROM pg_stat_activity;
SELECT pg_terminate_backend(${pid});
But the issue is still there. Do you have an idea how to fix this issue?
Thanks.