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

Return early on GetProviderSchema RPC responses with error diagnostics #31184

Merged
merged 1 commit into from Jun 6, 2022

Commits on Jun 3, 2022

  1. Return early on GetProviderSchema RPC responses with error diagnostics

    Reference: #31047
    
    Prevent potential panics and immediately return provider-defined errors diagnostics.
    
    Previously:
    
    ```
    --- FAIL: TestGRPCProvider_GetSchema_ResponseErrorDiagnostic (0.00s)
    panic: runtime error: invalid memory address or nil pointer dereference [recovered]
    	panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x70 pc=0x17fa752]
    
    goroutine 13 [running]:
    testing.tRunner.func1.2({0x191a100, 0x2236330})
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1389 +0x24e
    testing.tRunner.func1()
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1392 +0x39f
    panic({0x191a100, 0x2236330})
    	/usr/local/Cellar/go/1.18.2/libexec/src/runtime/panic.go:838 +0x207
    github.com/hashicorp/terraform/internal/plugin6/convert.ProtoToConfigSchema(0x0)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin6/convert/schema.go:110 +0x52
    github.com/hashicorp/terraform/internal/plugin6/convert.ProtoToProviderSchema(...)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin6/convert/schema.go:98
    github.com/hashicorp/terraform/internal/plugin6.(*GRPCProvider).GetProviderSchema(0xc00004a200)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin6/grpc_provider.go:152 +0x29a
    github.com/hashicorp/terraform/internal/plugin6.TestGRPCProvider_GetSchema_ResponseErrorDiagnostic(0x0?)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin6/grpc_provider_test.go:158 +0x265
    testing.tRunner(0xc0001031e0, 0x1a733d8)
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1439 +0x102
    created by testing.(*T).Run
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1486 +0x35f
    ```
    
    Previously:
    
    ```
    --- FAIL: TestGRPCProvider_GetSchema_ResponseErrorDiagnostic (0.00s)
    panic: runtime error: invalid memory address or nil pointer dereference [recovered]
    	panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x70 pc=0x18a2732]
    
    goroutine 7 [running]:
    testing.tRunner.func1.2({0x1a5e720, 0x250be50})
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1389 +0x24e
    testing.tRunner.func1()
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1392 +0x39f
    panic({0x1a5e720, 0x250be50})
    	/usr/local/Cellar/go/1.18.2/libexec/src/runtime/panic.go:838 +0x207
    github.com/hashicorp/terraform/internal/plugin/convert.ProtoToConfigSchema(0x0)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin/convert/schema.go:104 +0x52
    github.com/hashicorp/terraform/internal/plugin/convert.ProtoToProviderSchema(...)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin/convert/schema.go:92
    github.com/hashicorp/terraform/internal/plugin.(*GRPCProvider).GetProviderSchema(0xc00004a600)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin/grpc_provider.go:149 +0x29a
    github.com/hashicorp/terraform/internal/plugin.TestGRPCProvider_GetSchema_ResponseErrorDiagnostic(0x0?)
    	/Users/bflad/src/github.com/hashicorp/terraform/internal/plugin/grpc_provider_test.go:130 +0x265
    testing.tRunner(0xc0001031e0, 0x1be9500)
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1439 +0x102
    created by testing.(*T).Run
    	/usr/local/Cellar/go/1.18.2/libexec/src/testing/testing.go:1486 +0x35f
    ```
    bflad committed Jun 3, 2022
    Copy the full SHA
    0b404f4 View commit details
    Browse the repository at this point in the history