Closed deknijf closed 4 years ago
Have the same issue
It looks like we need to replace this https://github.com/terraform-providers/terraform-provider-aws/blob/6be8b93fae00be41ea5342b20025e4c784f509e7/aws/resource_aws_glue_catalog_table.go#L528-L533 with
func expandGlueSkewedInfo(l []interface{}) *glue.SkewedInfo {
if len(l) == 0 || l[0] == nil {
return nil
}
s := l[0].(map[string]interface{})
and probably similar in expandGlueStorageDescriptor()
and expandGlueSerDeInfo()
.
The fixes to prevent the empty configuration block panics in this resource have been merged and will release with version 2.60.0 of the Terraform AWS Provider, later this week. 👍
This has been released in version 2.60.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.
For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!
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.
If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!
Terraform Version
Affected Resource(s)
Terraform Configuration Files
Debug Output
Panic Output
full crash log: crash.log
Expected Behavior
updated minor change to a glue table -> used import function here
Actual Behavior
terraform apply -var-file eacceptance.tfvars -target=module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this: Refreshing state... [id=629543912466:box_event_audit_XXXXX:message_provider_requests_messages]
An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: ~ update in-place
Terraform will perform the following actions:
module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this will be updated in-place
~ resource "aws_glue_catalog_table" "this" { catalog_id = "629543912466" database_name = "box_event_audit_XXXXX" description = "Messages" id = "629543912466:box_event_audit_XXXXX:message_provider_requests_messages" name = "message_provider_requests_messages" parameters = {} retention = 0 table_type = "EXTERNAL_TABLE"
Plan: 0 to add, 1 to change, 0 to destroy.
Warning: Resource targeting is in effect
You are creating a plan with the -target option, which means that the result of this plan may not represent all of the changes requested by the current configuration.
The -target option is not for routine use, and is provided only for exceptional situations such as recovering from errors or mistakes, or when Terraform specifically suggests to use it as part of an error message.
Do you want to perform these actions in workspace "eacceptance"? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.
Enter a value: yes
module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this: Modifying... [id=629543912466:box_event_audit_XXXXX:message_provider_requests_messages]
Warning: Applied changes may be incomplete
The plan was created with the -target option in effect, so some changes requested in the configuration may have been ignored and the output values may not be fully updated. Run the following command to verify that no other changes are pending: terraform plan
Note that the -target option is not suitable for routine use, and is provided only for exceptional situations such as recovering from errors or mistakes, or when Terraform specifically suggests to use it as part of an error message.
Error: rpc error: code = Unavailable desc = transport is closing
panic: interface conversion: interface {} is nil, not map[string]interface {} 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: goroutine 41 [running]: 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/terraform-providers/terraform-provider-aws/aws.expandGlueSkewedInfo(0xc000c542e0, 0x1, 0x1, 0xb) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_glue_catalog_table.go:533 +0x6dc 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/terraform-providers/terraform-provider-aws/aws.expandGlueStorageDescriptor(0xc000c54150, 0x1, 0x1, 0x5268180) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_glue_catalog_table.go:440 +0x5ee 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/terraform-providers/terraform-provider-aws/aws.expandGlueTableInput(0xc0000d7110, 0xc00074c610) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_glue_catalog_table.go:359 +0x1f5 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/terraform-providers/terraform-provider-aws/aws.resourceAwsGlueCatalogTableUpdate(0xc0000d7110, 0x520ae40, 0xc0002c6000, 0x24, 0xa238e60) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_glue_catalog_table.go:311 +0x169 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/hashicorp/terraform-plugin-sdk/helper/schema.(Resource).Apply(0xc000612d80, 0xc000bf4910, 0xc000f55080, 0x520ae40, 0xc0002c6000, 0xc000702301, 0xc000bce660, 0xc0007023d8) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.5.0/helper/schema/resource.go:311 +0x263 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/hashicorp/terraform-plugin-sdk/helper/schema.(Provider).Apply(0xc0007cf400, 0xc000811918, 0xc000bf4910, 0xc000f55080, 0xc000b71048, 0xc00000f448, 0x57fbac0) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.5.0/helper/schema/provider.go:294 +0x99 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(GRPCProviderServer).ApplyResourceChange(0xc00000ee50, 0x6e3df80, 0xc000b20480, 0xc00080ca20, 0xc00000ee50, 0xc000b20480, 0xc000d03a80) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.5.0/internal/helper/plugin/grpc_provider.go:885 +0x882 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0x634aea0, 0xc00000ee50, 0x6e3df80, 0xc000b20480, 0xc00080c9c0, 0x0, 0x6e3df80, 0xc000b20480, 0xc000b25000, 0xe4d) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.5.0/internal/tfplugin5/tfplugin5.pb.go:3189 +0x217 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: google.golang.org/grpc.(Server).processUnaryRPC(0xc0000f2000, 0x6e5fec0, 0xc00054b500, 0xc000a94300, 0xc00057ec60, 0xa20b1c0, 0x0, 0x0, 0x0) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:995 +0x460 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: google.golang.org/grpc.(Server).handleStream(0xc0000f2000, 0x6e5fec0, 0xc00054b500, 0xc000a94300, 0x0) 2020-01-28T16:38:46.379+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:1275 +0xd97 2020-01-28T16:38:46.380+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: google.golang.org/grpc.(Server).serveStreams.func1.1(0xc000040810, 0xc0000f2000, 0x6e5fec0, 0xc00054b500, 0xc000a94300) 2020-01-28T16:38:46.380+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:710 +0xbb 2020-01-28T16:38:46.380+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: created by google.golang.org/grpc.(Server).serveStreams.func1 2020-01-28T16:38:46.380+0100 [DEBUG] plugin.terraform-provider-aws_v2.46.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:708 +0xa1 2020/01/28 16:38:46 [DEBUG] module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this: apply errored, but we're indicating that via the Error pointer rather than returning it: rpc error: code = Unavailable desc = transport is closing 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalMaybeTainted 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalWriteState 2020/01/28 16:38:46 [TRACE] EvalWriteState: recording 0 dependencies for module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this 2020/01/28 16:38:46 [TRACE] EvalWriteState: writing current state object for module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this 2020-01-28T16:38:46.382+0100 [DEBUG] plugin: plugin process exited: path=/Users/deknijf/vcs/gitlab/tf-XXXXX/stacks/glue/.terraform/plugins/darwin_amd64/terraform-provider-aws_v2.46.0_x4 pid=61548 error="exit status 2" 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalApplyProvisioners 2020/01/28 16:38:46 [TRACE] EvalApplyProvisioners: aws_glue_catalog_table.this is not freshly-created, so no provisioning is required 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalMaybeTainted 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalWriteState 2020/01/28 16:38:46 [TRACE] EvalWriteState: recording 0 dependencies for module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this 2020/01/28 16:38:46 [TRACE] EvalWriteState: writing current state object for module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalIf 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalIf 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalWriteDiff 2020/01/28 16:38:46 [TRACE] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalApplyPost 2020/01/28 16:38:46 [ERROR] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalApplyPost, err: rpc error: code = Unavailable desc = transport is closing 2020/01/28 16:38:46 [ERROR] module.glue_catalog_table_Table1GlueTable: eval: terraform.EvalSequence, err: rpc error: code = Unavailable desc = transport is closing 2020/01/28 16:38:46 [TRACE] [walkApply] Exiting eval tree: module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this 2020/01/28 16:38:46 [TRACE] vertex "module.glue_catalog_table_Table1GlueTable.aws_glue_catalog_table.this": visit complete 2020/01/28 16:38:46 [TRACE] dag/walk: upstream of "provider.aws (close)" errored, so skipping 2020/01/28 16:38:46 [TRACE] dag/walk: upstream of "meta.count-boundary (EachMode fixup)" errored, so skipping 2020/01/28 16:38:46 [TRACE] dag/walk: upstream of "root" errored, so skipping 2020/01/28 16:38:46 [DEBUG] Uploading remote state to S3: { Body: buffer(0xc000d10ed0), Bucket: "tf-XXXXX-eu-central-1", ContentLength: 79912, ContentType: "application/json", Key: "env:/eacceptance/stacks/glue" } 2020-01-28T16:38:46.593+0100 [DEBUG] plugin: plugin exited
!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Terraform crashed! This is always indicative of a bug within Terraform. A crash log has been placed at "crash.log" relative to your current working directory. It would be immensely helpful if you could please report the crash with Terraform1 so that we can fix this.
When reporting bugs, please include your terraform version. That information is available on the first line of crash.log. You can also get it by running 'terraform --version' on the command line.
SECURITY WARNING: the "crash.log" file that was created may contain sensitive information that must be redacted before it is safe to share on the issue tracker.
!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Steps to Reproduce
terraform apply
Important Factoids
References
0000