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

Plugin crashing: invalid memory address or nil pointer dereference #7

Open
Lokechu opened this issue Apr 6, 2023 · 2 comments
Open

Comments

@Lokechu
Copy link

Lokechu commented Apr 6, 2023

System Information

MacOS 13.2.1 (Ventura)
darwin_arm64

Terraform version

v1.4.4

Provider versions

v0.3.1

OPNsense versions (but I don't think it is even making it this far)

OPNsense 23.1.5_4-amd64
FreeBSD 13.1-RELEASE-p7
OpenSSL 1.1.1t 7 Feb 2023


Description of Issue/Question

Plugin is crashing when trying to run terraform apply to create a static dhcp lease.

Setup

variable "dhcp_static_leases" {
type = map(map(string))
default = {
test = { interface = "LAN", mac = "00:11:22:33:44:55", ipaddr = "192.168.187.45" }
}
}

resource "opnsense_dhcp_static_map" "misc_static" {
for_each = var.dhcp_static_leases
hostname = each.key
interface = each.value.interface
mac = each.value.mac
ipaddr = each.value.ipaddr
}

Steps to Reproduce Issue

Try to create any static lease. Plugin crashes with memory error upon terraform apply.


Additional information:

The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.

Stack trace from the terraform-provider-opnsense plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x8 pc=0x103417724]

goroutine 14 [running]:
github.com/gxben/terraform-provider-opnsense/opnsense.(*DHCPSession).GetStaticFieldNames(0x1400007f2c0, 0x140003809e0?, 0xa56?)
/Users/loki/.local/share/terraform.d/plugins/terraform-provider-opnsense/opnsense/dhcp.go:69 +0xc4
github.com/gxben/terraform-provider-opnsense/opnsense.(*DHCPSession).GetAllInterfaceStaticMappings(0x1400007f2c0, {0x1400048d0e9, 0x3})
/Users/loki/.local/share/terraform.d/plugins/terraform-provider-opnsense/opnsense/dhcp.go:146 +0x1f4
github.com/gxben/terraform-provider-opnsense/opnsense.(*DHCPSession).FindMappingByMAC(0x1400007f2c0, 0x140005eb668)
/Users/loki/.local/share/terraform.d/plugins/terraform-provider-opnsense/opnsense/dhcp.go:249 +0x30
github.com/gxben/terraform-provider-opnsense/opnsense.(*DHCPSession).CreateStaticMapping(0x1400007f2c0, 0x140005eb668)
/Users/loki/.local/share/terraform.d/plugins/terraform-provider-opnsense/opnsense/dhcp.go:268 +0x24
github.com/gxben/terraform-provider-opnsense/opnsense.resourceDhcpStaticMappingCreate(0x1036a61a0?, {0x103645980?, 0x14000019a40})
/Users/loki/.local/share/terraform.d/plugins/terraform-provider-opnsense/opnsense/resource_opn_dhcp_static_map.go:89 +0x1fc
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).Apply(0x140004b2360, 0x1400004d9a0, 0x140003806a0, {0x103645980, 0x14000019a40})
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.9.0/helper/schema/resource.go:310 +0x3dc
github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Provider).Apply(0x14000181f80, 0x140005eb940, 0x103473c30?, 0xf?)
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.9.0/helper/schema/provider.go:294 +0x6c
github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ApplyResourceChange(0x1400000ebb0, {0x14000502150?, 0x14000386840?}, 0x14000502150)
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/helper/plugin/grpc_provider.go:885 +0x6a8
github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ApplyResourceChange_Handler({0x10376cce0?, 0x1400000ebb0}, {0x1037a2258, 0x140005e2060}, 0x14000386840, 0x0)
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/github.com/hashicorp/terraform-plugin-sdk@v1.9.0/internal/tfplugin5/tfplugin5.pb.go:3305 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0x140001a6480, {0x1037a5d40, 0x1400017e000}, 0x140001ac300, 0x14000383770, 0x103d38500, 0x0)
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/google.golang.org/grpc@v1.27.1/server.go:1024 +0xb8c
google.golang.org/grpc.(*Server).handleStream(0x140001a6480, {0x1037a5d40, 0x1400017e000}, 0x140001ac300, 0x0)
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/google.golang.org/grpc@v1.27.1/server.go:1313 +0x88c
google.golang.org/grpc.(*Server).serveStreams.func1.1()
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/google.golang.org/grpc@v1.27.1/server.go:722 +0x84
created by google.golang.org/grpc.(*Server).serveStreams.func1
/Users/loki/.local/share/rtx/installs/go/1.20.3/packages/pkg/mod/google.golang.org/grpc@v1.27.1/server.go:720 +0xe8

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

@dedene
Copy link

dedene commented May 2, 2023

I was having the same issue at first when using an OPNSense user without the proper permissions.

For the DHCP reservations resource, it seems you need at least:

  • Lobby: Login / Logout / Dashboard
  • Services: DHCP server
  • Services: DHCP Server: Edit static mapping

@andreaswolf
Copy link

I'm having the same problem, but setting the permissions as suggested by @dedene (or making the user in question an admin) did not work.

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

No branches or pull requests

3 participants