Acabo de instalar Postgres en Ubuntu 20 en WSL. Ambos de los siguientes están atascados para siempre:
CREATE DATABASE foo WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1;Y:
sudo -u postgres createdb fooEl registro no tiene nada:
postgres@postgres ERROR: canceling statement due to user request postgres@postgres STATEMENT: CREATE DATABASE foo WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1;¿Cuáles son algunas de las posibles causas de esto?
Reiniciar Postgres o reiniciar la computadora no ayuda y no hay bloqueos. También intenté matar manualmente cada bloqueo.
Mientras la declaración está suspendida, conéctese a la base de datos de postgres y busque en pg_stat_activity el wait_event de espera y el tipo de evento de wait_event_type de la conexión suspendida.
Es muy probable que esté esperando un candado. En ese caso, finalice la transacción que retiene el bloqueo.
echa un vistazo a
select * from pg_stat_activity sa inner join pg_locks l on sa.pid = l.pid En mi caso, uso wsl y obtengo el bloqueo por AccessShareLock
es más un problema con wsl que con postgresql
Tuve el mismo problema contigo. Parece que tiene que ver con la versión wsl. Estaba ejecutando wsl 1, así que tuve que desinstalar ubuntu 20.04 wsl, luego configuré la versión 2 con el siguiente comando
wsl --set-default-version 2y luego instale ubuntu 20.04 wsl nuevamente. Ahora todo parece estar en orden y puedo crear bases de datos sin problemas.