terraform-provider-cloudflare: terraform panic crashes since 2.18 upgrade
Terraform version
v0.13.2
Affected resource(s)
- page rules
Terraform configuration files
resource "cloudflare_page_rule" "static-pages" {
zone_id = module.cloudflare_zone.zone_id
priority = 5
status = "active"
target = "*${local.zone_name}/static-pages/*"
actions {
cache_level = "cache_everything"
edge_cache_ttl = "300"
cache_key_fields {
cookie {
include = ["locale"]
}
header {
check_presence = ["x-hide-fields", "x-ignore-tags", "x-locale"]
}
host {}
user {}
query_string {}
}
}
}
Debug output
Panic output
2021/02/05 16:35:32 [TRACE] dag/walk: vertex "root" is waiting for "module.website_somewebsite (close)"
2021-02-05T16:35:32.709+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: 2021/02/05 16:35:32 [DEBUG] Cloudflare Page Rule read configuration: cloudflare.PageRule{ID:"some-rule-id", Targets:[]cloudflare.PageRuleTarget{cloudflare.PageRuleTarget{Target:"url", Constraint:struc
t { Operator string "json:\"operator\""; Value string "json:\"value\"" }{Operator:"matches", Value:"*somewebsite/static-pages/*"}}}, Actions:[]cloudflare.PageRuleAction{cloudflare.PageRuleAction{ID:"cache_level", Value:"cache_everything"}, cloudflare.PageRuleAction{ID:"edge_cache_ttl", Value:300}, cl
oudflare.PageRuleAction{ID:"cache_key_fields", Value:map[string]interface {}{"cookie":map[string]interface {}{"check_presence":[]interface {}{}, "include":[]interface {}{"locale"}}, "header":map[string]interface {}{"check_presence":[]interface {}{"x-hide-fields", "x-ignore-tags", "x-locale"}, "exclude"
:[]interface {}{}, "include":[]interface {}{}}, "host":map[string]interface {}{"resolved":false}, "query_string":map[string]interface {}{"exclude":[]interface {}{}, "include":"*"}, "user":map[string]interface {}{"device_type":false, "geo":false, "lang":false}}}}, Priority:5, Status:"active", ModifiedOn
:time.Time{wall:0x0, ext:63734805755, loc:(*time.Location)(nil)}, CreatedOn:time.Time{wall:0x0, ext:63711575298, loc:(*time.Location)(nil)}}
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: panic: Invalid data-type
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0:
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: goroutine 1443 [running]:
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.itemExistsInSlice(0x1d224c0, 0xc0006b30a0, 0x1d224c0, 0x20bdb00, 0xc000662bc8)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/utils.go:91 +0x219
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.transformFromCloudflarePageRuleAction(0xc0009ad868, 0xc0005e9530, 0xc0006836b0, 0xe, 0xc000662758, 0x0, 0x0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/resource_cloudflare_page_rule.go:753 +0xc8a
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.resourceCloudflarePageRuleRead(0xc00034b500, 0x1f2dc40, 0xc0006e4240, 0xc00034b500, 0x0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/resource_cloudflare_page_rule.go:580 +0x805
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).RefreshWithoutUpgrade(0xc0001b87e0, 0xc0002f3ea0, 0x1f2dc40, 0xc0006e4240, 0xc00028d778, 0x0, 0x0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/helper/schema/resource.go:460 +0x129
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ReadResource(0xc0001813d8, 0x21001e0, 0xc0007b83f0, 0xc000997ec0, 0xc0001813d8, 0xc0007b83f0, 0xc00001eba0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/internal/helper/plugin/grpc_provider.go:525 +0x3dd
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ReadResource_Handler(0x1eea540, 0xc0001813d8, 0x21001e0, 0xc0007b83f0, 0xc000997e60, 0x0, 0x21001e0, 0xc0007b83f0, 0xc00017b680, 0x43a)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/internal/tfplugin5/tfplugin5.pb.go:3269 +0x214
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).processUnaryRPC(0xc0007cc1c0, 0x210bc00, 0xc000103680, 0xc00092c900, 0xc00039ab70, 0x27f7710, 0x0, 0x0, 0x0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:1171 +0x522
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).handleStream(0xc0007cc1c0, 0x210bc00, 0xc000103680, 0xc00092c900, 0x0)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:1494 +0xcc5
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc00003c200, 0xc0007cc1c0, 0x210bc00, 0xc000103680, 0xc00092c900)
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:834 +0xa5
2021-02-05T16:35:32.712+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: created by google.golang.org/grpc.(*Server).serveStreams.func1
2021-02-05T16:35:32.713+0100 [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:832 +0x1fd
2021-02-05T16:35:32.718+0100 [WARN] plugin.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = transport is closing"
2021-02-05T16:35:32.718+0100 [DEBUG] plugin: plugin process exited: path=.terraform/plugins/registry.terraform.io/cloudflare/cloudflare/2.18.0/darwin_amd64/terraform-provider-cloudflare_v2.18.0 pid=25888 error="exit status 2"
2021/02/05 16:35:32 [ERROR] eval: *terraform.EvalRefresh, err: rpc error: code = Unavailable desc = transport is closing
2021/02/05 16:35:32 [ERROR] eval: *terraform.EvalSequence, err: rpc error: code = Unavailable desc = transport is closing
Expected behavior
Terraform evaluates the page rule successfully.
Actual behavior
terraform crashes with following error:
panic: Invalid data-type
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0:
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: goroutine 1405 [running]:
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.itemExistsInSlice(0x1124940, 0xc000343250, 0x1124940, 0x14bf0c0, 0xc00087cbc8)
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/utils.go:91 +0x219
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.transformFromCloudflarePageRuleAction(0xc0001f7868, 0xc0007da330, 0xc000038370, 0xe, 0xc00087c758, 0x0, 0x0)
2021-02-05T15:20:51.795Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/resource_cloudflare_page_rule.go:753 +0xc8a
Steps to reproduce
Important factoids
References
Community note
- Please vote on this issue by adding a š reaction to the original issue to help the community and maintainers prioritize this request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 14
- Comments: 18
Update on the original issue:
=> going back to version 2.17
@Funghorn can you please open a new issue and follow the issue template provided? I donāt have enough information based on your comment.
Thanks @jgournet, that is the š” we needed. It looks like your issue is separate to this one (op is page rule cache key fields and yours is access SAML groups). Iām going to slice yours off into itās own new issue where we can get a reproduction test case and a fix together.
for what itās worth (=not much, sorry), Iām having the same issue when planning through terragrunt and with terraform v0.14.4 cloudflare v2.18.0 gets me a panic error cloudflare v2.17.0 works fine
However, I just cannot reproduce the issue in a standalone file ā¦