-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
builder: upgrade to go1.12.5 #37966
builder: upgrade to go1.12.5 #37966
Conversation
@bdarnell Are there any known go1.12 issues still open? |
This isn't good. The run below was using a cockroach binary built with go1.12.5:
The same roachtest run against a cockroach binary built with go1.11.6:
|
Nothing obvious showed up on cpu profiles. The mutex contention profile shows that the
On go1.11.6 that function looks like:
All of the excess time is being spent in
Disassembly shows:
Not sure what is going on here. Perhaps the stacks in go1.12 are deeper causing lots of stack growth to happen in |
Yep, It is pretty incredible that disabling |
c4b4393
to
8d4c7ab
Compare
8d4c7ab
to
93ab23d
Compare
Release note (general change): Upgrade the build environment to use go1.12.5.
93ab23d
to
d0b7737
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: complete! 0 of 0 LGTMs obtained (waiting on @bdarnell)
pkg/util/log/clog.go, line 364 at r1 (raw file):
// NewEntryDecoder creates a new instance of EntryDecoder. func NewEntryDecoder(in io.Reader) *EntryDecoder { d := &EntryDecoder{scanner: bufio.NewScanner(in), re: entryRE.Copy()}
This was to appease one of the linters: pkg/util/log/clog.go:364:56: entryRE.Copy is deprecated: In earlier releases, when using a Regexp in multiple goroutines, giving each goroutine its own copy helped to avoid lock contention. As of Go 1.12, using Copy is no longer necessary to avoid lock contention. Copy may still be appropriate if the reason for its use is to make two copies with different Longest settings. (SA1019)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 3 of 3 files at r1.
Reviewable status: complete! 0 of 0 LGTMs obtained
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But knowing more about Go assembly now, I think the right thing to do is to implement growStack in assembly
Funny, I was going to say that knowing more about go assembly, I think the right thing to do is implement growStack in C. :)
Reviewable status: complete! 0 of 0 LGTMs obtained
bors r=bdarnell |
37966: builder: upgrade to go1.12.5 r=bdarnell a=petermattis Release note (general change): Upgrade the build environment to use go1.12.5. Co-authored-by: Peter Mattis <[email protected]>
Build succeeded |
Release note (general change): Upgrade the build environment to use
go1.12.5.