-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intermittent destroy behavior with google_sql_database #12968
Intermittent destroy behavior with google_sql_database #12968
Comments
Looking into fixing with a PR. It looks like this feature is implemented very simply in google_sql_user In the definition of the resource: "deletion_policy": {
Type: schema.TypeString,
Optional: true,
Description: `The deletion policy for the user. Setting ABANDON allows the resource
to be abandoned rather than deleted. This is useful for Postgres, where users cannot be deleted from the API if they
have been granted SQL roles. Possible values are: "ABANDON".`,
ValidateFunc: validation.StringInSlice([]string{"ABANDON", ""}, false),
}, And then in delete method: if deletionPolicy := d.Get("deletion_policy"); deletionPolicy == "ABANDON" {
// Allows for user to be abandoned without deletion to avoid deletion failing
// for Postgres users in some circumstances due to existing SQL roles
return nil
} But this provider is created using Magic Modules, so the way to fix it there is not clear to me yet. |
Got a fix working. Submitting. |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. |
Community Note
Description
Currently getting intermittent failures for destroying postgres databases created with google_sql_database, when used in a project with other resources. Sometimes it deletes, sometimes it doesn't with the error:
Error: Error when reading or editing Database: googleapi: Error 400: Invalid request: failed to delete database "todo". Detail: pq: database "todo" is being accessed by other users. (Please use psql client to delete database that is not owned by "cloudsqlsuperuser")., invalid
Database in this case is named 'todo'
I've done some exploration with using time_sleep, depenencies, and destroy_duration options to work around this. Sometimes they work, sometimes not.
Sometimes it deletes cleanly, some times it gives that error.
Rerunning destroy will remove.
Waiting some indeterminate amount of time between apply and destroy will also succeed.
I would prefer this just force deletion of this database, especially if the instance that the database exists on is also slated for destruction.
An alternative would be some sort of setting that would allow me to "abandon" this database like google_sql_user allows.
New or Affected Resource(s)
Potential Terraform Configuration
References
Currently a problem for this repo:
https://github.com/GoogleCloudPlatform/terraform-google-three-tier-app
Branch: sql-iam-auth
GoogleCloudPlatform/terraform-google-three-tier-web-app#13
Other reports:
The text was updated successfully, but these errors were encountered: