- 17 Jul, 2019 3 commits
-
-
Joe Tsai authored
In Go1.12 and below, the logic in ReverseProxy.ServeHTTP would always allocate request.Header even if it were not present in the incoming request. CL 174324 added http.Request.Clone and re-factors ReverseProxy.ServeHTTP to use the new Clone method. However, the new Clone logic is not equivalent to the former logic. We preserve former semantics by explicitly allocating the Header map if nil. Fixes #33142 Change-Id: I356f94a915dd9779584ce3fe31e56e5474b9ad37 Reviewed-on: https://go-review.googlesource.com/c/go/+/186437 Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Alberto Donizetti authored
While it's true that CL 168479 was also backported to 1.12, this is irrelevant for the Go1.13 release notes. Change-Id: I044be69f8f2bc005f58a0d63db05129add15f674 Reviewed-on: https://go-review.googlesource.com/c/go/+/186138Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Dmitri Shuralyov authored
This update has been automatically generated using the updatecontrib command: cd gotip go run golang.org/x/build/cmd/updatecontrib With minor manual changes to canonicalize letter case for a few names. Actions taken (relative to CONTRIBUTORS at origin/master): Added Ahsun Ahmed <ahmed.ahsun@gmail.com> Added Al Cutter <al@google.com> Added Alex Tokarev <aleksator@gmail.com> Added Alexander Lourier <aml@rulezz.ru> Added Alexander Rakoczy <alex@golang.org> Added Andrei Matei <andrei@cockroachlabs.com> Added Andrei Vagin <avagin@google.com> Added Andrew Z Allen <me@andrewzallen.com> Added Aofei Sheng <aofei@aofeisheng.com> Added Arash Bina <arash@arash.io> Added Benjamin Peterson <benjamin@python.org> Added Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> Added Brandon Ryan <bjryan19@gmail.com> Added Bryan Heden <b.heden@gmail.com> Added Carlos Eduardo <me@carlosedp.com> Added Carrie Bynon <cbynon@gmail.com> Added Chris Marchesi <chrism@vancluevertech.com> Added Colin Arnott <colin@urandom.co.uk> Added Daniel Cormier <danielc@knowbe4.com> Added Daniel Langner <s8572327@gmail.com> Added Daniel Lublin <daniel@lublin.se> Added Darren Grant <darren.e.grant@gmail.com> Added Derek Phan <derekphan94@gmail.com> Added Dmitri Goutnik <dgoutnik@gmail.com> Added Dmitry Mottl <dmitry.mottl@gmail.com> Added Eli Bendersky <eliben@google.com> Added Evan Digby <evandigby@gmail.com> Added Fedor Korotkiy <dartslon@gmail.com> Added Felix Bünemann <Felix.Buenemann@gmail.com> Added Francesco Renzi <rentziass@gmail.com> Added Gabriel Guzman <gabe.guzman@gmail.com> Added Gabriel Nelle <tehsphinx@web.de> Added Gernot Vormayr <gvormayr@gmail.com> Added GitHub User ZZMarquis (7624583) <zhonglingjian3821@163.com> Added GitHub User alkesh26 (1019076) <alkesh26@gmail.com> Added GitHub User bakape (7851952) <bakape@gmail.com> Added GitHub User frennkie (6499251) <mail@rhab.de> Added GitHub User hengwu0 (41297446) <41297446+hengwu0@users.noreply.github.com> Added GitHub User kazyshr (30496953) <kazyshr0301@gmail.com> Added GitHub User linguohua (3434367) <lghchinaidea@gmail.com> Added GitHub User micnncim (21333876) <micnncim@gmail.com> Added Gordon Tyler <gordon@doxxx.net> Added Greg Thelen <gthelen@google.com> Added Haosdent Huang <haosdent@gmail.com> Added Hasan Ozgan <hasan@ozgan.net> Added Henry Wong <liushuai.wang@elastic.co> Added Horst Rutter <hhrutter@gmail.com> Added Ivan Osadchiy <ivan.osadchii@gmail.com> Added JT Olio <hello@jtolio.com> Added Jacob Blain Christen <dweomer5@gmail.com> Added Jacob Walker <jacobwalker0814@gmail.com> Added James Nugent <james@jen20.com> Added Jannis Andrija Schnitzer <jannis@schnitzer.im> Added Jean-François Bustarret <jf@bustarret.com> Added Jeremy Jay <jeremy@pbnjay.com> Added Jeroen Simonetti <jeroen@simonetti.nl> Added Jingnan Si <jingnan.si@gmail.com> Added Jinkun Zhang <franksnolf@gmail.com> Added John Moore <johnkenneth.moore@gmail.com> Added John Weldon <johnweldon4@gmail.com> Added Jonathon Lacher <jonathon.lacher@gmail.com> Added Jordan Liggitt <liggitt@google.com> Added Joshua M. Clulow <josh.clulow@joyent.com> Added Juraj Sukop <sukop@users.noreply.github.com> Added Justin Li <git@justinli.net> Added Kai Dong <dokia2357@gmail.com> Added Kenichi Tsunokawa <kenichi.tsunokawa@gmail.com> Added Kenta Mori <zoncoen@gmail.com> Added Ketan Parmar <ketanbparmar@gmail.com> Added Kirill Motkov <Motkov.Kirill@gmail.com> Added Kshitij Saraogi <kshitijsaraogi@gmail.com> Added Leonardo Comelli <leonardo.comelli@gmail.com> Added Lorenz Nickel <mail@lorenznickel.de> Added Luka Zitnik <luka.zitnik@gmail.com> Added Luke Champine <luke.champine@gmail.com> Added Madhu Rajanna <madhupr007@gmail.com> Added Marat Khabibullin <marat.khabibullin@jetbrains.com> Added Mark Villacampa <m@markvillacampa.com> Added Max Semenik <maxsem.wiki@gmail.com> Added Maxim Eryomenko <moeryomenko@gmail.com> Added Michael Cook <code@mdcook.net> Added Michael Vogt <mvo@ubuntu.com> Added Mickael KERJEAN <mickael.kerjean@gmail.com> Added Mickey Reiss <mickeyreiss@gmail.com> Added Mihai Moldovan <ionic@ionic.de> Added Mirko Hansen <baaazen@gmail.com> Added Muir Manders <muir@mnd.rs> Added Mykhailo Lesyk <mikhail@lesyk.org> Added Nick Anthony <Liberatys@outlook.com> Added Nikita Kryuchkov <nkryuchkov10@gmail.com> Added Nir Soffer <nirsof@gmail.com> Added Norman B. Lancaster <qbradq@gmail.com> Added Patrick Barker <barkerp@vmware.com> Added Patrik Lundin <patrik@sigterm.se> Added Petr Jediný <petr.jediny@gmail.com> Added Robert Ayrapetyan <robert.ayrapetyan@gmail.com> Added Robert van Gent <rvangent@google.com> Added Rohan Verma <rohanverma2004@gmail.com> Added Romain Baugue <romain.baugue@elwinar.com> Added Sad Pencil <qh06@qq.com> Added Segev Finer <segev208@gmail.com> Added Sergey Dobrodey <sergey.dobrodey@synesis.ru> Added Sergey Yanykin <syanykin@ozon.ru> Added Shawn Elliott <selliott@microsoft.com> Added Shengjing Zhu <zsj950618@gmail.com> Added Shubham Sharma <shubham.sha12@gmail.com> Added Stephan Zuercher <zuercher@gmail.com> Added Steve Mynott <steve.mynott@gmail.com> Added Tai Le <letientai299@gmail.com> Added Todd Kulesza <tkulesza@google.com> Added Tom Anthony <git@tomanthony.co.uk> Added Tooru Takahashi <tooru.takahashi134@gmail.com> Added Udalov Max <re.udalov@gmail.com> Added Valentin Vidic <vvidic@valentin-vidic.from.hr> Added Vivek Sekhar <vsekhar@google.com> Added WEI Xikai <xykwei@gmail.com> Added Wenlei (Frank) He <wlhe@google.com> Added Wenzel Lowe <lowewenzel@gmail.com> Added Yang Tian <linuxty@gmail.com> Added Yasser Abdolmaleki <yasser@yasser.ca> Added Zach Jones <zachj1@gmail.com> Added adarsh ravichandran <adarshravichandran91@gmail.com> Added berkant ipek <41230766+0xbkt@users.noreply.github.com> Added karthik nayak <karthik.188@gmail.com> Added marius a. eriksen <marius@grailbio.com> Added Максадбек Ахмедов <a.maksadbek@gmail.com> Used GitHub User ZZMarquis (7624583) form for ZZMarquis <zhonglingjian3821@163.com> https://github.com/golang/go/commit/b00ef3b865 [go] Used GitHub User alkesh26 (1019076) form for alkesh26 <alkesh26@gmail.com> https://github.com/golang/go/commit/c7f69a2897 [go] Used GitHub User bakape (7851952) form for bakape <bakape@gmail.com> https://github.com/golang/go/commit/27e444d5e6 [go] Used GitHub User frennkie (6499251) form for frennkie <mail@rhab.de> https://github.com/golang/go/commit/ee46250e06 [go] Used GitHub User hengwu0 (41297446) form for hengwu0 <41297446+hengwu0@users.noreply.github.com> https://github.com/golang/go/commit/95d4e6158b [go] Used GitHub User kazyshr (30496953) form for kazyshr <kazyshr0301@gmail.com> https://github.com/golang/tools/commit/0fdf0c73 [tools] Used GitHub User linguohua (3434367) form for linguohua <lghchinaidea@gmail.com> https://github.com/golang/tools/commit/97de5656 [tools] Used GitHub User micnncim (21333876) form for micnncim <micnncim@gmail.com> https://github.com/golang/tools/commit/15d5d381 [tools] Used GitHub name "Akhil Indurti" for smasher164 <aindurti@gmail.com> https://github.com/golang/go/commit/5ca44dc403 [build go] Used GitHub name "Carlos Eduardo" for CarlosEDP <me@carlosedp.com> https://github.com/golang/net/commit/018c4d4 [net] Used GitHub name "Ivan Markin" for nogoegst <nogoegst@users.noreply.github.com> https://github.com/golang/go/commit/a1addf15df [go] Used GitHub name "Jean-François Bustarret" for jfbus <jf@bustarret.com> https://github.com/golang/go/commit/825ff1e317 [go] Used GitHub name "Jinkun Zhang" for smileeye <franksnolf@gmail.com> https://github.com/golang/go/commit/607493bed6 [go] Used GitHub name "John Moore" for guitarbum722 <johnkenneth.moore@gmail.com> https://github.com/golang/go/commit/44c9354c5a [go] Used GitHub name "Keiji Yoshida" for yosssi <yoshida.keiji.84@gmail.com> https://github.com/golang/lint/commit/ac6833c [lint] Used GitHub name "Kenta Mori" for zoncoen <zoncoen@gmail.com> https://github.com/golang/net/commit/fe579d4 [net] Used GitHub name "Kirill Motkov" for Motkov.Kirill <Motkov.Kirill@gmail.com> https://github.com/golang/go/commit/0ff0df8be3 [go] Used GitHub name "Luke Champine" for lukechampine <luke.champine@gmail.com> https://github.com/golang/go/commit/9d40fadb1c [crypto go] Used GitHub name "Michalis Kargakis" for kargakis <mkargaki@redhat.com> https://github.com/golang/go/commit/e243d242d7 [go] Used GitHub name "Nick Anthony" for Liberatys <Liberatys@outlook.com> https://github.com/golang/go/commit/62ddf7d0c5 [go] Used GitHub name "Robert Ayrapetyan" for rayrapetyan <robert.ayrapetyan@gmail.com> https://github.com/golang/sys/commit/bf70e46 [sys] Used GitHub name "Robin Eklind" for mewmew <rnd0x00@gmail.com> https://github.com/golang/go/commit/b8620afb8d [blog go proposal.git] Used GitHub name "Sergey Dobrodey" for sergeydobrodey <sergey.dobrodey@synesis.ru> https://github.com/golang/net/commit/e869164 [net] Used GitHub name "Tai Le" for Tai <letientai299@gmail.com> https://github.com/golang/build/commit/1b388d2 [build tools] Used GitHub name "WEI Xikai" for ShiKaiWi <xykwei@gmail.com> https://github.com/golang/go/commit/518ee55d78 [go] Used GitHub name "Yang Tian" for taoyuanyuan <linuxty@gmail.com> https://github.com/golang/go/commit/5eeb372418 [go] Used GitHub name "Zach Jones" for zdjones <zachj1@gmail.com> https://github.com/golang/go/commit/c178389604 [go] Updates #12042 Change-Id: Ic220d997a0dc3bf4109ab964cbb6a25ea5c0c9da Reviewed-on: https://go-review.googlesource.com/c/go/+/186397Reviewed-by: Alexander Rakoczy <alex@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 16 Jul, 2019 4 commits
-
-
Jay Conrod authored
Changes "was loaded as" to "was required as". This is slightly more precise, since it hints at a requirement edge in the module version graph. Updates #28489 Change-Id: I636268c33f1ea9858c214fe275f271538186ed6d Reviewed-on: https://go-review.googlesource.com/c/go/+/186377 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Cherry Zhang authored
With gccgo, if we generate getg inlined, the backend may cache the address of the TLS variable, which will become invalid after a thread switch. Currently there is no known bug for this. But if we didn't implement this carefully, we may get subtle bugs. This CL adds a test that will fail loudly if this is wrong. (See also https://go.googlesource.com/gofrontend/+/refs/heads/master/libgo/runtime/proc.c#333 and an incorrect attempt CL 185337.) Note: at least on Linux/AMD64, even with an incorrect implementation, this only fails if the test is compiled with -fPIC, which is not the default setting for gccgo test suite. So some manual work is needed. Maybe we could extend the test suite to run the runtime test with more settings (e.g. PIC and static). Change-Id: I459a3b4c31f09b9785c0eca19b7756f80e8ef54c Reviewed-on: https://go-review.googlesource.com/c/go/+/186357 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Bryan C. Mills authored
Do not allow a pseudo-version derived from a canonical tag to refer to the same revision as the tag itself. It's unnecessary (because canonical tags already have a total ordering) and confusing (the pseudo-version appears to come after the tag, but actually refers to the exact same revision). Updates #32879 Updates #27173 Change-Id: I02befedbe89c8819bdd93e470783ce63fc813193 Reviewed-on: https://go-review.googlesource.com/c/go/+/184720 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Jay Conrod authored
This error occurs when a module is loaded with one name (for example, github.com/golang/lint) but declares a different path in its go.mod (golang.org/x/lint). The current text "unexpected module path" is confusing. It doesn't explain why the path was unexpected, and it's not clear what was expected. With this change, the error text includes the module and version containing the go.mod file with the error, the declared module path, and the loaded module path. The paths are vertically aligned so differences are visually obvious. As with other module version errors, the shortest chain of requirements is printed. This change supercedes CL 158477. Fixes #28489 Change-Id: Ieb07d00bcae182376d7be6aad111c84fbf784354 Reviewed-on: https://go-review.googlesource.com/c/go/+/185985 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
- 15 Jul, 2019 6 commits
-
-
Filippo Valsorda authored
Updates #32716 Change-Id: Ia0c03918e8f2da4d9824c49c6d4cfca1b0787b0a Reviewed-on: https://go-review.googlesource.com/c/go/+/184102Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Ian Lance Taylor authored
These functions are compiler generated, and as such are only available in the internal ABI. Doing this avoids generating an alias symbol. Doing that avoids confusion between unmangled and mangled type symbols. Fixes #30768 Change-Id: I197a5ba6403aac11989ffa951dbe35bd0506de91 Reviewed-on: https://go-review.googlesource.com/c/go/+/186077 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Bryan C. Mills authored
If the module path declared in the go.mod file does not match the path we are trying to resolve, a build using that module is doomed to fail. Since we know that the module path does not match in the underlying repo, we also know that the requested module does not exist at the requested version. Therefore, we should reject that version in Stat with a “not exist” error — sooner rather than later — so that modload.Query will continue to check other candidate paths (for example, with a major-version suffix added or removed). Fixes #33099 Change-Id: I43c980f78ed75fa6ace90f237cc3aad46c22d83a Reviewed-on: https://go-review.googlesource.com/c/go/+/186237 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Filippo Valsorda authored
Session resumption is not a reliable TLS behavior: the server can decide to reject a session ticket for a number of reasons, or no reason at all. This makes this non-hermetic test extremely brittle. It's currently broken on the builders for both TLS 1.2 and TLS 1.3, and I could reproduce the issue for TLS 1.3 only. As I was debugging it, it started passing entirely on my machine. In practice, it doesn't get us any coverage as resumption is already tested with the recorded exchange tests, and TestVerifyHostname still provides a smoke test checking that we can in fact talk TLS. Fixes #32978 Change-Id: I63505e22ff7704f25ad700d46e4ff14850ba5d3c Reviewed-on: https://go-review.googlesource.com/c/go/+/186239 Run-TryBot: Filippo Valsorda <filippo@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Bryan C. Mills authored
This is a more minimial fix for the immediate symptom of 32917 and 30590, but does not improve 'list -e' behavior or error messages resulting from other package loading issues. Fixes #32917 Fixes #30590 Change-Id: I6088d14d864410159ebf228d9392d186322fd2a5 Reviewed-on: https://go-review.googlesource.com/c/go/+/185417 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
LE Manh Cuong authored
The go test result must not be cached when each of known variables to go command change. To do this, add all known variables to test metadata. Fixes #32285 Change-Id: I90be6a72f46c42d965aec4fed534c0623244cd3d Reviewed-on: https://go-review.googlesource.com/c/go/+/179040 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
- 14 Jul, 2019 1 commit
-
-
Alberto Donizetti authored
Change-Id: I465f10533cc76d8160e56bc49eabaf8127ac4e61 Reviewed-on: https://go-review.googlesource.com/c/go/+/186137Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
- 12 Jul, 2019 3 commits
-
-
Jay Conrod authored
Add "upgrade" and "patch" to 'go help modules' section 'Module queries'. Also explicitly call out the fact that @v2 will select the latest version starting with v2, not the branch named v2, since this is a common source of confusion. Fixes #33010 Change-Id: I2fe27543b81a160fb6f6b8e8444a7a35f3661433 Reviewed-on: https://go-review.googlesource.com/c/go/+/185979 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Ian Lance Taylor authored
We already skipped rewriting the call if there were fewer args than parameters. But we can also get a cgo crash if there are more args, if at least one of the extra args uses a name qualified with "C.". Skip the rewrite, since the build will fail later anyhow. Fixes #33061 Change-Id: I62ff3518b775b502ad10c2bacf9102db4c9a531c Reviewed-on: https://go-review.googlesource.com/c/go/+/185797 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Norman B. Lancaster authored
Go 1.14 will no longer run on Native Client (NaCl). Updating the 1.13 release notes to indicate this. See #30439. Fixes #32948 Change-Id: Ia147bb053adc098bd696dbdb01553c23222f8134 Reviewed-on: https://go-review.googlesource.com/c/go/+/185537Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
- 11 Jul, 2019 2 commits
-
-
Cherry Zhang authored
Gccgo generates incorrect type equality functions for some types. CL 185817 fixes it. This CL adds a test. Updates #33062. Change-Id: Id445c5d44a437512c65c46a029e49b7fc32e4d89 Reviewed-on: https://go-review.googlesource.com/c/go/+/185818 Run-TryBot: Cherry Zhang <cherryyz@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Clément Chigot authored
This test sometimes times out when the machine is busy. The reason behind is still a bit blurry. But it seems to comes from the fact that on AIX, once a listen is performed a socket, every connection will be accepted even before an accept is made (which only occurs when a machine is busy). On Linux, a socket is created as a "passive socket" which seems to wait for the accept before allowing incoming connections. Updates #29685 Change-Id: I41b053b7d5f5b4420b72d6a217be72e41220d769 Reviewed-on: https://go-review.googlesource.com/c/go/+/185717 Run-TryBot: Clément Chigot <clement.chigot@atos.net> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 10 Jul, 2019 6 commits
-
-
Francesco Renzi authored
Update NewReplacer documentation to specify that in the case of multiple matches at the same position, the matching old/new pair that appears first in NewReplacer arguments takes precedence. Fixes #32699 Change-Id: I9d0616d28e5cd8c9bfa301be201f2b0ebf361dff Reviewed-on: https://go-review.googlesource.com/c/go/+/185099Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Than McIntosh authored
Updates #33013 Change-Id: I3db062b37860bb0c6c99a553408b47cf0313531e Reviewed-on: https://go-review.googlesource.com/c/go/+/185517 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Cherry Zhang authored
Gccgo CL 184998 added optimizations for one- and two-case select statements. But it didn't handle break statement in the select case correctly. The fix is CL 185519. This CL adds a test. Change-Id: Ide1b199f106172b41dd77c1f6e0d662fccdd8cc5 Reviewed-on: https://go-review.googlesource.com/c/go/+/185520 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Bryan C. Mills authored
Change-Id: I6cf66870952d4c652912dd50a0b9af41bdc79dce Reviewed-on: https://go-review.googlesource.com/c/go/+/185346 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
Fixes #32239 Change-Id: I5723abaa9b6bed7e8fb2d95f749a4e03ecc8741b Reviewed-on: https://go-review.googlesource.com/c/go/+/183841 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Austin Clements authored
This adds comments explaining why it's important that some panics are allowed in the runtime (even though this isn't ideal). Change-Id: I04c6fc4f792f3793f951619ccaea6bfef2f1763c Reviewed-on: https://go-review.googlesource.com/c/go/+/181737Reviewed-by: Keith Randall <khr@golang.org>
-
- 09 Jul, 2019 2 commits
-
-
Gernot Vormayr authored
According to the documentation "When passing a pointer to a field in a struct, the Go memory in question is the memory occupied by the field, not the entire struct.". checkAddr states that this should also work with type conversions, which is implemented in isType. However, ast.StarExpr must be enclosed in ast.ParenExpr according to the go spec (see example below), which is not considered in the checks. Example: // struct Si { int i; int *p; }; void f(struct I *x) {} import "C" type S { p *int i C.struct_Si } func main() { v := &S{new(int)} C.f((*C.struct_I)(&v.i)) // <- panic } This example will cause cgo to emit a cgoCheck that checks the whole struct S instead of just S.i causing the panic "cgo argument has Go pointer to Go pointer". This patch fixes this situation by adding support for ast.ParenExpr to isType and adds a test, that fails without the fix. Fixes #32970. Change-Id: I15ea28c98f839e9fa708859ed107a2e5f1483133 Reviewed-on: https://go-review.googlesource.com/c/go/+/185098 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
LE Manh Cuong authored
For OLSH/ORSH, the right node is not a uintptr-typed. However, unsafeValue still be called recursively for it, causing the compiler crashes. To fixing, the right node only needs to be evaluated for side-effects, so just discard its value. Fixes #32959 Change-Id: I34d5aa0823a0545f6dad1ec34774235ecf11addc Reviewed-on: https://go-review.googlesource.com/c/go/+/185039 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
- 08 Jul, 2019 5 commits
-
-
Agniva De Sarker authored
This reverts commit https://golang.org/cl/161177/. Reason for revert: this led to non-contiguous comments spaced by an empty line to be grouped into a single CommentGroup Fixes #32944 Updates #10858 Change-Id: I5e16663b308c3b560496da8e66c33befdf9ed9dd Reviewed-on: https://go-review.googlesource.com/c/go/+/185040Reviewed-by: Robert Griesemer <gri@golang.org>
-
Alexander Rakoczy authored
Change-Id: Id5d2f4cc6bc310bed2516ce0f50c395802475f66 Reviewed-on: https://go-review.googlesource.com/c/go/+/185258Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
-
Alexander Rakoczy authored
Change-Id: I1b2e369befc58b3f88ac201442a2d9f76d87d54e Reviewed-on: https://go-review.googlesource.com/c/go/+/185257Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
-
Russ Cox authored
There were at least three races in the implementation of the pool of idle HTTP connections before this CL. The first race is that HTTP/2 connections can be shared for many requests, but each requesting goroutine would take the connection out of the pool and then immediately return it before using it; this created unnecessary, tiny little race windows during which another goroutine might dial a second connection instead of reusing the first. This CL changes the idle pool to just leave the HTTP/2 connection in the pool permanently (until there is reason to close it), instead of doing the take-it-out-put-it-back dance race. The second race is that “is there an idle connection?” and “register to wait for an idle connection” were implemented as two separate steps, in different critical sections. So a client could end up registered to wait for an idle connection and be waiting or perhaps dialing, not having noticed the idle connection sitting in the pool that arrived between the two steps. The third race is that t.getIdleConnCh assumes that the inability to send on the channel means the client doesn't need the result, when it could mean that the client has not yet entered the select. That is, the main dial does: idleConnCh := t.getIdleConnCh(cm) select { case v := <-dialc: ... case pc := <-idleConnCh ... ... } But then tryPutIdleConn does: waitingDialer := t.idleConnCh[key] // what getIdleConnCh(cm) returned select { case waitingDialer <- pconn: // We're done ... return nil default: if waitingDialer != nil { // They had populated this, but their dial won // first, so we can clean up this map entry. delete(t.idleConnCh, key) } } If the client has returned from getIdleConnCh but not yet reached the select, tryPutIdleConn will be unable to do the send, incorrectly conclude that the client does not care anymore, and put the connection in the idle pool instead, again leaving the client dialing unnecessarily while a connection sits in the idle pool. (It's also odd that the success case does not clean up the map entry, and also that the map has room for only a single waiting goroutine for a given host.) None of these races mattered too much before Go 1.11: at most they meant that connections were not reused quite as promptly as possible, or a few more than necessary would be created. But Go 1.11 added Transport.MaxConnsPerHost, which limited the number of connections created for a given host. The default is 0 (unlimited), but if a user did explicitly impose a low limit (2 is common), all these misplaced conns could easily add up to the entire limit, causing a deadlock. This was causing intermittent timeouts in TestTransportMaxConnsPerHost. The addition of the MaxConnsPerHost support added its own races. For example, here t.incHostConnCount could increment the count and return a channel ready for receiving, and then the client would not receive from it nor ever issue the decrement, because the select need not evaluate these two cases in order: select { case <-t.incHostConnCount(cmKey): // count below conn per host limit; proceed case pc := <-t.getIdleConnCh(cm): if trace != nil && trace.GotConn != nil { trace.GotConn(httptrace.GotConnInfo{Conn: pc.conn, Reused: pc.isReused()}) } return pc, nil ... } Obviously, unmatched increments are another way to get to a deadlock. TestTransportMaxConnsPerHost deadlocked approximately 100% of the time with a small random sleep added between incHostConnCount and the select: ch := t.incHostConnCount(cmKey): time.Sleep(time.Duration(rand.Intn(10))*time.Millisecond) select { case <-ch // count below conn per host limit; proceed case pc := <-t.getIdleConnCh(cm): ... } The limit also did not properly apply to HTTP/2, because of the decrement being attached to the underlying net.Conn.Close and net/http not having access to the underlying HTTP/2 conn. The alternate decrements for HTTP/2 may also have introduced spurious decrements (discussion in #29889). Perhaps those spurious decrements or other races caused the other intermittent non-deadlock failures in TestTransportMaxConnsPerHost, in which the HTTP/2 phase created too many connections (#31982). This CL replaces the buggy, racy code with new code that is hopefully neither buggy nor racy. Fixes #29889. Fixes #31982. Fixes #32336. Change-Id: I0dfac3a6fe8a6cdf5f0853722781fe2ec071ac97 Reviewed-on: https://go-review.googlesource.com/c/go/+/184262 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Than McIntosh authored
Test case that causes incorrect compiler error from gccgo. Updates #32922 Change-Id: I59432a8e8770cf03eda293f6d110c081c18fa88b Reviewed-on: https://go-review.googlesource.com/c/go/+/184918 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
- 06 Jul, 2019 1 commit
-
-
Daniel Martí authored
It wasn't obeyed in the case where the MarshalJSON method uses a pointer receiver, and the encoder grabs the address of a value to find that method. addrMarshalerEncoder is the function that does this work, but it ignored opts.escapeHTML. Here's the before and after of the added test case, which was failing before the fix. Now the two cases are correct and consistent. {"NonPtr":"<str>","Ptr":"\u003cstr\u003e"} {"NonPtr":"<str>","Ptr":"<str>"} Fixes #32896. Change-Id: Idc53077ece074973558bd3bb5ad036380db0d02c Reviewed-on: https://go-review.googlesource.com/c/go/+/184757 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Caleb Spare <cespare@gmail.com>
-
- 05 Jul, 2019 5 commits
-
-
Austin Clements authored
cgo produces dynamic imports for Go binaries by scanning the dynamic imports table of a binary produced by the system C compiler and linker. Currently, since it uses elf.File.ImportedSymbols, it only reads global symbols. Unfortunately, recent versions of lld emit weak symbol imports for several pthread symbols, which means the cgo tool doesn't emit dynamic imports for them, which ultimately causes linking of cgo binaries to fail. Fix this by using elf.File.DynamicSymbols instead and filtering down to both global and weak symbols. Fixes #31912. Change-Id: If346a7eca6733e3bfa2cccf74a9cda02a3e81d38 Reviewed-on: https://go-review.googlesource.com/c/go/+/184100 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Austin Clements authored
Currently, File.ImportedSymbols is the only API that exposes the GNU symbol version information for dynamic symbols. Unfortunately, it also filters to specific types of symbols, and only returns symbol names. The cgo tool is going to need symbol version information for more symbols. In order to support this and make the API more orthogonal, this CL adds version information to the Symbol type and updates File.DynamicSymbols to fill this in. This has the downside of increasing the size of Symbol, but seems to be the most natural API for exposing this. I also explored 1) adding a method to get the version information for the i'th dynamic symbol, but we don't use symbol indexes anywhere else in the API, and it's not clear if this index would be 0-based or 1-based, and 2) adding a DynamicSymbolVersions method that returns a slice of version information that parallels the DynamicSymbols slice, but that's less efficient to implement and harder to use. For #31912. Change-Id: I69052ac3894f7af2aa9561f7085275130e0cf717 Reviewed-on: https://go-review.googlesource.com/c/go/+/184099 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
Update #32680 Change-Id: I0318c22c22c5cd6ab6441d1aa2d1a40d20d71242 Reviewed-on: https://go-review.googlesource.com/c/go/+/185137 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: David Chase <drchase@google.com>
-
Mohit Agarwal authored
- fix link for `Time.Format` - fix closing tag for `go get` - add links for `runtime.Caller`, `runtime.Callers` - remove link for `TypedArrayOf` since it has been removed (CL 177537) Change-Id: I1dc38226e6d91c68fbd2f02c1acfad5327f4ebe8 Reviewed-on: https://go-review.googlesource.com/c/go/+/185038Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
-
Patrik Lundin authored
Running the example code when not having permissions to bind to port 80 will cause the program to hang after printing the error message. Change-Id: I2433ba2629b362fc8f1731e40cab5eea72ec354f GitHub-Last-Rev: 0bb3dc08b6f646470fc6ff208ea12bca901a2299 GitHub-Pull-Request: golang/go#32947 Reviewed-on: https://go-review.googlesource.com/c/go/+/185157Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 03 Jul, 2019 2 commits
-
-
Kyle Shannon authored
Updates #22487 Change-Id: I3c933c68b5c3c5e78e3a9656ea2dcdbcbb59533f Reviewed-on: https://go-review.googlesource.com/c/go/+/184577 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Jay Conrod authored
This should have been part of CL 184440. Updates #32846 Change-Id: I78a1326f4a67b3b526859bd15cb9653b4a8551a7 Reviewed-on: https://go-review.googlesource.com/c/go/+/184920 Run-TryBot: Jay Conrod <jayconrod@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-