]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.11] cmd/go: fix modload infinite directory loop
authorDaniel Martí <mvdan@mvdan.cc>
Sun, 19 Aug 2018 12:53:57 +0000 (13:53 +0100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 21 Aug 2018 02:25:39 +0000 (02:25 +0000)
commitece4cdb9cb5d49efb1a7a43cc7d0501b0f3a9f60
treef4c88b12fd062504fa9fe581c6ad18dbd34673a3
parent673a05e4dfcbaa3a64f5a5eb38444aff593714e0
[release-branch.go1.11] cmd/go: fix modload infinite directory loop

It is possible to enter the parent-walking directory loop in a way that
it will loop forever - if mdir is empty, and d reaches ".". To avoid
this, make sure that the 'd = filepath.Dir(d)' step only happens if the
parent directory is actually different than the current directory.

This fixes some of the tests like TestImport/golang.org_x_net_context,
which were never finishing before.

While at it, also fix TestImport/golang.org_x_net, which seems to have
the wrong expected error. The root of the x/net repo doesn't have a
go.mod file, nor is part of a module itself, so it seems like the
expected error should reflect that.

After these two changes, 'go test cmd/go/internal/modload' passes on my
linux/amd64 machine.

Fixes #27080.

Change-Id: Ie8bab0f9fbc9f447844cbbc64117420d9087db1b
Reviewed-on: https://go-review.googlesource.com/129778
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
(cherry picked from commit 692307aa839252285ebb91b4072e3c05ff554341)
Reviewed-on: https://go-review.googlesource.com/130275
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
src/cmd/go/internal/modload/import.go
src/cmd/go/internal/modload/import_test.go