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.3k stars 9.49k forks source link

Terraform Crash #35630

Closed terrymandin closed 2 days ago

terrymandin commented 3 weeks ago

Terraform Version

1.9.4

Terraform Configuration Files

The files are located here: https://github.com/sihbher/avm-res-oracledatabase-cloudexadatainfrastructure

However, you will not be able to test them, as they require access to an Azure Marketplace offering

Debug Output

Sorry, I have removed the infrastructure. It takes 3+ hours to deploy. Here is the stack trace:

goroutine 12 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x5e
github.com/hashicorp/terraform/internal/logging.PanicHandler()
        github.com/hashicorp/terraform/internal/logging/panic.go:84 +0x18b
panic({0x2fede60?, 0x584a400?})
        runtime/panic.go:770 +0x132
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.unknownRenderer.RenderHuman({{}, {{0x0?, 0x0?}, 0x1809b40?, 0xc0?}}, {{0x3df3910?, 0xc002e79a70?}, 0x2e7a520?, 0x0?}, 0xc002d233c0?, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/unknown.go:35 +0xe3
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.mapRenderer.RenderHuman({{}, 0xc00284f470, 0x0, 0x0, 0x1}, {{0x3df39b0?, 0xc003f92f50?}, 0x1?, 0x0?}, 0x1, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/map.go:97 +0x792
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.blockRenderer.RenderHuman({{}, 0xc00284f3e0, {0xc00284f710, 0xc00284f740, 0xc00284f770, 0xc00284f7a0, 0xc00284f680, 0xc00284f6b0, 0xc00284f6e0}}, {{0x3df3a28, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/block.go:85 +0x723
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat.renderHumanDiff({_, _, _}, {{{0xc003e89f20, 0x60}, {0x0, 0x0}, {0xc003e89f80, 0x43}, {0x3531117, ...}, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/plan.go:358 +0x3a6
github.com/hashicorp/terraform/internal/command/jsonformat.Plan.renderHuman({{0x352b0e2, 0x3}, 0xc00292f3e0, {0xc0005b3008, 0x14, 0x22}, {0xc0007c6408, 0x5, 0x8}, {0xc0007b6c08, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/plan.go:215 +0xd7c
github.com/hashicorp/terraform/internal/command/jsonformat.Renderer.RenderHumanPlan({0xc00063f248?, 0xc000748280?, 0x0?}, {{0x352b0e2, 0x3}, 0xc00292f3e0, {0xc0005b3008, 0x14, 0x22}, {0xc0007c6408, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/renderer.go:118 +0x1ef
github.com/hashicorp/terraform/internal/command/views.(*OperationHuman).Plan(0xc000b2c220, 0xc002a80000, 0xc002d6ab40)
        github.com/hashicorp/terraform/internal/command/views/operation.go:130 +0x305
github.com/hashicorp/terraform/internal/backend/local.(*Local).opApply(0xc000ad1900, {0x3e18e30, 0xc000cca3c0}, {0x3e18e30, 0xc000cca410}, 0xc000210500, 0xc000ccfa80)
        github.com/hashicorp/terraform/internal/backend/local/backend_apply.go:112 +0xa43
github.com/hashicorp/terraform/internal/backend/local.(*Local).Operation.func1()
        github.com/hashicorp/terraform/internal/backend/local/backend.go:331 +0xbe
created by github.com/hashicorp/terraform/internal/backend/local.(*Local).Operation in goroutine 1
        github.com/hashicorp/terraform/internal/backend/local/backend.go:324 +0x3fa

Expected Behavior

I was idempotency testing. I expected to re-run and get:

0 added, 0 changed, 0 destroyed.

Actual Behavior

!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!

Terraform crashed! This is always indicative of a bug within Terraform.
Please report the crash with Terraform[1] so that we can fix this.

When reporting bugs, please include your terraform version, the stack trace
shown below, and any additional information which may help replicate the issue.

[1]: https://github.com/hashicorp/terraform/issues

!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!

Steps to Reproduce

  1. terraform init
  2. terraform apply
  3. terraform apply

Additional Context

This code is related to an Oracle marketplace offering. You will not be able to test the terraform in your subscriptions. Passing on the stacktrace in case you can fix it.

When I run again I will update this issue with better debug output. It takes 3+ hours to deploy

References

No response

jbardin commented 3 weeks ago

Hi @terrymandin,

Thanks for filing the issue. You seemed to have missed the actual error message in the output, which would be after the TERRAFORM CRASH banner, and immediately before the stack trace. Do you still have the original output?

Thanks!

terrymandin commented 2 weeks ago

Hi @jbardin. Here is everything after the crash message:

!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!

Terraform crashed! This is always indicative of a bug within Terraform.
Please report the crash with Terraform[1] so that we can fix this.

When reporting bugs, please include your terraform version, the stack trace
shown below, and any additional information which may help replicate the issue.

[1]: https://github.com/hashicorp/terraform/issues

!!!!!!!!!!!!!!!!!!!!!!!!!!! TERRAFORM CRASH !!!!!!!!!!!!!!!!!!!!!!!!!!!!

panic: runtime error: invalid memory address or nil pointer dereference

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
goroutine 12 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x5e
github.com/hashicorp/terraform/internal/logging.PanicHandler()
        github.com/hashicorp/terraform/internal/logging/panic.go:84 +0x18b
panic({0x2fede60?, 0x584a400?})
        runtime/panic.go:770 +0x132
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.unknownRenderer.RenderHuman({{}, {{0x0?, 0x0?}, 0x1809b40?, 0xc0?}}, {{0x3df3910?, 0xc002e79a70?}, 0x2e7a520?, 0x0?}, 0xc002d233c0?, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/unknown.go:35 +0xe3
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.mapRenderer.RenderHuman({{}, 0xc00284f470, 0x0, 0x0, 0x1}, {{0x3df39b0?, 0xc003f92f50?}, 0x1?, 0x0?}, 0x1, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/map.go:97 +0x792
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers.blockRenderer.RenderHuman({{}, 0xc00284f3e0, {0xc00284f710, 0xc00284f740, 0xc00284f770, 0xc00284f7a0, 0xc00284f680, 0xc00284f6b0, 0xc00284f6e0}}, {{0x3df3a28, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/renderers/block.go:85 +0x723
github.com/hashicorp/terraform/internal/command/jsonformat/computed.Diff.RenderHuman(...)
        github.com/hashicorp/terraform/internal/command/jsonformat/computed/diff.go:54
github.com/hashicorp/terraform/internal/command/jsonformat.renderHumanDiff({_, _, _}, {{{0xc003e89f20, 0x60}, {0x0, 0x0}, {0xc003e89f80, 0x43}, {0x3531117, ...}, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/plan.go:358 +0x3a6
github.com/hashicorp/terraform/internal/command/jsonformat.Plan.renderHuman({{0x352b0e2, 0x3}, 0xc00292f3e0, {0xc0005b3008, 0x14, 0x22}, {0xc0007c6408, 0x5, 0x8}, {0xc0007b6c08, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/plan.go:215 +0xd7c
github.com/hashicorp/terraform/internal/command/jsonformat.Renderer.RenderHumanPlan({0xc00063f248?, 0xc000748280?, 0x0?}, {{0x352b0e2, 0x3}, 0xc00292f3e0, {0xc0005b3008, 0x14, 0x22}, {0xc0007c6408, ...}, ...}, ...)
        github.com/hashicorp/terraform/internal/command/jsonformat/renderer.go:118 +0x1ef
github.com/hashicorp/terraform/internal/command/views.(*OperationHuman).Plan(0xc000b2c220, 0xc002a80000, 0xc002d6ab40)
        github.com/hashicorp/terraform/internal/command/views/operation.go:130 +0x305
github.com/hashicorp/terraform/internal/backend/local.(*Local).opApply(0xc000ad1900, {0x3e18e30, 0xc000cca3c0}, {0x3e18e30, 0xc000cca410}, 0xc000210500, 0xc000ccfa80)
        github.com/hashicorp/terraform/internal/backend/local/backend_apply.go:112 +0xa43
github.com/hashicorp/terraform/internal/backend/local.(*Local).Operation.func1()
        github.com/hashicorp/terraform/internal/backend/local/backend.go:331 +0xbe
created by github.com/hashicorp/terraform/internal/backend/local.(*Local).Operation in goroutine 1
        github.com/hashicorp/terraform/internal/backend/local/backend.go:324 +0x3fa
jbardin commented 2 weeks ago

Thanks @terrymandin, we'll take a look!