Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: rebuilds standard library inappropriately in modules mode #28333

Closed
svmax opened this issue Oct 23, 2018 · 22 comments
Closed

cmd/go: rebuilds standard library inappropriately in modules mode #28333

svmax opened this issue Oct 23, 2018 · 22 comments
Labels
FrozenDueToAge modules NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Milestone

Comments

@svmax
Copy link

svmax commented Oct 23, 2018

Please answer these questions before submitting your issue. Thanks!

What did you do?

package main

import (
	"log"
	"net/http"
)

func main() {
	log.Fatal(http.ListenAndServe(":8080", nil))
}

What did you expect to see?

Listening of http server

What did you see instead?

 net
/usr/local/go/src/net/cgo_bsd.go:11:10: fatal error: 'netdb.h' file not found
#include <netdb.h>
         ^~~~~~~~~
1 error generated.

System details

go version go1.11.1 darwin/amd64
GOARCH="amd64"
GOBIN="/Users/max/Projects/go/bin"
GOCACHE="/Users/max/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/max/Projects/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/max/Projects/edu/go/polygraph/go.mod"
GOROOT/bin/go version: go version go1.11.1 darwin/amd64
GOROOT/bin/go tool compile -V: compile version go1.11.1
uname -v: Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT 2018; root:xnu-4903.201.2~1/RELEASE_X86_64
ProductName:	Mac OS X
ProductVersion:	10.14
BuildVersion:	18A391
lldb --version: lldb-1000.11.37.1
  Swift-4.2
@svmax
Copy link
Author

svmax commented Oct 23, 2018

After Google search, I've decided to create this ticket, because INET don't know about this issue ....
From beginning, I've used 1.11 version, but after facing with this bug - made upgrade to the 1.11.1, but still have the same trouble.

@ianlancetaylor
Copy link
Contributor

What command did you run to get that error?

@bcmills bcmills changed the title Error when trying to start http server or make an request using net/http net/http: Error when trying to start http server or make an request using net/http Oct 23, 2018
@bcmills bcmills changed the title net/http: Error when trying to start http server or make an request using net/http net/http: Error when trying to start http server or make a request Oct 23, 2018
@bcmills bcmills added WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Oct 23, 2018
@bcmills bcmills added this to the Go1.12 milestone Oct 23, 2018
@svmax
Copy link
Author

svmax commented Oct 24, 2018

@ianlancetaylor just go build ./path/to/the/file.go. Listing of the file on top of the conversation

@svmax
Copy link
Author

svmax commented Oct 24, 2018

Go was installed using official bundle and tried with brew.... Nothing helps

@svmax
Copy link
Author

svmax commented Oct 24, 2018

I recently used MacOS 10.13 and everything worked fine .... Maybe after update to 10.14 some required by Go system dependencies was lost (I mean, Apple developers deprecated or changed some things and we got this issues)

@svmax
Copy link
Author

svmax commented Oct 24, 2018

Little bit about C

$(go env CC) --version:

clang version 5.0.1 (tags/RELEASE_501/final)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin

===

which $(go env CC):

/usr/local/opt/llvm/bin/clang

@agnivade agnivade removed the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Oct 24, 2018
@agnivade
Copy link
Contributor

agnivade commented Oct 24, 2018

Can you do a GOCACHE=off go build -x -v path/to/file.go ?

@agnivade agnivade added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Oct 24, 2018
@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade I've got

WORK=/var/folders/q4/gxzbpbqx7bgcllkbph02xcmm0000gn/T/go-build066535883
go: cannot use modules with build cache disabled

@agnivade
Copy link
Contributor

Since you are just compiling a single file, you don't need modules. Can you try without module mode ?

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade I have a multi bundled project, few entry points .... My code described above - just an example

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade Ok, I will in another project to run without modules

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade Yeah, without module mode - it is working. Compiled successfully

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade So, I've moved my project to the $GOPATH and it was compiled successfully. Looks like this is issue in module mode.

@svmax svmax changed the title net/http: Error when trying to start http server or make a request net/http: Error when trying to start http server or make a request (module mode) Oct 24, 2018
@agnivade
Copy link
Contributor

I am still unable to reproduce this.

In an empty dir, I copied your file. Then

go mod init .
GO111MODULE=on go build -x -v file.go

This prints a long log, but builds successfully. I am on linux though.

Can you try doing a go clean -i -r -modcache and then compiling again ?

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade Unfortunately the same error. I think it is can be reproduced with latest MacOS. By the way, it's worked before upgrade of OS.... Maybe something was changed into the OS core things... Because, i've defiged go.mod through go mod init, it was created file with module github.com/sviechnikov/project_name and all was fine

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade How do you think, it is can be an issue?
I've reinstalled xcode tools again (how told stackoverflow and my colleagues), but it's won't help

@svmax
Copy link
Author

svmax commented Oct 24, 2018

One more thing, I've searched for this file netdb.h and found it in /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/, but looks like go dependencies not looking there

@svmax
Copy link
Author

svmax commented Oct 24, 2018

how I understand, Clang expecting /usr/include to be this libraries folder .... Maybe I'm something missing, because Clang is not my strong point

@svmax
Copy link
Author

svmax commented Oct 24, 2018

@agnivade In module mode works with CGO_ENABLED=0 go build cmd/server/main.go

@svmax
Copy link
Author

svmax commented Oct 24, 2018

But I hope, this is temporary ...

@ianlancetaylor
Copy link
Contributor

ianlancetaylor commented Oct 24, 2018

Likely the same as #26988: in some cases the go tool is incorrectly deciding that it needs to rebuild the standard library.

@ianlancetaylor ianlancetaylor removed the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Oct 24, 2018
@ianlancetaylor ianlancetaylor changed the title net/http: Error when trying to start http server or make a request (module mode) cmd/go: rebuilds standard library inappropriately in modules mode Oct 24, 2018
@bcmills
Copy link
Contributor

bcmills commented Oct 24, 2018

Closing as duplicate of #26988.

@bcmills bcmills closed this as completed Oct 24, 2018
@golang golang locked and limited conversation to collaborators Oct 24, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge modules NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker
Projects
None yet
Development

No branches or pull requests

5 participants