Panic in random provider crypto/rand: argument to Int is <= 0
VenelinMartinov opened this issue · comments
What happened?
The following slightly odd program yields this panic. Looks like something goes wrong when we specify all the arguments to be false.
Diagnostics:
pulumi:pulumi:Stack (index_randombytessAsJf9cfGYHF-dev):
panic: crypto/rand: argument to Int is <= 0
goroutine 70 [running]:
crypto/rand.Int({0x105a3de40?, 0x1400014e2e0?}, 0xffffffffffffffff?)
/opt/hostedtoolcache/go/1.21.7/x64/src/crypto/rand/util.go:64 +0x280
github.com/terraform-providers/terraform-provider-random/internal/random.generateRandomBytes(0x140002329c8, 0x10)
/home/runner/go/pkg/mod/github.com/terraform-providers/terraform-provider-random@v1.3.2-0.20231204135814-c6e90de46687/internal/random/string.go:90 +0xcc
github.com/terraform-providers/terraform-provider-random/internal/random.CreateString({0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, {0x0, ...}})
/home/runner/go/pkg/mod/github.com/terraform-providers/terraform-provider-random@v1.3.2-0.20231204135814-c6e90de46687/internal/random/string.go:67 +0x35c
github.com/terraform-providers/terraform-provider-random/internal/provider.(*stringResource).Create(0x0?, {0x105a4c928, 0x140003d8840}, {{{{0x105a55000, 0x140003d97d0}, {0x105857100, 0x140003d9650}}, {0x105a5ad48, 0x14000182780}}, {{{0x105a55000, ...}, ...}, ...}, ...}, ...)
/home/runner/go/pkg/mod/github.com/terraform-providers/terraform-provider-random@v1.3.2-0.20231204135814-c6e90de46687/internal/provider/resource_string.go:71 +0x2c8
github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).CreateResource(0x140003cd380, {0x105a4c928, 0x140003d8840}, 0x140002330e0, 0x14000233080)
/home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.5.0/internal/fwserver/server_createresource.go:101 +0x41c
github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).ApplyResourceChange(0x14000233240?, {0x105a4c928, 0x140003d8840}, 0x1400046dcc0, 0x14000233240)
/home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.5.0/internal/fwserver/server_applyresourcechange.go:57 +0x380
github.com/hashicorp/terraform-plugin-framework/internal/proto6server.(*Server).ApplyResourceChange(0x140003cd380, {0x105a4c928?, 0x140005da7e0?}, 0x1400046db80)
/home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.5.0/internal/proto6server/server_applyresourcechange.go:55 +0x314
github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.(*provider).CreateWithContext(0x1400001ce00, {0x105a4c928?, 0x140005da180?}, {0x14000742000, 0x62}, 0x104aae7a4?, 0x140002f5698?, 0x0)
/home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.29.0/tfbridge/provider_create.go:98 +0x5a0
github.com/pulumi/pulumi-terraform-bridge/pf/internal/plugin.(*providerServer).Create(0x140004245d0, {0x105a4c928, 0x140005da180}, 0x140005781e0)
/home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.29.0/internal/plugin/provider_server.go:349 +0x120
github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler.func1({0x105a4c928, 0x140005da180}, {0x105973420?, 0x140005781e0})
/home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.107.0/proto/go/provider_grpc.pb.go:593 +0x74
github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc.OpenTracingServerInterceptor.func1({0x105a4c928, 0x14000529d40}, {0x105973420, 0x140005781e0}, 0x1400079c0e0, 0x14000732180)
/home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-opentracing@v0.0.0-20180507213350-8e809c8a8645/go/otgrpc/server.go:57 +0x2e8
github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler({0x1059fc380?, 0x140004245d0}, {0x105a4c928, 0x14000529d40}, 0x14000490680, 0x140005dd7a0)
/home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.107.0/proto/go/provider_grpc.pb.go:595 +0x12c
google.golang.org/grpc.(*Server).processUnaryRPC(0x1400074e400, {0x105a4c928, 0x14000529cb0}, {0x105a562c0, 0x14000682680}, 0x140003dc000, 0x14000424660, 0x1063283c0, 0x0)
/home/runner/go/pkg/mod/google.golang.org/grpc@v1.61.0/server.go:1385 +0xb8c
google.golang.org/grpc.(*Server).handleStream(0x1400074e400, {0x105a562c0, 0x14000682680}, 0x140003dc000)
/home/runner/go/pkg/mod/google.golang.org/grpc@v1.61.0/server.go:1796 +0xc4c
google.golang.org/grpc.(*Server).serveStreams.func2.1()
/home/runner/go/pkg/mod/google.golang.org/grpc@v1.61.0/server.go:1029 +0x8c
created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 59
/home/runner/go/pkg/mod/google.golang.org/grpc@v1.61.0/server.go:1040 +0x150
error: update failed
random:index:RandomString (randomBytes):
error: error reading from server: EOF
Example
name: index_randombytessAsJf9cfGYHF
runtime: yaml
description: ""
config:
pulumi:tags:
value:
pulumi:template: https://www.pulumi.com/ai/api/project/a21d2166-69d6-479c-bc2c-3e4ea3f0cf35.zip
resources:
random-provider:
type: pulumi:providers:random
defaultProvider: true
options:
version: 4.16.0
randomBytes:
properties:
length: 16
lower: false
number: false
special: false
upper: false
type: random:RandomString
Output of pulumi about
CLI
Version 3.111.1
Go Version go1.22.1
Go Compiler gc
Plugins
NAME VERSION
random 4.16.0
yaml unknown
Host
OS darwin
Version 14.1.1
Arch arm64
This project is written in yaml
Current Stack: pulumi/index_randombytessAsJf9cfGYHF/dev
TYPE URN
pulumi:pulumi:Stack urn:pulumi:dev::index_randombytessAsJf9cfGYHF::pulumi:pulumi:Stack::index_randombytessAsJf9cfGYHF-dev
pulumi:providers:random urn:pulumi:dev::index_randombytessAsJf9cfGYHF::pulumi:providers:random::random-provider
pulumi:providers:random urn:pulumi:dev::index_randombytessAsJf9cfGYHF::pulumi:providers:random::default
Found no pending operations associated with dev
Backend
Name pulumi.com
URL https://app.pulumi.com/venelin-pulumi-corp
User venelin-pulumi-corp
Organizations venelin-pulumi-corp, demo, pulumi
Token type personal
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).
This reproduces with Terraform.
Filed hashicorp/terraform-provider-random#549 upstream.
Opened hashicorp/terraform-provider-random#550 to address upstream.
This was fixed upstream and we've pulled it in. Closing.