Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault after upgrading to 0.11.26 #223

Open
etlabaume opened this issue Sep 27, 2023 · 3 comments
Open

Segmentation fault after upgrading to 0.11.26 #223

etlabaume opened this issue Sep 27, 2023 · 3 comments

Comments

@etlabaume
Copy link

etlabaume commented Sep 27, 2023

A call was not working in my TF environment, mentioning the following error:

Fetching object from api gateway: Unsuccessful GET at URL https://xxxxxx.console.ves.volterra.io/api/public/namespaces/yyyyyy, status code 401, body Client certificate is invalid or revoked.

As this was working before, I suspected a change in the API, so I upgraded the provider from 0.11.8 to 0.11.26. Re-running TF, I now get:

 Error: Request cancelled

   with provider["registry.terraform.io/volterraedge/volterra"],
   on main.tf line 31, in provider "volterra":
   31: provider "volterra" {

The plugin.(*GRPCProvider).ConfigureProvider request was cancelled.

That line 31 in my main.tf is the configuration of the provider:

provider "volterra" {
  api_cert = var.f5xc_api_cert
  api_key  = var.f5xc_api_key
  url      = var.f5xc_api_url
}

and var.f5xc_api_cert is a string containing the full path to the PEM file.

Stack trace from the terraform-provider-volterra_v0.11.26 plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1b62d13]

goroutine 237 [running]:
gopkg.volterra.us/stdlib/util/tls.(*CertManager).SetStopCh(0x0, 0xc00260b3e0)
gopkg.volterra.us/stdlib@v1.0.3/util/tls/cert_manager.go:96 +0x33
gopkg.volterra.us/stdlib/util/tls.(*CertManager).StartExpiryRotater(0x0)
gopkg.volterra.us/stdlib@v1.0.3/util/tls/cert_manager.go:187 +0x38
gopkg.volterra.us/stdlib/client.(*Client).ConnectRest(0xc002b9e2d0, {0xdfad288?, 0xc000190010})
gopkg.volterra.us/stdlib@v1.0.3/client/client.go:426 +0x1bf
gopkg.volterra.us/stdlib/client.NewClient({0xc002148210, 0x2f}, {0xc0020c52e0?, 0xc002b9ad01?, 0xc0020c5330?})
gopkg.volterra.us/stdlib@v1.0.3/client/client.go:630 +0x77b
gopkg.volterra.us/stdlib/client/vesapi.NewAPIClient({0xc002148210, 0x2f}, 0xc0001ac000?, {0xc002b98180?, 0xc0000269a0?, 0x149?})
gopkg.volterra.us/stdlib@v1.0.3/client/vesapi/vesapi.go:382 +0x330
github.com/volterraedge/terraform-provider-volterra/volterra.(*Config).Client(0xc0020c5418)
github.com/volterraedge/terraform-provider-volterra/volterra/config.go:238 +0x85
github.com/volterraedge/terraform-provider-volterra/volterra.providerConfigure(0x80?, {0xa31aa60?, 0x1?})
github.com/volterraedge/terraform-provider-volterra/volterra/provider.go:175 +0x547
github.com/volterraedge/terraform-provider-volterra/volterra.Provider.func1(0xa63e80c?)
github.com/volterraedge/terraform-provider-volterra/volterra/provider.go:120 +0x3c
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Provider).Configure(0xc0001a3b60, {0xdfad2f8, 0xc002b93620}, 0xd?)
github.com/hashicorp/terraform-plugin-sdk/v2@v2.26.1/helper/schema/provider.go:287 +0x18f
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ConfigureProvider(0xc00206c9c0, {0xdfad2f8?, 0xc002b930b0?}, 0xc002b37170)
github.com/hashicorp/terraform-plugin-sdk/v2@v2.26.1/helper/schema/grpc_provider.go:557 +0x345
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).Configure(0xc000163a40, {0xdfad2f8?, 0xc002b928a0?}, 0xc002a55d40)
github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/tf5server/server.go:556 +0x2d3
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_Configure_Handler({0xa2809a0?, 0xc000163a40}, {0xdfad2f8, 0xc002b928a0}, 0xc002b85960, 0x0)
github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:331 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0xc000448000, {0xe013000, 0xc001fd3040}, 0xc002b8a120, 0xc002006c90, 0x134ac8d8, 0x0)
google.golang.org/grpc@v1.54.0/server.go:1345 +0xdf0
google.golang.org/grpc.(*Server).handleStream(0xc000448000, {0xe013000, 0xc001fd3040}, 0xc002b8a120, 0x0)
google.golang.org/grpc@v1.54.0/server.go:1722 +0xa2f
google.golang.org/grpc.(*Server).serveStreams.func1.2()
google.golang.org/grpc@v1.54.0/server.go:966 +0x98
created by google.golang.org/grpc.(*Server).serveStreams.func1
google.golang.org/grpc@v1.54.0/server.go:964 +0x28a

