Hello
On Tue, Jan 15, 2013 at 3:02 AM, Brad Fitzpatrick wrote:
This CL changed nothing about concurrency.
It did, however, change chunking. But the tests were adjusted.
Is this a sporadic failure? How to reproduce? I have machines with over 10
cores.
Xeon E5-2670 0 @ 2.60GHz, performance governor, F16 64-bit kernel 3.3.8.
Test always passes with GOMAXPROCS=1 and fails about 80% of the time
with GOMAXPROCS=2 or greater.
Here's a few runs:
$ GOMAXPROCS=1 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking
--- PASS: TestServerBufferedChunking (0.00 seconds)
PASS
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:27
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- PASS: TestServerBufferedChunking-2 (0.00 seconds)
PASS
$ GOMAXPROCS=1 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking
--- PASS: TestServerBufferedChunking (0.00 seconds)
PASS
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- PASS: TestServerBufferedChunking-2 (0.00 seconds)
PASS
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:40
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:41
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- PASS: TestServerBufferedChunking-2 (0.00 seconds)
PASS
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- PASS: TestServerBufferedChunking-2 (0.00 seconds)
PASS
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:43
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:43
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- FAIL: TestServerBufferedChunking-2 (0.00 seconds)
serve_test.go:1165: response didn't end with a single 3 byte 'xyz'
chunk; got:
"HTTP/1.1 200 OK\r\nContent-Type: text/plain;
charset=utf-8\r\nDate: Tue, 15 Jan 2013 09:12:43
GMT\r\nTransfer-Encoding: chunked\r\n\r\n"
FAIL
$ GOMAXPROCS=2 ./http.test -test.v -test.run=TestServerBufferedChunking
=== RUN TestServerBufferedChunking-2
--- PASS: TestServerBufferedChunking-2 (0.00 seconds)
PASS
Regards
Albert