k1LoW / runn

runn is a package/tool for running operations following a scenario.
https://runn.run
MIT License
421 stars 31 forks source link

fatal error: concurrent map writes #889

Closed h6ah4i closed 4 months ago

h6ah4i commented 4 months ago

I got the following error in v0.104.0. It seems the validator instance of libopenapi-validator is not thread-safe and immutable, so it should not be shared.

https://github.com/pb33f/libopenapi-validator/blob/60356247c767fd5f6dfe278189b3f601d3ea7168/responses/validate_body.go#L143C7-L143C18

Error message

fatal error: concurrent map writes

goroutine 7336 [running]:
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).checkResponseSchema(0xc001b45740, 0xc0024766c0, 0xc002478ab0, {0xc0032d0b60?, 0x1?}, 0xc001a6b110)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:143 +0x1f6
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).ValidateResponseBody(0xc001b45740, 0xc0024766c0, 0xc002478ab0)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:62 +0x47f
github.com/pb33f/libopenapi-validator.(*validator).ValidateHttpResponse(0xc00125e280, 0xc0024766c0, 0xc002478ab0)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/validator.go:116 +0xc5
github.com/k1LoW/runn.(*openAPI3Validator).ValidateResponse(0xc0012d6f20, {0xc0024766c0?, 0xc002abfef0?}, 0xc0024766c0, 0xc002478ab0)
    /Users/runner/work/runn/runn/http_validator.go:204 +0x5e
github.com/k1LoW/runn.(*httpRunner).run(0xc0008ff440, {0x26702c0, 0xc001a80f50}, 0xc002311c00, 0xc002412000)
    /Users/runner/work/runn/runn/http.go:515 +0xeaf
github.com/k1LoW/runn.(*httpRunner).Run(0xc0008ff440, {0x26702c0, 0xc001a80f50}, 0xc002412000)
    /Users/runner/work/runn/runn/http.go:377 +0x92
github.com/k1LoW/runn.(*operator).runStep.func1(0x221fe60?)
    /Users/runner/work/runn/runn/operator.go:185 +0xe5
github.com/k1LoW/runn.(*operator).runStep(0xc002308fc8, {0x26702c0, 0xc001a80f50}, 0x0, 0xc002412000)
    /Users/runner/work/runn/runn/operator.go:290 +0xda8
github.com/k1LoW/runn.(*operator).runInternal(0xc002308fc8, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc002308fc8, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*includeRunner).Run(0xc001db9470, {0x26702c0, 0xc001a80f50}, 0xc00187b680)
    /Users/runner/work/runn/runn/include.go:155 +0xbcf
github.com/k1LoW/runn.(*operator).runStep.func1(0xc0013c0780?)
    /Users/runner/work/runn/runn/operator.go:215 +0x705
github.com/k1LoW/runn.(*operator).runStep(0xc001494008, {0x26702c0, 0xc001a80f50}, 0x0, 0xc00187b680)
    /Users/runner/work/runn/runn/operator.go:325 +0x81c
github.com/k1LoW/runn.(*operator).runInternal(0xc001494008, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc001494008, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*operators).runN.func1()
    /Users/runner/work/runn/runn/operator.go:1560 +0x21e
github.com/k1LoW/concgroup.(*Group).GoMulti.func1()
    /Users/runner/go/pkg/mod/github.com/k1!lo!w/concgroup@v1.1.0/concgroup.go:62 +0xeb
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96

goroutine 1 [chan send]:
golang.org/x/sync/errgroup.(*Group).Go(0xc0028be140, 0xc001b62960)
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:71 +0x32
github.com/k1LoW/concgroup.(*Group).GoMulti(0xc001b62750, {0x0, 0x0, 0x0}, 0xc001b62930)
    /Users/runner/go/pkg/mod/github.com/k1!lo!w/concgroup@v1.1.0/concgroup.go:57 +0x2b7
github.com/k1LoW/runn.(*operators).runN(0xc0008fecc0, {0x2670288, 0xc001b626c0})
    /Users/runner/work/runn/runn/operator.go:1544 +0x23a
github.com/k1LoW/runn.(*operators).RunN(0xc0008fecc0, {0x2670288?, 0xc000a632f0?})
    /Users/runner/work/runn/runn/operator.go:1385 +0x10b
