Skip to content

runtime/race: Potential race in math/big during TLS handshake #60247

@Akash-Pateria

Description

@Akash-Pateria

What version of Go are you using (go version)?

$ go version
go version go1.12.17

Does this issue reproduce with the latest release?

The issue is hard to reproduce even with the above Go version due to its random nature. We can't roll out the service with the latest Go without knowing the actual cause.

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
x86_64 GNU/Linux

What did you do?

Got a gRPC server configured with TLS that gets hung on a random set of hosts in the production fleet.

What did you expect to see?

gRPC server responding to requests without getting stuck due to any race condition.

What did you see instead?

Application/process hungs. pprof shows the following traces:

-----------+-------------------------------------------------------
      10ms   runtime.racefuncexit
             sync.(*Pool).Put
             math/big.putNat
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan::ThreadClock::release
             runtime._System
-----------+-------------------------------------------------------
      40ms   __tsan_go_atomic32_compare_exchange
             runtime._System
-----------+-------------------------------------------------------
      10ms   math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).addJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.basicMul
             math/big.nat.mul
             math/big.(*Int).Mul
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      40ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan::ThreadClock::release
             runtime._System
-----------+-------------------------------------------------------
      10ms   runtime.raceread
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   runtime.procyield
             sync.runtime_doSpin
             sync.(*Mutex).Lock
             sync.(*Pool).getSlow
             sync.(*Pool).Get
             math/big.getNat
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan::MetaMap::GetAndLock
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan::ThreadClock::release
             runtime._System
-----------+-------------------------------------------------------
      10ms   sync.(*Mutex).Lock
             sync.(*Pool).getSlow
             sync.(*Pool).Get
             math/big.getNat
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   runtime.mallocgc
             runtime.makeslice
             math/big.nat.make
             math/big.nat.sub
             math/big.(*Int).Sub
             crypto/elliptic.(*CurveParams).addJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   racecall
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_go_atomic32_fetch_add
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_func_enter
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_func_exit
             runtime._System
-----------+-------------------------------------------------------
      10ms   runtime.scanobject
             runtime.gcDrain
             runtime.gcBgMarkWorker.func2
             runtime.systemstack
             runtime.gcBgMarkWorker
-----------+-------------------------------------------------------
      10ms   racecalladdr
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan_write
             runtime._System
-----------+-------------------------------------------------------
      10ms   math/big.nat.make
             math/big.getNat
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   racecallatomic
             sync/atomic.CompareAndSwapInt32
             sync.(*Mutex).Lock
             sync.(*Pool).getSlow
             sync.(*Pool).Get
             math/big.getNat
             math/big.nat.divLarge
             math/big.nat.div
             math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan::Acquire
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan::Mutex::Lock
             runtime._System
-----------+-------------------------------------------------------
      10ms   math/big.(*Int).QuoRem
             math/big.(*Int).Mod
             crypto/elliptic.(*CurveParams).addJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.basicMul
             math/big.nat.mul
             math/big.(*Int).Mul
             crypto/elliptic.(*CurveParams).doubleJacobian
             crypto/elliptic.(*CurveParams).ScalarMult
             crypto/elliptic.(*CurveParams).ScalarBaseMult
             crypto/elliptic.GenerateKey
             crypto/tls.generateECDHEParameters
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.basicSqr
             math/big.nat.sqr
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan_write
             runtime._System
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   racecall
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   __tsan_read
             runtime._System
-----------+-------------------------------------------------------
      10ms   runtime.raceread
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   runtime.memmove
             runtime.growslice
             crypto/tls.(*finishedHash).Write
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.addMulVVW
             math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   math/big.nat.montgomery
             math/big.nat.expNNMontgomery
             math/big.nat.expNN
             math/big.(*Int).Exp
             crypto/rsa.decrypt
             crypto/rsa.decryptAndCheck
             crypto/rsa.SignPKCS1v15
             crypto/rsa.(*PrivateKey).Sign
             crypto/tls.(*ecdheKeyAgreement).generateServerKeyExchange
             crypto/tls.(*serverHandshakeState).doFullHandshake
             crypto/tls.(*serverHandshakeState).handshake
             crypto/tls.(*Conn).serverHandshake
             crypto/tls.(*Conn).Handshake
             ./vendor/google.golang.org/grpc/credentials.(*tlsCreds).ServerHandshake
             ./vendor/google.golang.org/grpc.(*Server).useTransportAuthenticator
             ./vendor/google.golang.org/grpc.(*Server).handleRawConn
             ./vendor/google.golang.org/grpc.(*Server).Serve.func3
-----------+-------------------------------------------------------
      10ms   __tsan::MemoryAccessRange
             runtime._System
-----------+-------------------------------------------------------

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeWaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.compiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions