dmacvicar / terraform-provider-libvirt

Terraform provider to provision infrastructure with Linux's KVM using libvirt
Apache License 2.0
1.54k stars 457 forks source link

Panic: Invalid memory address or nil pointer dereference when dialing SSH #917

Open davidalger opened 2 years ago

davidalger commented 2 years ago

System Information

Linux distribution

MacOS 12.1 client, Fedora 34 Workstation server.

Terraform and provider versions

Terraform v1.1.2
on darwin_amd64
+ provider registry.terraform.io/dmacvicar/libvirt v0.6.12

Description of Issue/Question

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

Setup

terraform {
  required_version = "~> 1.1"

  required_providers {
    libvirt = {
      source  = "dmacvicar/libvirt"
      version = "~> 0.6"
    }
  }
}

provider "libvirt" {
  uri = "qemu+ssh://davidalger@hylfing/system?sshauth=privkey&socket=/var/run/libvirt/libvirt-sock"
}

resource "libvirt_volume" "fcos35" {
  name   = "fcos35"
  source = "https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/35.20211203.3.0/x86_64/fedora-coreos-35.20211203.3.0-qemu.x86_64.qcow2.xz"
}

Steps to Reproduce Issue

Simply run terraform plan with the above configuration. It's specifically triggered by including sshauth=privkey in the uri as otherwise it defaults to attempting agent authentication.

