pulumi / pulumi-random

A Pulumi provider that safely enables randomness for resources

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

This was fixed upstream and we've pulled it in. Closing.