- 11 Apr, 2014 16 commits
-
-
Adam Langley authored
R=adg LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/86930043
-
Brad Fitzpatrick authored
What was happening on Issue 7010 was handler intentionally took 30 milliseconds and the proxy's client timeout was 35 milliseconds. Then it slammed the proxy with a bunch of requests. Sometimes the server would be too slow to respond in its 5 millisecond window and the client code would cancel the request, force-closing the persistConn. If this came at the right time, the server's reply was already in flight, and one of the goroutines would report: Unsolicited response received on idle HTTP channel starting with "H"; err=<nil> ... rightfully scaring the user. But the error was already handled and returned to the user, and this connection knows it's been shut down. So look at the closed flag after acquiring the same mutex guarding another field we were checking, and don't complain if it's a known shutdown. Also move closed down below the mutex which guards it. Fixes #7010 LGTM=dsymonds R=golang-codereviews, dsymonds CC=adg, golang-codereviews, rsc https://golang.org/cl/86740044
-
Jan Ziak authored
Fixes #7129 LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/86470044
-
Jan Ziak authored
Fixes #7742 LGTM=dave, rsc R=rsc, bradfitz, dave CC=golang-codereviews https://golang.org/cl/85580047
-
Dmitriy Vyukov authored
The test fails now with -race, so it's disabled. The intention is that the fix for issue 7264 will also modify this test the same way and enable it. Reporduce with 'go test -race -issue7264 -cpu=4'. Update #7264 LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/86770043
-
Alex Brainman authored
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/84650047
-
Matthew Cottingham authored
Add test for multipart form requests with an invalid content-type to ensure ErrNotMultipart is returned. Change ParseMultipartForm to return ErrNotMultipart when it is returned by multipartReader. Modify test for empty multipart request handling to use POST so that the body is checked. Fixes #6334. This is the first changeset working on multipart request handling. Further changesets could add more tests and clean up the TODO. LGTM=bradfitz R=golang-codereviews, gobot, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/44040043
-
Brad Fitzpatrick authored
I was implementing rules from RFC 2616. The rules are apparently useless, ambiguous, and too strict for common software on the Internet. (e.g. curl) Add more tests, including a test of a chunked request. Fixes #7625 LGTM=dsymonds R=golang-codereviews, dsymonds CC=adg, golang-codereviews, rsc https://golang.org/cl/84480045
-
Rui Ueyama authored
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/86420046
-
Robert Griesemer authored
Also: Simplify ReadSlice implementation and ensure that it doesn't call fill() with a full buffer (this caused a failure in net/textproto TestLargeReadMIMEHeader because fill() wasn't able to read more data). Fixes #7745. LGTM=bradfitz R=r, bradfitz CC=golang-codereviews https://golang.org/cl/86590043
-
Robert Griesemer authored
LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/86060044
-
Rui Ueyama authored
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/86600045
-
Rui Ueyama authored
To create a valid JSON string, "%s" is not enough. Fixes #7761. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/86730043
-
Russ Cox authored
It runs too long in -short mode. Disable the one in init, because it doesn't respect -short. Make the part that claims to test execution in a finalizer actually execute the test in the finalizer. LGTM=bradfitz R=golang-codereviews, bradfitz CC=aram.h, golang-codereviews, iant, khr https://golang.org/cl/86550045
-
Brad Fitzpatrick authored
The Go HTTP server doesn't use Response.Write, but others do, so make it correct. Add a bunch more tests. This bug is almost a year old. :/ Fixes #5381 LGTM=adg R=golang-codereviews, adg CC=dsymonds, golang-codereviews, rsc https://golang.org/cl/85740046
-
Brad Fitzpatrick authored
Go's had pretty decent HTTP Trailer support for a long time, but the docs have been largely non-existent. Fix that. In the process, re-learn the Trailer code, clean some stuff up, add some error checks, remove some TODOs, fix a minor bug or two, and add tests. LGTM=adg R=golang-codereviews, adg CC=dsymonds, golang-codereviews, rsc https://golang.org/cl/86660043
-
- 10 Apr, 2014 16 commits
-
-
Rob Pike authored
Keep those builders busy. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/85710046
-
Brad Fitzpatrick authored
Tests for the race detector to catch anybody trying to mutate Reader in ReadAt. LGTM=gri R=gri CC=golang-codereviews https://golang.org/cl/86700043
-
Brad Fitzpatrick authored
LGTM=r R=r CC=golang-codereviews https://golang.org/cl/86580043
-
Alexey Borzenkov authored
Fixes #7750. LGTM=bradfitz R=golang-codereviews, ibilicc, bradfitz CC=golang-codereviews https://golang.org/cl/84850043
-
Russ Cox authored
TBR=0intro CC=golang-codereviews https://golang.org/cl/86620043
-
Keith Randall authored
LGTM=iant R=remyoudompheng, iant CC=golang-codereviews https://golang.org/cl/86270043
-
Rui Ueyama authored
There is a race condition that causes spurious wakeup from Wait in the following case: G1: decrement wg.counter, observe the counter is now 0 (should unblock goroutines queued *at this moment*) G2: increment wg.counter G2: call Wait() to add itself to the wait queue G1: acquire wg.m, unblock all waiting goroutines In the last step G2 is spuriously woken up by G1. Fixes #7734. LGTM=rsc, dvyukov R=dvyukov, 0xjnml, rsc CC=golang-codereviews https://golang.org/cl/85580043
-
Brad Fitzpatrick authored
In a typical HTTP request, the client writes the request, and then the server replies. Go's HTTP client code (Transport) has two goroutines per connection: one writing, and one reading. A third goroutine (the one initiating the HTTP request) coordinates with those two. Because most HTTP requests are done when the server replies, the Go code has always handled connection reuse purely in the readLoop goroutine. But if a client is writing a large request and the server replies before it's consumed the entire request (e.g. it replied with a 403 Forbidden and had no use for the body), it was possible for Go to re-select that connection for a subsequent request before we were done writing the first. That wasn't actually a data race; the second HTTP request would just get enqueued to write its request on the writeLoop. But because the previous writeLoop didn't finish writing (and might not ever), that connection is in a weird state. We really just don't want to get into a state where we're re-using a connection when the server spoke out of turn. This CL changes the readLoop goroutine to verify that the writeLoop finished before returning the connection. In the process, it also fixes a potential goroutine leak where a connection could close but the recycling logic could be blocked forever waiting for the client to read to EOF or error. Now it also selects on the persistConn's close channel, and the closer of that is no longer the readLoop (which was dead locking in some cases before). It's now closed at the same place the underlying net.Conn is closed. This likely fixes or helps Issue 7620. Also addressed some small cosmetic things in the process. Update #7620 Fixes #7569 LGTM=adg R=golang-codereviews, adg CC=dsymonds, golang-codereviews, rsc https://golang.org/cl/86290043
-
David du Colombier authored
We originally decided to skip this test in short mode to prevent the parallel runtime test to timeout on the Plan 9 builder. This should no longer be required since the issue was fixed in CL 86210043. LGTM=dave, bradfitz R=dvyukov, dave, bradfitz CC=golang-codereviews, rsc https://golang.org/cl/84790044
-
David du Colombier authored
If you pass ns = 100,000 to this function, timediv will return ms = 0. tsemacquire in /sys/src/9/port/sysproc.c will return immediately when ms == 0 and the semaphore cannot be acquired immediately - it doesn't sleep - so notetsleep will spin, chewing cpu and repeatedly reading the time, until the 100us have passed. Thanks to the time reads it won't take too many iterations, but whatever we are waiting for does not get a chance to run. Eventually the notetsleep spin loop returns and we end up in the stoptheworld spin loop - actually a sleep loop but we're not doing a good job of sleeping. After 100ms or so of this, the kernel says enough and schedules a different thread. That thread manages to do whatever we're waiting for, and the spinning in the other thread stops. If tsemacquire had actually slept, this would have happened much quicker. Many thanks to Russ Cox for help debugging. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/86210043
-
Rob Pike authored
All that's left is net/http and the stuff I need help describing: FreeBSD and Windows. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://golang.org/cl/86320043
-
Alex Brainman authored
even when there are no *_test.go files present. rsc suggested this change Fixes #7108 LGTM=r, adg R=golang-codereviews, r, adg CC=golang-codereviews https://golang.org/cl/84300043
-
Preetam Jinka authored
The buffer length should be the size in bytes instead of the number of structs. Fixes #6588. LGTM=mikioh.mikioh R=golang-codereviews, mikioh.mikioh, adg CC=golang-codereviews https://golang.org/cl/84830043
-
Andrew Gerrand authored
Generated by addca. R=gobot CC=golang-codereviews https://golang.org/cl/85550044
-
Robert Griesemer authored
bufio: undo incorrect bug fix ««« original CL description bufio: fix potential endless loop in ReadByte Fixes #7745. LGTM=bradfitz, r R=r, bradfitz CC=golang-codereviews https://golang.org/cl/86220044 »»» LGTM=adg R=r, adg CC=golang-codereviews https://golang.org/cl/85550045
-
Robert Griesemer authored
Fixes #7745. LGTM=bradfitz, r R=r, bradfitz CC=golang-codereviews https://golang.org/cl/86220044
-
- 09 Apr, 2014 8 commits
-
-
Robert Griesemer authored
Also: - fix error messages in tests - make tests more symmetric Fixes #7607. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/86180043
-
Rob Pike authored
Explain what its purpose is and give examples of good and bad use. Fixes #7167. LGTM=dvyukov, rsc R=golang-codereviews, dvyukov, rsc CC=golang-codereviews https://golang.org/cl/85880044
-
Rémy Oudompheng authored
On amd64p32 pointers are 32-bit-aligned and cannot be assumed to have an offset multiple of widthreg. Instead check that they are withptr-aligned. Also change the threshold for region merging to 2*widthreg instead of 2*widthptr because performance on amd64 and amd64p32 is expected to be the same. Fixes #7712. LGTM=khr R=rsc, dave, khr, brad, bradfitz CC=golang-codereviews https://golang.org/cl/84690044
-
Rui Ueyama authored
go-mode on Emacs 23 wrongly recognizes a backquote in a comment or a string as a start of a raw string literal. Below is an example that go-mode does not work well. This patch is to fix that issue. // ` var x = 1 // ` LGTM=dominik.honnef R=golang-codereviews, dominik.honnef, adonovan CC=golang-codereviews https://golang.org/cl/84900043
-
Russ Cox authored
Cuts the number of calls from 6 to 2 in the non-debug case. LGTM=iant R=golang-codereviews, iant CC=0intro, aram, golang-codereviews, khr https://golang.org/cl/86040043
-
Russ Cox authored
Suggested in comments on CL 85740043. LGTM=aram R=golang-codereviews, aram CC=dave, golang-codereviews, r https://golang.org/cl/85990044
-
Russ Cox authored
TBR=iant CC=golang-codereviews https://golang.org/cl/86030043
-
Jan Ziak authored
LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/85890043
-