From: BurtonQin Date: Tue, 21 Apr 2020 11:37:41 +0000 (+0000) Subject: cmd/go/internal/modfetch: add Unlock before return in checkModSum X-Git-Tag: go1.15beta1~465 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4f27e1d7aadba639cceaa93f77ec0c7ee3fee01b;p=gostls13.git cmd/go/internal/modfetch: add Unlock before return in checkModSum In cmd/go/internal/modfetch/fetch.go, `checkModSum()` forgets Unlock before return, which may lead to deadlock. https://github.com/golang/go/blob/876c1feb7d5e10a6ff831de9db19b9ff0ea92fa8/src/cmd/go/internal/modfetch/fetch.go#L514-L520 The fix is to add `goSum.mu.Unlock()` before return. Change-Id: I855b1c1bc00aeada2c1e84aabb5328f02823007d GitHub-Last-Rev: afeb3763dd1d08c4c15c4c4183fd5705da60dc4c GitHub-Pull-Request: golang/go#38563 Reviewed-on: https://go-review.googlesource.com/c/go/+/229219 Run-TryBot: Jay Conrod TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod --- diff --git a/src/cmd/go/internal/modfetch/fetch.go b/src/cmd/go/internal/modfetch/fetch.go index 61759c0e6b..fd7a5cef83 100644 --- a/src/cmd/go/internal/modfetch/fetch.go +++ b/src/cmd/go/internal/modfetch/fetch.go @@ -514,6 +514,7 @@ func checkModSum(mod module.Version, h string) error { goSum.mu.Lock() inited, err := initGoSum() if err != nil { + goSum.mu.Unlock() return err } done := inited && haveModSumLocked(mod, h)