github.com/k1LoW/runn/cmd.init.func6(0xc000a70700?, {0xc000aa5008, 0xd4, 0xd8})
    /Users/runner/work/runn/runn/cmd/run.go:71 +0x1f8
github.com/spf13/cobra.(*Command).execute(0x3bfb120, {0xc000aa4008, 0xd8, 0xff})
    /Users/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:983 +0xaca
github.com/spf13/cobra.(*Command).ExecuteC(0x3bfab60)
    /Users/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
    /Users/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.0/command.go:1039
github.com/k1LoW/runn/cmd.Execute()
    /Users/runner/work/runn/runn/cmd/root.go:44 +0x1a
main.main()
    /Users/runner/work/runn/runn/cmd/runn/main.go:27 +0xf

goroutine 8 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc0004e4900)
    /Users/runner/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:292 +0x9f
created by go.opencensus.io/stats/view.init.0 in goroutine 1
    /Users/runner/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x8d

goroutine 8174 [select]:
net/http.(*persistConn).writeLoop(0xc002684d80)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2444 +0xf0
created by net/http.(*Transport).dialConn in goroutine 8200
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1800 +0x1585

goroutine 8170 [select]:
net/http.(*persistConn).writeLoop(0xc0024b30e0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2444 +0xf0
created by net/http.(*Transport).dialConn in goroutine 8155
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1800 +0x1585

goroutine 7115 [select]:
github.com/lestrrat-go/backoff/v2.(*controller).loop(0xc00160bda0)
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:64 +0x185
created by github.com/lestrrat-go/backoff/v2.newController in goroutine 7336
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:46 +0x2a5

goroutine 8186 [select]:
net/http.(*persistConn).writeLoop(0xc002476c60)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2444 +0xf0
created by net/http.(*Transport).dialConn in goroutine 8181
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1800 +0x1585

goroutine 8169 [runnable]:
net/http.(*Transport).tryPutIdleConn(0xc0023f2780, 0xc0024b30e0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1000 +0x4a5
net/http.(*persistConn).readLoop.func2(0x0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2114 +0x30
net/http.(*persistConn).readLoop(0xc0024b30e0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2268 +0xe9c
created by net/http.(*Transport).dialConn in goroutine 8155
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1799 +0x152f

goroutine 8185 [select]:
net/http.(*persistConn).readLoop(0xc002476c60)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2261 +0xd3a
created by net/http.(*Transport).dialConn in goroutine 8181
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1799 +0x152f

goroutine 8171 [IO wait]:
internal/poll.runtime_pollWait(0x7f5098956f88, 0x72)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/runtime/netpoll.go:345 +0x85
internal/poll.(*pollDesc).wait(0xc002562100?, 0xc00256e000?, 0x0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:84 +0x27
internal/poll.(*pollDesc).waitRead(...)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc002562100, {0xc00256e000, 0x1000, 0x1000})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_unix.go:164 +0x27a
net.(*netFD).Read(0xc002562100, {0xc00256e000?, 0x46f192?, 0x2172e88?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/fd_posix.go:55 +0x25
net.(*conn).Read(0xc0021bbba0, {0xc00256e000?, 0xc00217d4f8?, 0x411c5b?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/net.go:179 +0x45
net/http.(*persistConn).Read(0xc002560000, {0xc00256e000?, 0x409545?, 0x60?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1977 +0x4a
bufio.(*Reader).fill(0xc0018a1020)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/bufio/bufio.go:110 +0x103
bufio.(*Reader).Peek(0xc0018a1020, 0x1)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/bufio/bufio.go:148 +0x53
net/http.(*persistConn).readLoop(0xc002560000)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2141 +0x1b9
created by net/http.(*Transport).dialConn in goroutine 8165
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1799 +0x152f

goroutine 8145 [select]:
github.com/lestrrat-go/backoff/v2.(*controller).loop(0xc003144060)
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:64 +0x185
created by github.com/lestrrat-go/backoff/v2.newController in goroutine 7338
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:46 +0x2a5

goroutine 8173 [select]:
net/http.(*persistConn).readLoop(0xc002684d80)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2261 +0xd3a
created by net/http.(*Transport).dialConn in goroutine 8200
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1799 +0x152f

goroutine 7335 [runnable]:
internal/abi.Name.Name({0x1d183ad?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/internal/abi/type.go:664 +0xa8
reflect.(*structType).FieldByName(0x22d92a0, {0x1d19061, 0x4})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/reflect/type.go:1144 +0x127
reflect.(*rtype).FieldByName(0x2639408?, {0x1d19061?, 0x0?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/reflect/type.go:740 +0x98
github.com/pb33f/libopenapi/datamodel/high.(*NodeBuilder).add(0xc002523950, {0x1d19061, 0x4}, 0xe)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi@v0.16.1/datamodel/high/node_builder.go:103 +0x2cf
github.com/pb33f/libopenapi/datamodel/high.NewNodeBuilder({0x202a860, 0xc00319e788}, {0x2176440, 0xc0025dd008})
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi@v0.16.1/datamodel/high/node_builder.go:51 +0x1b8
github.com/pb33f/libopenapi/datamodel/high/base.(*Schema).MarshalYAMLInline(0xc00319e788)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi@v0.16.1/datamodel/high/base/schema.go:496 +0x30
github.com/pb33f/libopenapi/datamodel/high/base.(*Schema).RenderInline(0xc001b449c0?)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi@v0.16.1/datamodel/high/base/schema.go:477 +0x13
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).checkResponseSchema(0xc001b45740, 0xc0026847e0, 0xc0024cc090, {0xc001242b20?, 0x1?}, 0xc001a6b110)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:141 +0x109
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).ValidateResponseBody(0xc001b45740, 0xc0026847e0, 0xc0024cc090)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:62 +0x47f
github.com/pb33f/libopenapi-validator.(*validator).ValidateHttpResponse(0xc00125e280, 0xc0026847e0, 0xc0024cc090)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/validator.go:116 +0xc5
github.com/k1LoW/runn.(*openAPI3Validator).ValidateResponse(0xc0022cfac0, {0xc0026847e0?, 0xc000cc1e30?}, 0xc0026847e0, 0xc0024cc090)
    /Users/runner/work/runn/runn/http_validator.go:204 +0x5e
github.com/k1LoW/runn.(*httpRunner).run(0xc000000600, {0x26702c0, 0xc001a80f50}, 0xc003647c80, 0xc0025a8000)
    /Users/runner/work/runn/runn/http.go:515 +0xeaf
github.com/k1LoW/runn.(*httpRunner).Run(0xc000000600, {0x26702c0, 0xc001a80f50}, 0xc0025a8000)
    /Users/runner/work/runn/runn/http.go:377 +0x92
github.com/k1LoW/runn.(*operator).runStep.func1(0x221fe60?)
    /Users/runner/work/runn/runn/operator.go:185 +0xe5
github.com/k1LoW/runn.(*operator).runStep(0xc003610fc8, {0x26702c0, 0xc001a80f50}, 0x0, 0xc0025a8000)
    /Users/runner/work/runn/runn/operator.go:290 +0xda8
github.com/k1LoW/runn.(*operator).runInternal(0xc003610fc8, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc003610fc8, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*includeRunner).Run(0xc001db0ab0, {0x26702c0, 0xc001a80f50}, 0xc00197b400)
    /Users/runner/work/runn/runn/include.go:155 +0xbcf
github.com/k1LoW/runn.(*operator).runStep.func1(0xc00350c000?)
    /Users/runner/work/runn/runn/operator.go:215 +0x705
github.com/k1LoW/runn.(*operator).runStep(0xc001494248, {0x26702c0, 0xc001a80f50}, 0x0, 0xc00197b400)
    /Users/runner/work/runn/runn/operator.go:325 +0x81c
github.com/k1LoW/runn.(*operator).runInternal(0xc001494248, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc001494248, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*operators).runN.func1()
    /Users/runner/work/runn/runn/operator.go:1560 +0x21e
github.com/k1LoW/concgroup.(*Group).GoMulti.func1()
    /Users/runner/go/pkg/mod/github.com/k1!lo!w/concgroup@v1.1.0/concgroup.go:62 +0xeb
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96

goroutine 7338 [chan receive]:
net/http.(*persistConn).readLoop.func4({0x2648560, 0x3baea10})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2233 +0xa7
net/http.(*bodyEOFSignal).condfn(...)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2864
net/http.(*bodyEOFSignal).Read(0xc001931600, {0xc00222fc00, 0x200, 0x200})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2840 +0x1fc
net/http.(*cancelTimerBody).Read(0xc000cd04e0, {0xc00222fc00?, 0x5?, 0xc000a94b18?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:963 +0x2d
io.ReadAll({0x7f509837d590, 0xc000cd04e0})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/io/io.go:712 +0x7e
github.com/pb33f/libopenapi-validator/responses.ValidateResponseSchema(0xc0024b2900, 0xc002683560, 0xc00319e788, {0xc00222f600, 0x16f, 0x200}, {0xc000fb6140, 0x140, 0x416ff8?})
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_response.go:62 +0x3c5
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).checkResponseSchema(0xc001b45740, 0xc0024b2900, 0xc002683560, {0xc00205f7f0?, 0x1?}, 0xc001a6b110)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:151 +0x288
github.com/pb33f/libopenapi-validator/responses.(*responseBodyValidator).ValidateResponseBody(0xc001b45740, 0xc0024b2900, 0xc002683560)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/responses/validate_body.go:62 +0x47f
github.com/pb33f/libopenapi-validator.(*validator).ValidateHttpResponse(0xc00125e280, 0xc0024b2900, 0xc002683560)
    /Users/runner/go/pkg/mod/github.com/pb33f/libopenapi-validator@v0.0.49/validator.go:116 +0xc5
github.com/k1LoW/runn.(*openAPI3Validator).ValidateResponse(0xc0014ac1d0, {0xc0024b2900?, 0xc002ad91a0?}, 0xc0024b2900, 0xc002683560)
    /Users/runner/work/runn/runn/http_validator.go:204 +0x5e
github.com/k1LoW/runn.(*httpRunner).run(0xc00107ab40, {0x26702c0, 0xc001a80f50}, 0xc0022c1c00, 0xc0023aa000)
    /Users/runner/work/runn/runn/http.go:515 +0xeaf
github.com/k1LoW/runn.(*httpRunner).Run(0xc00107ab40, {0x26702c0, 0xc001a80f50}, 0xc0023aa000)
    /Users/runner/work/runn/runn/http.go:377 +0x92
github.com/k1LoW/runn.(*operator).runStep.func1(0x221fe60?)
    /Users/runner/work/runn/runn/operator.go:185 +0xe5
github.com/k1LoW/runn.(*operator).runStep(0xc0022beb48, {0x26702c0, 0xc001a80f50}, 0x0, 0xc0023aa000)
    /Users/runner/work/runn/runn/operator.go:290 +0xda8
github.com/k1LoW/runn.(*operator).runInternal(0xc0022beb48, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc0022beb48, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*includeRunner).Run(0xc001cd3230, {0x26702c0, 0xc001a80f50}, 0xc0023f28c0)
    /Users/runner/work/runn/runn/include.go:155 +0xbcf
github.com/k1LoW/runn.(*operator).runStep.func1(0xc002d97680?)
    /Users/runner/work/runn/runn/operator.go:215 +0x705
github.com/k1LoW/runn.(*operator).runStep(0xc001494d88, {0x26702c0, 0xc001a80f50}, 0x0, 0xc0023f28c0)
    /Users/runner/work/runn/runn/operator.go:325 +0x81c
github.com/k1LoW/runn.(*operator).runInternal(0xc001494d88, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc001494d88, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*operators).runN.func1()
    /Users/runner/work/runn/runn/operator.go:1560 +0x21e
github.com/k1LoW/concgroup.(*Group).GoMulti.func1()
    /Users/runner/go/pkg/mod/github.com/k1!lo!w/concgroup@v1.1.0/concgroup.go:62 +0xeb
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96

goroutine 7337 [select]:
net/http.(*persistConn).roundTrip(0xc002560000, 0xc0029f71c0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2675 +0x979
net/http.(*Transport).roundTrip(0xc0019dedc0, 0xc00252bc20)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:608 +0x79a
net/http.(*Transport).RoundTrip(0xc00252bc20?, 0x2648b60?)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/roundtrip.go:17 +0x13
net/http.send(0xc00252b9e0, {0x2648b60, 0xc0019dedc0}, {0x1?, 0x494693?, 0x3c12900?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:259 +0x5e4
net/http.(*Client).send(0xc001ca8480, 0xc00252b9e0, {0xc00252b9e0?, 0x0?, 0x3c12900?})
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:180 +0x98
net/http.(*Client).do(0xc001ca8480, 0xc00252b9e0)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:724 +0x8dc
net/http.(*Client).Do(...)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:590
github.com/k1LoW/runn.(*httpRunner).run(0xc0022f7d40, {0x26702c0, 0xc001a80f50}, 0xc0021c9b80, 0xc0030ff2c0)
    /Users/runner/work/runn/runn/http.go:480 +0xccd
github.com/k1LoW/runn.(*httpRunner).Run(0xc0022f7d40, {0x26702c0, 0xc001a80f50}, 0xc0030ff2c0)
    /Users/runner/work/runn/runn/http.go:377 +0x92
github.com/k1LoW/runn.(*operator).runStep.func1(0x221fe60?)
    /Users/runner/work/runn/runn/operator.go:185 +0xe5
github.com/k1LoW/runn.(*operator).runStep(0xc001d15d48, {0x26702c0, 0xc001a80f50}, 0x0, 0xc0030ff2c0)
    /Users/runner/work/runn/runn/operator.go:290 +0xda8
github.com/k1LoW/runn.(*operator).runInternal(0xc001d15d48, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc001d15d48, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*includeRunner).Run(0xc001ca8870, {0x26702c0, 0xc001a80f50}, 0xc0019def00)
    /Users/runner/work/runn/runn/include.go:155 +0xbcf
github.com/k1LoW/runn.(*operator).runStep.func1(0xc001852600?)
    /Users/runner/work/runn/runn/operator.go:215 +0x705
github.com/k1LoW/runn.(*operator).runStep(0xc001494908, {0x26702c0, 0xc001a80f50}, 0x0, 0xc0019def00)
    /Users/runner/work/runn/runn/operator.go:325 +0x81c
github.com/k1LoW/runn.(*operator).runInternal(0xc001494908, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:1103 +0x688
github.com/k1LoW/runn.(*operator).run(0xc001494908, {0x26702c0, 0xc001a80f50})
    /Users/runner/work/runn/runn/operator.go:928 +0x247
github.com/k1LoW/runn.(*operators).runN.func1()
    /Users/runner/work/runn/runn/operator.go:1560 +0x21e
github.com/k1LoW/concgroup.(*Group).GoMulti.func1()
    /Users/runner/go/pkg/mod/github.com/k1!lo!w/concgroup@v1.1.0/concgroup.go:62 +0xeb
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
    /Users/runner/go/pkg/mod/golang.org/x/sync@v0.7.0/errgroup/errgroup.go:75 +0x96

goroutine 7339 [select]:
github.com/lestrrat-go/backoff/v2.(*controller).loop(0xc0017e13e0)
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:64 +0x185
created by github.com/lestrrat-go/backoff/v2.newController in goroutine 7337
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:46 +0x2a5

goroutine 8172 [select]:
net/http.(*persistConn).writeLoop(0xc002560000)
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:2444 +0xf0
created by net/http.(*Transport).dialConn in goroutine 8165
    /Users/runner/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:1800 +0x1585

goroutine 7326 [select]:
github.com/lestrrat-go/backoff/v2.(*controller).loop(0xc0012fde00)
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:64 +0x185
created by github.com/lestrrat-go/backoff/v2.newController in goroutine 7335
    /Users/runner/go/pkg/mod/github.com/lestrrat-go/backoff/v2@v2.0.8/controller.go:46 +0x2a5
k1LoW commented 4 months ago

@h6ah4i Thank you for your report!!

k1LoW commented 4 months ago

@h6ah4i Fixed at v0.104.1. Check it out if you like.

k1LoW commented 4 months ago

Close as the fixes to pb33f/libopenapi-validator have also been merged. If you encounter the same problem, please let me know. Thanks.