Open
Description
Hello,
I triggered a deadlock when I try to run terraform destroy. I try to isolate as much as possible by reducing my TF file. With the provided file, it's a 50% chance of deadlock when trying to destroy.
Terraform Version
$> terraform -v Terraform v1.0.1
on darwin_amd64
+ provider registry.terraform.io/cyrilgdn/postgresql v1.13.0
Affected Resource(s)
- postgresql_database
Terraform Configuration Files
terraform {
required_providers {
postgresql = {
source = "cyrilgdn/postgresql"
version = "1.13.0"
}
}
}
provider "postgresql" {
host = "localhost"
port = 5432
username = "terraform"
password = "terraform"
sslmode = "disable"
superuser = false
max_connections = 1
}
resource "postgresql_database" "test" {
name = "test"
}
resource "postgresql_role" "test" {
name = "test"
login = true
password = "test"
search_path = ["test"]
}
resource "postgresql_schema" "test" {
name = postgresql_database.test.name
database = postgresql_database.test.name
drop_cascade = true
}
Expected Behavior
Should destroy all ressources
Actual Behavior
postgresql_database.test: Still destroying... [id=test, 30m0s elapsed]
Steps to Reproduce
$> terrafrom apply -auto-approve
$> terraform destroy
Sometime it take 2 or 3 times to trigger the dead lock
Other informations
SELECT version();
version
------------------------------------------------------------------------------------------
PostgreSQL 13.2 on x86_64-pc-linux-gnu, compiled by Debian clang version 10.0.1 , 64-bit
SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid;
locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath | datid | datname | pid | leader_pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | state_change | wait_event_type | wait_event | state | backend_xid | backend_xmin | query | backend_type
------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+-----------------+---------+----------+-------+----------+------+------------+----------+-----------+--------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+-----------------+------------+---------------------+-------------+--------------+-----------------------------------------------------------------------------------------------------------------------------+----------------
relation | 16547 | 12250 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | t | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 16547 | 12141 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | t | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
virtualxid | | | | | 5/9186 | | | | | 5/9186 | 8375 | ExclusiveLock | t | t | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 14040 | 12087 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | t | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
virtualxid | | | | | 6/9483 | | | | | 6/9483 | 8345 | ExclusiveLock | t | t | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2965 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 1261 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2676 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 0 | 1260 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2672 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
advisory | 14040 | | | | | | 0 | 16441 | 1 | 6/9483 | 8345 | ExclusiveLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2695 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2677 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 0 | 2676 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 1262 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 0 | 2694 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 1260 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 0 | 2671 | | | | | | | | 5/9186 | 8375 | AccessShareLock | t | f | 16547 | test | 8375 | | 16441 | terraform | psql | | | -1 | 2021-06-30 17:41:57.416802+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479555+00 | 2021-06-30 17:41:57.479557+00 | | | active | | 9866 | SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid; | client backend
relation | 0 | 2964 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
relation | 0 | 2677 | | | | | | | | 6/9483 | 8345 | AccessShareLock | t | f | 14040 | postgres | 8345 | | 16441 | terraform | Terraform provider | | | -1 | 2021-06-30 17:40:35.42992+00 | 2021-06-30 17:40:35.47188+00 | 2021-06-30 17:40:35.552341+00 | 2021-06-30 17:40:35.552367+00 | Client | ClientRead | idle in transaction | | 9850 | SELECT pg_advisory_xact_lock(member::bigint) FROM pg_auth_members JOIN pg_roles ON roleid = pg_roles.oid WHERE rolname = $1 | client backend
(20 rows)
Thank you for your work !
Metadata
Metadata
Assignees
Labels
No labels