hashicorp / terraform

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
https://www.terraform.io/
Other
42.65k stars 9.55k forks source link

Terraform 0.10.0 crashes when building a new server #15750

Closed ericlake closed 7 years ago

ericlake commented 7 years ago

When trying to create a new server using the vcd provider terraform produces a crash.log file as well as a message stating an EOF error occurred.

Error applying plan:

1 error(s) occurred:

* vcd_vapp.test: 1 error(s) occurred:

* vcd_vapp.test: unexpected EOF

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

Terraform Version

terraform-0.10.0 version
Terraform v0.10.0

Affected Resource(s)

Please list the resources as a list, for example:

I am not sure if this affects more than just this one provider. However this is a new error since 0.9.11 worked. If I rollback to using 0.9.11 and recreate the statefile then this works with everything but the ovf section.

Terraform Configuration Files

global.tf

variable "vcd_user" {}
variable "vcd_pass" {}

provider "vcd" {                                                                                                                                                                
  version              = "0.1.2"
  user                 = "${var.vcd_user}"
  password             = "${var.vcd_pass}"
  org                  = "TEST"
  url                  = "https://director.example.net/api"
  vdc                  = "TEST-VDC"
  maxRetryTimeout      = "1200"
  allow_unverified_ssl = true
}

test.tf

resource "vcd_vapp" "test" {
    count         = "1"
    name          = "test-server"
    catalog_name  = "Zodiac Images"
    template_name = "zodiac-pci-centos-7"
    ip            = "allocated"
    network_name  = "ExNet-RSI-ARTIFACTORY-STAGE"

    metadata {
        role    = "test"
        env     = "test"                                                                                                                                                        
        version = "v1"
    }

    ovf {
        hostname = "test-server"
    }

}

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.

https://gist.github.com/ericlake/98b31c0e063ee9915798cf1c2ae09662

Panic Output

If Terraform produced a panic, please provide a link to a GitHub Gist containing the output of the crash.log.

https://gist.github.com/ericlake/d6b63d1daada2d1f2c5246c22083ccb0

Expected Behavior

What should have happened?

The expected behavior is that a new serer would have been created in vmware with the name of test-server.

Actual Behavior

What actually happened?

Instead of getting a new server a terraform had a crash and exited.

Steps to Reproduce

Please list the steps required to reproduce the issue, for example:

  1. Create a global.tf and a test.tf with the needed variables for a new vapp.
  2. With terraform 0.10.0 perform a terraform init
  3. Run terraform plan. In my case this exited cleanly.
  4. Run terraform apply and the crash happens.

Important Factoids

Are there anything atypical about your accounts that we should know? For example: Running in EC2 Classic? Custom version of OpenStack? Tight ACLs?

None that I can think of.

References

None that I can think of.

apparentlymart commented 7 years ago

Hi @ericlake! Sorry for this crash.

Based on the stack trace (included below for easier reference) this crash seems to have come from the vcd provider itself, so I'm going to move this issue over to that provider's repository so it's visible to people working on that provider.

2017/08/07 12:56:36 [DEBUG] apply: vcd_vapp.test: executing Apply
2017/08/07 12:56:36 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: 2017/08/07 12:56:36 [DEBUG] No meta timeoutkey found in Apply()
2017/08/07 12:56:36 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: 2017/08/07 12:56:36 [DEBUG] VAppTemplate: govcloudair.VAppTemplate{VAppTemplate:(*types.VAppTemplate)(0xc4202d8240), c:(*govcloudair.Client)(0xc420247128)}
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: 2017/08/07 12:56:37 storage_profile {https://director.iad.rsi.rackspace.net/api/vdcStorageProfile/3112e270-0500-4fad-82cf-735d7988e853   665321-san-new}
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: 2017/08/07 12:56:37 [DEBUG] Waiting for state to become: [success]
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: panic: runtime error: invalid memory address or nil pointer dereference
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: [signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x94f7ab]
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: 
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: goroutine 70 [running]:
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/ukcloud/govcloudair.(*VApp).ComposeVApp(0xc4202d46e0, 0xc420144000, 0xc420247128, 0xc4202d8240, 0xc420247128, 0xc4202432d0, 0x61, 0x0, 0x0, 0x0, ...)
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4:   /opt/teamcity-agent/work/222ea50a1b4f75f4/src/github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/ukcloud/govcloudair/vapp.go:223 +0x66b
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: github.com/terraform-providers/terraform-provider-vcd/vcd.resourceVcdVAppCreate.func1(0x2)
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4:   /opt/teamcity-agent/work/222ea50a1b4f75f4/src/github.com/terraform-providers/terraform-provider-vcd/vcd/resource_vcd_vapp.go:149 +0x1a8
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource.Retry.func1(0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4:   /opt/teamcity-agent/work/222ea50a1b4f75f4/src/github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource/wait.go:22 +0x78
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState.func1(0xc420240f00, 0xc4201cb5e0, 0xc42010d380, 0xc420240fc0, 0xc4204a0a30, 0xc4204a09f8)
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4:   /opt/teamcity-agent/work/222ea50a1b4f75f4/src/github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource/state.go:103 +0x1c8
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4: created by github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState
2017/08/07 12:56:37 [DEBUG] plugin: terraform-provider-vcd_v0.1.2_x4:   /opt/teamcity-agent/work/222ea50a1b4f75f4/src/github.com/terraform-providers/terraform-provider-vcd/vendor/github.com/hashicorp/terraform/helper/resource/state.go:195 +0x249
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalWriteState
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalApplyProvisioners
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalIf
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalWriteState
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalWriteDiff
2017/08/07 12:56:37 [DEBUG] root: eval: *terraform.EvalApplyPost
2017/08/07 12:56:37 [DEBUG] plugin: /home/elake/test/.terraform/plugins/linux_amd64/terraform-provider-vcd_v0.1.2_x4: plugin process exited
2017/08/07 12:56:37 [ERROR] root: eval: *terraform.EvalApplyPost, err: 1 error(s) occurred:

* vcd_vapp.test: unexpected EOF
2017/08/07 12:56:37 [ERROR] root: eval: *terraform.EvalSequence, err: 1 error(s) occurred:

* vcd_vapp.test: unexpected EOF
2017/08/07 12:56:37 [TRACE] [walkApply] Exiting eval tree: vcd_vapp.test

(@hashibot should actually do the move to the other repository, shortly.)

ericlake commented 7 years ago

Sounds good. I had actually meant to create it there and added it here by mistake.

hashibot commented 7 years ago

This issue has been automatically migrated to terraform-providers/terraform-provider-vcd#38 because it looks like an issue with that provider. If you believe this is not an issue with the provider, please reply to this issue and let us know.

ghost commented 4 years ago

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 have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.