BDR: DDL lock problem with function inside a schema

Поиск
Список
Период
Сортировка
От sym39
Тема BDR: DDL lock problem with function inside a schema
Дата
Msg-id 5575FE8E.6020303@gmail.com
обсуждение исходный текст
Ответы Re: BDR: DDL lock problem with function inside a schema  (Craig Ringer <craig@2ndquadrant.com>)
Список pgsql-general
Hello All,

I am doing some tests with BDR  to study the ability of replacing
bucardo with BDR.

I experience some DDL locks problem when a function is in a schema, and
I try to remove the whole schema.

Node 1:
-----------
mydb=# CREATE SCHEMA IF NOT EXISTS test;
mydb=# CREATE OR REPLACE FUNCTION test.nothing() RETURNS void AS $$
BEGIN END; $$ LANGUAGE plpgsql;
CREATE FUNCTION

mydb=# drop schema test cascade ;
NOTICE:  drop cascades to function test.nothing()
DROP SCHEMA

mydb=# \dn
   List of schemas
   Name  |  Owner
--------+----------
  bdr    | postgres
  public | postgres
(2 rows)


Then if I switch to node 2
---------------------------------
   List of schemas
   Name  |  Owner
--------+----------
  bdr    | postgres
  public | postgres
  test   | dbadmin
(3 rows)

mydb=# drop schema test cascade ;
ERROR:  database is locked against ddl by another node
HINT:  Node (6158090345987221693,1,17189) in the cluster is already
performing DDL

After that, I am not able to recover the situation: I tried to restart
postgres on both nodes, but nothing work for me. After that, it is not
possible anymore to do DDL operations:
- this "blocks" on node 1 (I do CTRL C to cancel the query in psql)
-on node 2, the message above "ERROR:  database is locked against ddl by
another node" is displayed.
Additionally, I am not able to detach / reattach the node.

One workaround could be to remove first the function on _both_ nodes,
then to remove the schema, but what makes me not confident is that I
don't know how to recover the situation when such DDL locks operation
appear.

Questions:
---------------
-Is it a known bug? If yes should I report it (and where)?
-How to recover such DDL lock problems operation without recreating the
database? In other words, what is the proper way to cleanly restart both
nodes?
-Is it a well known method to properly detach and attach nodes?

Thanks and Regards,
Sylvain


В списке pgsql-general по дате отправления:

Предыдущее
От: Ravi Tammineni
Дата:
Сообщение: Postgresql BDR Replication Setup Issue
Следующее
От: Anderson Valadares
Дата:
Сообщение: Re: Momentary Delay