@etlabaume
Copy link
Author

I downgraded/upgraded versions to check, and looks like this issue was introduced in 0.11.25

@neil-williamson
Copy link

Same issue and stack trace here: works in 0.11.24, broken in 0.11.25 and 0.11.26.
This looks substantially similar to #173 which was previously fixed by PR #174 in 0.11.16. My steps to reproduce remain the same as in that issue.

@Gittins
Copy link

Gittins commented Nov 24, 2023

I'm hitting the same issue using providers 0.11.25 up to 0.11.28.

$ terraform apply
╷
│ Error: Plugin did not respond
│ 
│   with provider["registry.terraform.io/volterraedge/volterra"],
│   on provider.tf line 10, in provider "volterra":
│   10: provider "volterra" {
│ 
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ConfigureProvider call. The plugin logs may contain more details.
╵

Stack trace from the terraform-provider-volterra_v0.11.28 plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xf4f973]

goroutine 212 [running]:
gopkg.volterra.us/stdlib/util/tls.(*CertManager).SetStopCh(0x0, 0xc0005aefc0)
        gopkg.volterra.us/stdlib@v1.0.3/util/tls/cert_manager.go:96 +0x33
gopkg.volterra.us/stdlib/util/tls.(*CertManager).StartExpiryRotater(0x0)
        gopkg.volterra.us/stdlib@v1.0.3/util/tls/cert_manager.go:187 +0x38
gopkg.volterra.us/stdlib/client.(*Client).ConnectRest(0xc002bc8000, {0xd7e3508?, 0xc0000b8078})
        gopkg.volterra.us/stdlib@v1.0.3/client/client.go:426 +0x1bf
gopkg.volterra.us/stdlib/client.NewClient({0xc001fa4580, 0x31}, {0xc001e672e8?, 0xc001e72701?, 0xc001e67338?})
        gopkg.volterra.us/stdlib@v1.0.3/client/client.go:630 +0x77b
gopkg.volterra.us/stdlib/client/vesapi.NewAPIClient({0xc001fa4580, 0x31}, 0xc001e67390?, {0xc00216d820?, 0xc0000fe050?, 0x7c?})
        gopkg.volterra.us/stdlib@v1.0.3/client/vesapi/vesapi.go:382 +0x330
github.com/volterraedge/terraform-provider-volterra/volterra.(*Config).Client(0xc001e67440)
        github.com/volterraedge/terraform-provider-volterra/volterra/config.go:239 +0x85
github.com/volterraedge/terraform-provider-volterra/volterra.providerConfigure({0x9d2b388?, 0x6?}, 0xc001e45620?)
        github.com/volterraedge/terraform-provider-volterra/volterra/provider.go:171 +0x54b
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Provider).Configure(0xc00173f020, {0xd7e3578, 0xc001e45620}, 0xd?)
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.26.1/helper/schema/provider.go:297 +0x1f5
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ConfigureProvider(0xc0015fe528, {0xd7e3578?, 0xc001e450b0?}, 0xc001e6a138)
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.26.1/helper/schema/grpc_provider.go:557 +0x345
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).Configure(0xc0014f6b40, {0xd7e3578?, 0xc001e448a0?}, 0xc00209d180)
        github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/tf5server/server.go:556 +0x2d3
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_Configure_Handler({0x9958d20?, 0xc0014f6b40}, {0xd7e3578, 0xc001e448a0}, 0xc001e6c000, 0x0)
        github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:331 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00190e000, {0xd84b620, 0xc001e8a000}, 0xc001e2f0e0, 0xc001dcf0b0, 0x12ea89f8, 0x0)
        google.golang.org/grpc@v1.54.0/server.go:1345 +0xdf0
google.golang.org/grpc.(*Server).handleStream(0xc00190e000, {0xd84b620, 0xc001e8a000}, 0xc001e2f0e0, 0x0)
        google.golang.org/grpc@v1.54.0/server.go:1722 +0xa2f
google.golang.org/grpc.(*Server).serveStreams.func1.2()
        google.golang.org/grpc@v1.54.0/server.go:966 +0x98
created by google.golang.org/grpc.(*Server).serveStreams.func1
        google.golang.org/grpc@v1.54.0/server.go:964 +0x28a

Error: The terraform-provider-volterra_v0.11.28 plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants