Description
Terraform Version
$ terraform version
Terraform v0.11.13
+ provider.dns v2.2.0
Affected Resource(s)
- dns_a_record_set (tested, probably others too)
Terraform Configuration Files
resource "dns_a_record_set" "foo" {
zone = "foo."
name = "foo"
addresses = [
"",
]
ttl = 300
}
Also:
resource "dns_a_record_set" "foo" {
zone = "foo."
name = "foo"
addresses = [
"foo",
]
ttl = 300
}
Debug Output
Please provider a link to a GitHub Gist containing the complete debug output: https://www.terraform.io/docs/internals/debugging.html. Please do NOT paste the debug output in the issue; just paste a link to the Gist.
Panic Output
panic: runtime error: invalid memory address or nil pointer dereference
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xe484d9]
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4:
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: goroutine 72 [running]:
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/vendor/github.com/miekg/dns.(*Msg).Insert(0xc00013d9a8, 0xc00013d888, 0x1, 0x1)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/vendor/github.com/miekg/dns/update.go:71 +0x89
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/dns.resourceDnsARecordSetUpdate(0xc0001199d0, 0xf0cba0, 0xc0001065a0, 0x0, 0x0)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/dns/resource_dns_a_record_set.go:114 +0x783
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/dns.resourceDnsARecordSetCreate(0xc0001199d0, 0xf0cba0, 0xc0001065a0, 0xc0001199d0, 0x0)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/dns/resource_dns_a_record_set.go:54 +0x5b
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/helper/schema.(*Resource).Apply(0xc0000f0000, 0xc000401040, 0xc00043fdc0, 0xf0cba0, 0xc0001065a0, 0xc000404201, 0xc0004dfad0, 0x1)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/helper/schema/resource.go:286 +0x3b4
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/helper/schema.(*Provider).Apply(0xc0000f0580, 0xc000400ff0, 0xc000401040, 0xc00043fdc0, 0xc00047e120, 0xc00049f800, 0x18)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/helper/schema/provider.go:285 +0x18f
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/plugin.(*ResourceProviderServer).Apply(0xc00043f480, 0xc00043f8a0, 0xc0002ebee0, 0x0, 0x0)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-dns/vendor/github.com/hashicorp/terraform/plugin/resource_provider.go:530 +0x57
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: reflect.Value.call(0xc000404d80, 0xc00000f970, 0x13, 0x1101f01, 0x4, 0xc0004dff18, 0x3, 0x3, 0xc000243ec0, 0xc00043c028, ...)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/goenv/versions/1.12.6/src/reflect/value.go:447 +0x461
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: reflect.Value.Call(0xc000404d80, 0xc00000f970, 0x13, 0xc00046b718, 0x3, 0x3, 0xc00043c000, 0xc00046b710, 0xc00046b7b8)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/goenv/versions/1.12.6/src/reflect/value.go:308 +0xa4
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: net/rpc.(*service).call(0xc000132800, 0xc000400fa0, 0xc0004bdd20, 0xc0004bdd30, 0xc0000f0600, 0xc00000da60, 0xf11120, 0xc00043f8a0, 0x16, 0xf11160, ...)
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/goenv/versions/1.12.6/src/net/rpc/server.go:384 +0x14e
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: created by net/rpc.(*Server).ServeCodec
2019-09-17T13:23:05.586Z [DEBUG] plugin.terraform-provider-dns_v2.2.0_x4: /opt/goenv/versions/1.12.6/src/net/rpc/server.go:481 +0x42b
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalWriteState
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalApplyProvisioners
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalIf
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalWriteState
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalWriteDiff
2019/09/17 13:23:05 [TRACE] root: eval: *terraform.EvalApplyPost
2019/09/17 13:23:05 [ERROR] root: eval: *terraform.EvalApplyPost, err: 1 error(s) occurred:
* dns_a_record_set.foo: unexpected EOF
2019/09/17 13:23:05 [ERROR] root: eval: *terraform.EvalSequence, err: 1 error(s) occurred:
* dns_a_record_set.foo: unexpected EOF
2019/09/17 13:23:05 [TRACE] [walkApply] Exiting eval tree: dns_a_record_set.foo
2019/09/17 13:23:05 [TRACE] dag/walk: upstream errored, not walking "provider.dns (close)"
2019/09/17 13:23:05 [TRACE] dag/walk: upstream errored, not walking "meta.count-boundary (count boundary fixup)"
2019/09/17 13:23:05 [TRACE] dag/walk: upstream errored, not walking "root"
2019/09/17 13:23:05 [TRACE] Preserving existing state lineage "c6ea7cd6-c201-dd09-5064-0ced8d84dd55"
2019-09-17T13:23:05.627Z [DEBUG] plugin: plugin process exited: path=/home/foo/.terraform/plugins/linux_amd64/terraform-provider-dns_v2.2.0_x4
2019/09/17 13:23:05 [TRACE] Preserving existing state lineage "c6ea7cd6-c201-dd09-5064-0ced8d84dd55"
2019/09/17 13:23:05 [TRACE] Preserving existing state lineage "c6ea7cd6-c201-dd09-5064-0ced8d84dd55"
2019/09/17 13:23:05 [TRACE] Preserving existing state lineage "c6ea7cd6-c201-dd09-5064-0ced8d84dd55"
2019/09/17 13:23:05 [DEBUG] plugin: waiting for all plugin processes to complete...
2019-09-17T13:23:05.773Z [WARN ] plugin: error closing client during Kill: err="connection is shut down"
!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 Terraform[1] 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.
[1]: https://github.com/hashicorp/terraform/issues
!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Expected Behavior
Provider should check for errors and handle misconfiguration gracefully
Actual Behavior
Provider crashes hard on bad configuration and does not check for errors given from upstream library.
Steps to Reproduce
terraform apply
Important Factoids
Provider does not check for errors from dns library here: https://github.com/terraform-providers/terraform-provider-dns/blob/master/dns/resource_dns_a_record_set.go#L108 and here: https://github.com/terraform-providers/terraform-provider-dns/blob/master/dns/resource_dns_a_record_set.go#L113.
At least that should be done.
Ideally, those thing should be validated before even attempting to create such record.