2021-12-29T11:11:28.526-0600 [INFO]  Terraform version: 1.1.2
2021-12-29T11:11:28.526-0600 [INFO]  Go runtime version: go1.17.2
2021-12-29T11:11:28.526-0600 [INFO]  CLI args: []string{"/usr/local/Cellar/tfenv/2.2.2/versions/1.1.2/terraform", "plan"}
2021-12-29T11:11:28.526-0600 [DEBUG] Attempting to open CLI config file: /Users/davidalger/.terraformrc
2021-12-29T11:11:28.526-0600 [DEBUG] File doesn't exist, but doesn't need to. Ignoring.
2021-12-29T11:11:28.527-0600 [DEBUG] checking for credentials in "/Users/davidalger/.terraform.d/plugins"
2021-12-29T11:11:28.527-0600 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins
2021-12-29T11:11:28.527-0600 [DEBUG] will search for provider plugins in /Users/davidalger/.terraform.d/plugins
2021-12-29T11:11:28.527-0600 [DEBUG] ignoring non-existing provider search directory /Users/davidalger/Library/Application Support/io.terraform/plugins
2021-12-29T11:11:28.527-0600 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins
2021-12-29T11:11:28.529-0600 [INFO]  CLI command args: []string{"plan"}
2021-12-29T11:11:28.544-0600 [DEBUG] New state was assigned lineage "890ba75c-e371-5a75-ae64-0788d2d57cfc"
2021-12-29T11:11:28.605-0600 [DEBUG] checking for provisioner in "."
2021-12-29T11:11:28.605-0600 [DEBUG] checking for provisioner in "/usr/local/Cellar/tfenv/2.2.2/versions/1.1.2"
2021-12-29T11:11:28.605-0600 [DEBUG] checking for provisioner in "/Users/davidalger/.terraform.d/plugins"
2021-12-29T11:11:28.610-0600 [INFO]  backend/local: starting Plan operation
2021-12-29T11:11:28.617-0600 [DEBUG] created provider logger: level=debug
2021-12-29T11:11:28.618-0600 [INFO]  provider: configuring client automatic mTLS
2021-12-29T11:11:28.631-0600 [DEBUG] provider: starting plugin: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 args=[.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12]
2021-12-29T11:11:28.634-0600 [DEBUG] provider: plugin started: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62404
2021-12-29T11:11:28.634-0600 [DEBUG] provider: waiting for RPC address: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12
2021-12-29T11:11:28.650-0600 [INFO]  provider.terraform-provider-libvirt_v0.6.12: configuring server automatic mTLS: timestamp=2021-12-29T11:11:28.650-0600
2021-12-29T11:11:28.686-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: plugin address: address=/var/folders/b5/88xzlq3n61jdf_f30wlkkg580000gn/T/plugin149024867 network=unix timestamp=2021-12-29T11:11:28.685-0600
2021-12-29T11:11:28.686-0600 [DEBUG] provider: using plugin: version=5
2021-12-29T11:11:28.720-0600 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = unknown service plugin.GRPCStdio"
2021-12-29T11:11:28.723-0600 [DEBUG] No provider meta schema returned
2021-12-29T11:11:28.726-0600 [DEBUG] provider: plugin process exited: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62404
2021-12-29T11:11:28.726-0600 [DEBUG] provider: plugin exited
2021-12-29T11:11:28.727-0600 [DEBUG] Building and walking validate graph
2021-12-29T11:11:28.729-0600 [DEBUG] ProviderTransformer: "libvirt_volume.fcos35" (*terraform.NodeValidatableResource) needs provider["registry.terraform.io/dmacvicar/libvirt"]
2021-12-29T11:11:28.730-0600 [DEBUG] ReferenceTransformer: "libvirt_volume.fcos35" references: []
2021-12-29T11:11:28.730-0600 [DEBUG] ReferenceTransformer: "provider[\"registry.terraform.io/dmacvicar/libvirt\"]" references: []
2021-12-29T11:11:28.730-0600 [DEBUG] Starting graph walk: walkValidate
2021-12-29T11:11:28.733-0600 [DEBUG] created provider logger: level=debug
2021-12-29T11:11:28.733-0600 [INFO]  provider: configuring client automatic mTLS
2021-12-29T11:11:28.742-0600 [DEBUG] provider: starting plugin: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 args=[.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12]
2021-12-29T11:11:28.745-0600 [DEBUG] provider: plugin started: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62405
2021-12-29T11:11:28.745-0600 [DEBUG] provider: waiting for RPC address: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12
2021-12-29T11:11:28.758-0600 [INFO]  provider.terraform-provider-libvirt_v0.6.12: configuring server automatic mTLS: timestamp=2021-12-29T11:11:28.757-0600
2021-12-29T11:11:28.794-0600 [DEBUG] provider: using plugin: version=5
2021-12-29T11:11:28.794-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: plugin address: address=/var/folders/b5/88xzlq3n61jdf_f30wlkkg580000gn/T/plugin628364704 network=unix timestamp=2021-12-29T11:11:28.794-0600
2021-12-29T11:11:28.818-0600 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = unknown service plugin.GRPCStdio"
2021-12-29T11:11:28.819-0600 [DEBUG] No provider meta schema returned
2021-12-29T11:11:28.827-0600 [DEBUG] provider: plugin process exited: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62405
2021-12-29T11:11:28.827-0600 [DEBUG] provider: plugin exited
2021-12-29T11:11:28.827-0600 [INFO]  backend/local: plan calling Plan
2021-12-29T11:11:28.828-0600 [DEBUG] Building and walking plan graph for NormalMode
2021-12-29T11:11:28.829-0600 [DEBUG] ProviderTransformer: "libvirt_volume.fcos35 (expand)" (*terraform.nodeExpandPlannableResource) needs provider["registry.terraform.io/dmacvicar/libvirt"]
2021-12-29T11:11:28.829-0600 [DEBUG] ReferenceTransformer: "libvirt_volume.fcos35 (expand)" references: []
2021-12-29T11:11:28.829-0600 [DEBUG] ReferenceTransformer: "provider[\"registry.terraform.io/dmacvicar/libvirt\"]" references: []
2021-12-29T11:11:28.829-0600 [DEBUG] Starting graph walk: walkPlan
2021-12-29T11:11:28.830-0600 [DEBUG] created provider logger: level=debug
2021-12-29T11:11:28.830-0600 [INFO]  provider: configuring client automatic mTLS
2021-12-29T11:11:28.838-0600 [DEBUG] provider: starting plugin: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 args=[.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12]
2021-12-29T11:11:28.841-0600 [DEBUG] provider: plugin started: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62406
2021-12-29T11:11:28.841-0600 [DEBUG] provider: waiting for RPC address: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12
2021-12-29T11:11:28.856-0600 [INFO]  provider.terraform-provider-libvirt_v0.6.12: configuring server automatic mTLS: timestamp=2021-12-29T11:11:28.855-0600
2021-12-29T11:11:28.891-0600 [DEBUG] provider: using plugin: version=5
2021-12-29T11:11:28.891-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: plugin address: address=/var/folders/b5/88xzlq3n61jdf_f30wlkkg580000gn/T/plugin378536869 network=unix timestamp=2021-12-29T11:11:28.891-0600
2021-12-29T11:11:28.915-0600 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unimplemented desc = unknown service plugin.GRPCStdio"
2021-12-29T11:11:28.916-0600 [DEBUG] No provider meta schema returned
2021-12-29T11:11:28.917-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: 2021/12/29 11:11:28 [DEBUG] Configuring provider for 'qemu+ssh://davidalger@hylfing/system?sshauth=privkey&socket=/var/run/libvirt/libvirt-sock': &{map[uri:0xc0001ca3c0] <nil> <nil> 0xc0001a20c0 map[] <nil> 0xc0001a21c0 0xc0007d21c8 0xc000718230 false map[] {1 {0 0}} false false}
2021-12-29T11:11:28.918-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: 2021/12/29 11:11:28 [ERROR] Failed to parse ssh key: ssh: cannot decode encrypted private keys
2021-12-29T11:11:29.156-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: panic: runtime error: invalid memory address or nil pointer dereference
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x12d6855]
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: 
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: goroutine 49 [running]:
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: golang.org/x/crypto/ssh.publicKeyCallback.auth(0xc0001a2260, 0xc0007204a0, 0x20, 0x20, 0xc00072c12b, 0xa, 0x1d624f8, 0xc0007266e0, 0x1d516e0, 0xc00010c510, ...)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client_auth.go:202 +0xd5
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: golang.org/x/crypto/ssh.(*connection).clientAuthenticate(0xc0000a2900, 0xc0004832b0, 0x0, 0xa)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client_auth.go:44 +0x382
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: golang.org/x/crypto/ssh.(*connection).clientHandshake(0xc0000a2900, 0xc0007108b0, 0xa, 0xc0004832b0, 0x0, 0x0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:113 +0x2cf
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: golang.org/x/crypto/ssh.NewClientConn(0x1d6ded0, 0xc0007320b0, 0xc0007108b0, 0xa, 0xc00069d7d0, 0x1d6ded0, 0xc0007320b0, 0x0, 0x0, 0xc0007108b0, ...)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:83 +0xf8
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: golang.org/x/crypto/ssh.Dial(0x1bd4bcb, 0x3, 0xc0007108b0, 0xa, 0xc00069d7d0, 0xc0007108b0, 0xa, 0x6d00000000000000)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:177 +0xb8
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri.(*ConnectionURI).dialSSH(0xc00069d968, 0xc00072c125, 0x3, 0x0, 0x2287a20)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri/ssh.go:130 +0x339
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri.(*ConnectionURI).DialTransport(0xc00069d968, 0x59, 0xc000300000, 0x0, 0x0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri/connection_uri.go:83 +0x192
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/dmacvicar/terraform-provider-libvirt/libvirt.(*Config).Client(0xc00069d9d0, 0xc00018c600, 0xc00072c120, 0x59)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/dmacvicar/terraform-provider-libvirt/libvirt/config.go:35 +0x85
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/dmacvicar/terraform-provider-libvirt/libvirt.providerConfigure(0xc000736070, 0x0, 0xc0001a20c0, 0xc000736070, 0x0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/dmacvicar/terraform-provider-libvirt/libvirt/provider.go:68 +0x15f
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Provider).Configure(0xc0001b8080, 0xc000714450, 0x1a8dae0, 0xc0007143c0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/hashicorp/terraform-plugin-sdk@v1.9.0/helper/schema/provider.go:275 +0xfc
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).Configure(0xc0001b6060, 0x1d65eb0, 0xc0007141b0, 0xc00011fb80, 0xc0001b6060, 0xc0007141b0, 0xc000690b80)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/helper/plugin/grpc_provider.go:487 +0x2ee
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_Configure_Handler(0x1b968e0, 0xc0001b6060, 0x1d65eb0, 0xc0007141b0, 0xc000728120, 0x0, 0x1d65eb0, 0xc0007141b0, 0xc0007300e0, 0x6b)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/tfplugin5/tfplugin5.pb.go:3251 +0x214
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: google.golang.org/grpc.(*Server).processUnaryRPC(0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000, 0xc0004fcf90, 0x228e7f8, 0x0, 0x0, 0x0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   google.golang.org/grpc@v1.27.1/server.go:1024 +0x522
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: google.golang.org/grpc.(*Server).handleStream(0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000, 0x0)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   google.golang.org/grpc@v1.27.1/server.go:1313 +0xd2c
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0003f8240, 0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000)
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   google.golang.org/grpc@v1.27.1/server.go:722 +0xab
2021-12-29T11:11:29.157-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12: created by google.golang.org/grpc.(*Server).serveStreams.func1
2021-12-29T11:11:29.158-0600 [DEBUG] provider.terraform-provider-libvirt_v0.6.12:   google.golang.org/grpc@v1.27.1/server.go:720 +0xa5
2021-12-29T11:11:29.159-0600 [DEBUG] provider: plugin process exited: path=.terraform/providers/registry.terraform.io/dmacvicar/libvirt/0.6.12/darwin_amd64/terraform-provider-libvirt_v0.6.12 pid=62406 error="exit status 2"
2021-12-29T11:11:29.161-0600 [ERROR] plugin.(*GRPCProvider).ConfigureProvider: error="rpc error: code = Unavailable desc = transport is closing"
2021-12-29T11:11:29.162-0600 [ERROR] vertex "provider[\"registry.terraform.io/dmacvicar/libvirt\"]" error: Plugin did not respond
2021-12-29T11:11:29.162-0600 [INFO]  backend/local: plan operation completed
╷
│ Error: Plugin did not respond
│ 
│   with provider["registry.terraform.io/dmacvicar/libvirt"],
│   on main.tf line 12, in provider "libvirt":
│   12: provider "libvirt" {
│ 
│ 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-libvirt_v0.6.12 plugin:

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

goroutine 49 [running]:
golang.org/x/crypto/ssh.publicKeyCallback.auth(0xc0001a2260, 0xc0007204a0, 0x20, 0x20, 0xc00072c12b, 0xa, 0x1d624f8, 0xc0007266e0, 0x1d516e0, 0xc00010c510, ...)
    golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client_auth.go:202 +0xd5
golang.org/x/crypto/ssh.(*connection).clientAuthenticate(0xc0000a2900, 0xc0004832b0, 0x0, 0xa)
    golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client_auth.go:44 +0x382
golang.org/x/crypto/ssh.(*connection).clientHandshake(0xc0000a2900, 0xc0007108b0, 0xa, 0xc0004832b0, 0x0, 0x0)
    golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:113 +0x2cf
golang.org/x/crypto/ssh.NewClientConn(0x1d6ded0, 0xc0007320b0, 0xc0007108b0, 0xa, 0xc00069d7d0, 0x1d6ded0, 0xc0007320b0, 0x0, 0x0, 0xc0007108b0, ...)
    golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:83 +0xf8
golang.org/x/crypto/ssh.Dial(0x1bd4bcb, 0x3, 0xc0007108b0, 0xa, 0xc00069d7d0, 0xc0007108b0, 0xa, 0x6d00000000000000)
    golang.org/x/crypto@v0.0.0-20191202143827-86a70503ff7e/ssh/client.go:177 +0xb8
github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri.(*ConnectionURI).dialSSH(0xc00069d968, 0xc00072c125, 0x3, 0x0, 0x2287a20)
    github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri/ssh.go:130 +0x339
github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri.(*ConnectionURI).DialTransport(0xc00069d968, 0x59, 0xc000300000, 0x0, 0x0)
    github.com/dmacvicar/terraform-provider-libvirt/libvirt/uri/connection_uri.go:83 +0x192
github.com/dmacvicar/terraform-provider-libvirt/libvirt.(*Config).Client(0xc00069d9d0, 0xc00018c600, 0xc00072c120, 0x59)
    github.com/dmacvicar/terraform-provider-libvirt/libvirt/config.go:35 +0x85
github.com/dmacvicar/terraform-provider-libvirt/libvirt.providerConfigure(0xc000736070, 0x0, 0xc0001a20c0, 0xc000736070, 0x0)
    github.com/dmacvicar/terraform-provider-libvirt/libvirt/provider.go:68 +0x15f
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Provider).Configure(0xc0001b8080, 0xc000714450, 0x1a8dae0, 0xc0007143c0)
    github.com/hashicorp/terraform-plugin-sdk@v1.9.0/helper/schema/provider.go:275 +0xfc
github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).Configure(0xc0001b6060, 0x1d65eb0, 0xc0007141b0, 0xc00011fb80, 0xc0001b6060, 0xc0007141b0, 0xc000690b80)
    github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/helper/plugin/grpc_provider.go:487 +0x2ee
github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_Configure_Handler(0x1b968e0, 0xc0001b6060, 0x1d65eb0, 0xc0007141b0, 0xc000728120, 0x0, 0x1d65eb0, 0xc0007141b0, 0xc0007300e0, 0x6b)
    github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/tfplugin5/tfplugin5.pb.go:3251 +0x214
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000, 0xc0004fcf90, 0x228e7f8, 0x0, 0x0, 0x0)
    google.golang.org/grpc@v1.27.1/server.go:1024 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000, 0x0)
    google.golang.org/grpc@v1.27.1/server.go:1313 +0xd2c
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0003f8240, 0xc0001ab200, 0x1d6e4b8, 0xc0001ab980, 0xc00072a000)
    google.golang.org/grpc@v1.27.1/server.go:722 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    google.golang.org/grpc@v1.27.1/server.go:720 +0xa5

Error: The terraform-provider-libvirt_v0.6.12 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.

2021-12-29T11:11:29.166-0600 [DEBUG] provider: plugin exited

Additional information:

My private keys all have a passphrase on them. I believe by default it would be using the one at ~/.ssh/id_rsa but it panic also occurs when including keyfile=/Users/davidalger/.ssh/id_ed25519 in the uri value. I stumbled upon this panic while figuring out why agent authentication wasn't working. Since my keys have passphrases on them, I wouldn't expect this to plan out correctly, I would expect the error noted in the debug log to be presented rather than crashing the provider:

Failed to parse ssh key: ssh: cannot decode encrypted private keys