FAQ
=== RUN TestIssue4191_InfiniteGetTimeout-18
--- PASS: TestIssue4191_InfiniteGetTimeout-18 (0.50 seconds)
=== RUN TestIssue4191_InfiniteGetToPutTimeout-18

jams (also -15 on this machine), which may be related to issue 4434.


https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go
File src/pkg/net/http/transport_test.go (right):

https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode917
src/pkg/net/http/transport_test.go:917: }()
Or skip the defer and move ts.Close() to the end, then you get the full
unabridged panic.

https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode946
src/pkg/net/http/transport_test.go:946: t.Errorf("Error issuing GET:
%v", err)
break after t.Errorf

https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode956
src/pkg/net/http/transport_test.go:956: }
ts.Close()

https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode976
src/pkg/net/http/transport_test.go:976: }()
Same as above

https://codereview.appspot.com/6851061/

Search Discussions

  • Bradfitz at Nov 26, 2012 at 12:18 am
    Hello dave@cheney.net, bradfitz@golang.org, dsallings@gmail.com (cc:
    golang-dev@googlegroups.com),

    Please take another look.


    http://codereview.appspot.com/6851061/
  • Bradfitz at Nov 26, 2012 at 12:19 am
    PTAL

    I can't reproduce any hang with any number of GOMAXPROCS (1, 4, 20), but
    that's just on my quad-core laptop.


    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go
    File src/pkg/net/http/transport_test.go (right):

    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode917
    src/pkg/net/http/transport_test.go:917: }()
    On 2012/11/26 00:08:31, dfc wrote:
    Or skip the defer and move ts.Close() to the end, then you get the full
    unabridged panic.
    Done.

    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode946
    src/pkg/net/http/transport_test.go:946: t.Errorf("Error issuing GET:
    %v", err)
    On 2012/11/26 00:08:31, dfc wrote:
    break after t.Errorf
    Done, even though I do like defers.

    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode951
    src/pkg/net/http/transport_test.go:951: t.Errorf("Unexpected successful
    copy")
    and did a break here too.

    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode956
    src/pkg/net/http/transport_test.go:956: }
    On 2012/11/26 00:08:31, dfc wrote:
    ts.Close()
    Done.

    https://codereview.appspot.com/6851061/diff/9010/src/pkg/net/http/transport_test.go#newcode976
    src/pkg/net/http/transport_test.go:976: }()
    On 2012/11/26 00:08:31, dfc wrote:
    Same as above
    Done.

    https://codereview.appspot.com/6851061/
  • Dave at Nov 26, 2012 at 12:30 am
    Done, even though I do like defers.
    So do I, but in this case the defer was interacting badly with the
    httptest.Server.Close() method.

    LGTM. I'm not sure if you want to wait for a fix for 4434, this test
    will break eventually for people like fullung and his stress testing
    box.

    https://codereview.appspot.com/6851061/
  • Brad Fitzpatrick at Nov 26, 2012 at 12:33 am

    On Sun, Nov 25, 2012 at 4:25 PM, wrote:

    Done, even though I do like defers.
    So do I, but in this case the defer was interacting badly with the
    httptest.Server.Close() method.
    Yeah.

    LGTM.

    Be sure to put LGTMs on the first line of replies, up at the top before any
    quoted section, otherwise codereview.appspot.com and downstream tools don't
    see it.

    I'm not sure if you want to wait for a fix for 4434, this test
    will break eventually for people like fullung and his stress testing
    box.
    I also plan to run all the Go unit tests on a ~bazillion machines with
    varying GOMAXPROCS soonish here, since I'm also getting sick of flakiness.
    So I'm fine committing this for now if you're cool with it (and want to
    give me a top-line LGTM). I also fixed Issue 4021 which should help
    fullung's machine anyway, so net positive maybe? :)
  • Dave Cheney at Nov 26, 2012 at 12:36 am
    LGTM.

    This is my pkg stress testing script

    % more ~/stress.bash
    #!/bin/bash

    set -e
    go test -c
    PKG=$(basename $(pwd))

    while true ; do
    export GOMAXPROCS=$[ 1 + $[ RANDOM % 128 ]]
    ./$PKG.test $@ 2>&1
    done


    % cd $PKG
    % bash ~/stress.bash $TEST_OPTIONS
    On Mon, Nov 26, 2012 at 11:33 AM, Brad Fitzpatrick wrote:
    On Sun, Nov 25, 2012 at 4:25 PM, wrote:

    Done, even though I do like defers.

    So do I, but in this case the defer was interacting badly with the
    httptest.Server.Close() method.

    Yeah.
    LGTM.

    Be sure to put LGTMs on the first line of replies, up at the top before any
    quoted section, otherwise codereview.appspot.com and downstream tools don't
    see it.
    I'm not sure if you want to wait for a fix for 4434, this test
    will break eventually for people like fullung and his stress testing
    box.

    I also plan to run all the Go unit tests on a ~bazillion machines with
    varying GOMAXPROCS soonish here, since I'm also getting sick of flakiness.
    So I'm fine committing this for now if you're cool with it (and want to give
    me a top-line LGTM). I also fixed Issue 4021 which should help fullung's
    machine anyway, so net positive maybe? :)
  • Albert Strasheim at Nov 26, 2012 at 9:09 pm
    Hello
    On Monday, November 26, 2012 2:33:44 AM UTC+2, Brad Fitzpatrick wrote:

    I also plan to run all the Go unit tests on a ~bazillion machines with
    varying GOMAXPROCS soonish here, since I'm also getting sick of flakiness.
    So I'm fine committing this for now if you're cool with it (and want to
    give me a top-line LGTM). I also fixed Issue 4021 which should help
    fullung's machine anyway, so net positive maybe? :)
    I'm waiting for the dust to settle a bit before I start reporting on test
    results from the infamous machine again.

    There is a minor enhancement to the Go test options that might be useful
    for a "test-driven bug data mining" effort:

    Allow some kind of random seed that is used to select a random subset of
    the Test* functions matched by -run=... and run them in random order with a
    random number of repetitions, maybe varying GOMAXPROCS between runs too.

    Seed=0 can be the default, which gives the current behaviour of running
    everything that matches -test.run=... once. Seed<0 can mean choose a random
    seed, which should be printed if -test.v is specified, to allow easier
    reproduction in case of a failure.

    This is especially useful if you farm out .test binaries to a big group of
    machines. And you can farm out normal and -race versions.

    There are a few tests that might bang into "too many sockets in TIME_WAIT"
    type problems, but mostly it seems that tests should continue to pass under
    this extended condition. Those that don't can probably be fixed.

    My hope is that this can shake out issues like

    http://code.google.com/p/go/issues/detail?id=4423

    which I suspect has been lurking for quite a long time.

    Cheers

    Albert
  • Dave at Nov 26, 2012 at 12:41 am
    NOT LGTM.

    Sorry, even simple tests in net/http are failing

    lucky(~/go/src) % go test net/http
    Warning: intentional death for testing
    --- FAIL: TestHandlerPanic (5.00 seconds)
    serve_test.go:978: expected an error
    serve_test.go:985: expected server handler to log an error
    Warning: intentional death for testing
    --- FAIL: TestHandlerPanicWithHijack (5.00 seconds)
    serve_test.go:985: expected server handler to log an error
    FAIL
    FAIL net/http 18.997s


    https://codereview.appspot.com/6851061/
  • Brad Fitzpatrick at Nov 26, 2012 at 12:44 am

    On Sun, Nov 25, 2012 at 4:41 PM, wrote:

    NOT LGTM.

    Sorry, even simple tests in net/http are failing
    I can't reproduce any failures.

    Do you have any local modifications besides 03a6b8c9c396 + 6851061?
  • Dave Cheney at Nov 26, 2012 at 12:46 am
    LGTM. Very sorry, I had some leftover debugging in net/http/httptest.

    PASS
    ok net/http 8.499s

    On Mon, Nov 26, 2012 at 11:44 AM, Brad Fitzpatrick wrote:
    On Sun, Nov 25, 2012 at 4:41 PM, wrote:

    NOT LGTM.

    Sorry, even simple tests in net/http are failing

    I can't reproduce any failures.

    Do you have any local modifications besides 03a6b8c9c396 + 6851061?
  • Brad Fitzpatrick at Nov 26, 2012 at 1:20 am
    I'll wait on submitting this for a bit. I'm still seeing the same GetToPut
    hang you did, if I run it in a loop for a bit.

    I'd like to see a test which makes that hang more reliable, too.

    On Sun, Nov 25, 2012 at 4:46 PM, Dave Cheney wrote:

    LGTM. Very sorry, I had some leftover debugging in net/http/httptest.

    PASS
    ok net/http 8.499s

    On Mon, Nov 26, 2012 at 11:44 AM, Brad Fitzpatrick wrote:
    On Sun, Nov 25, 2012 at 4:41 PM, wrote:

    NOT LGTM.

    Sorry, even simple tests in net/http are failing

    I can't reproduce any failures.

    Do you have any local modifications besides 03a6b8c9c396 + 6851061?
  • Rsc at Nov 26, 2012 at 8:38 pm
  • Brad Fitzpatrick at Nov 26, 2012 at 9:24 pm
    Okay, I'll submit this now, since Albert is waiting on reporting high
    GOMAXPROCS errors, dfc is working on the net deadline races and LGTMed, and
    none of our builders run with high GOMAXPROCS.

    And this fixes a long-standing bug that was biting Dustin Sallings (who
    reported Issue 4191).

    Forward progress....

    On Mon, Nov 26, 2012 at 12:32 PM, wrote:

    LGTM as long as dfc is happy


    https://codereview.appspot.**com/6851061/<https://codereview.appspot.com/6851061/>
  • Dave Cheney at Nov 26, 2012 at 9:27 pm
    Yup, worse case the -test.timeout=120 will recover the builder.
    On Tue, Nov 27, 2012 at 8:24 AM, Brad Fitzpatrick wrote:
    Okay, I'll submit this now, since Albert is waiting on reporting high
    GOMAXPROCS errors, dfc is working on the net deadline races and LGTMed, and
    none of our builders run with high GOMAXPROCS.

    And this fixes a long-standing bug that was biting Dustin Sallings (who
    reported Issue 4191).

    Forward progress....

    On Mon, Nov 26, 2012 at 12:32 PM, wrote:

    LGTM as long as dfc is happy


    https://codereview.appspot.com/6851061/
  • Bradfitz at Nov 26, 2012 at 9:37 pm
    *** Submitted as
    http://code.google.com/p/go/source/detail?r=be4b8f195c96 ***

    net/http: fix Transport races & deadlocks

    Thanks to Dustin Sallings for exposing the most frustrating
    bug ever, and for providing repro cases (which formed the
    basis of the new tests in this CL), and to Dave Cheney and
    Dmitry Vyukov for help debugging and fixing.

    This CL depends on submited pollster CLs ffd1e075c260 (Unix)
    and 14b544194509 (Windows), as well as unsubmitted 6852085.
    Some operating systems (OpenBSD, NetBSD, ?) may still require
    more pollster work, fixing races (Issue 4434 and
    http://goo.gl/JXB6W).

    Tested on linux-amd64 and darwin-amd64, both with GOMAXPROCS 1
    and 4 (all combinations of which previously failed differently)

    Fixes Issue 4191
    Update Issue 4434 (related fallout from this bug)

    R=dave, bradfitz, dsallings, rsc, fullung
    CC=golang-dev
    http://codereview.appspot.com/6851061


    http://codereview.appspot.com/6851061/
  • Rémy Oudompheng at Nov 26, 2012 at 10:34 pm
    I got the following failure during all.bash on linux/arm but could not
    reproduce by running go test -short net/http by hand. Maybe it
    happened due to the high load during parallel testing of packages.

    Rémy.

    panic: test timed out

    goroutine 1108 [running]:
    testing.alarm()
    /storage/remy/go/src/pkg/testing/testing.go:477 +0x60
    created by time.goFunc
    /storage/remy/go/src/pkg/time/sleep.go:96 +0x54

    goroutine 1 [chan receive]:
    testing.RunTests(0x10c00, 0x410b58, 0x81, 0x81, 0x10986501, ...)
    /storage/remy/go/src/pkg/testing/testing.go:378 +0x6ec
    testing.Main(0x10c00, 0x410b58, 0x81, 0x81, 0x40be10, ...)
    /storage/remy/go/src/pkg/testing/testing.go:313 +0x68
    main.main()
    net/http/_test/_testmain.go:311 +0x94

    goroutine 2 [runnable]:
    created by runtime.main
    /storage/remy/go/src/pkg/runtime/proc.c:225

    goroutine 3 [timer goroutine (idle)]:
    created by addtimer
    /storage/remy/go/src/pkg/runtime/ztime_linux_arm.c:73

    goroutine 74 [select]:
    net/http.(*persistConn).writeLoop(0x109a95a0, 0x410c90)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 31 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x7, 0x10989ea8, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x10989ea0, 0x110c4620, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x110c4620, 0x0)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 58 [select]:
    net/http.(*persistConn).writeLoop(0x10964eb0, 0x410ca8)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 89 [semacquire]:
    sync.runtime_Semacquire(0x110e3bd0, 0x110e3bd0)
    /storage/remy/go/src/pkg/runtime/zsema_linux_arm.c:165 +0x30
    sync.(*Cond).Wait(0x110ebec4, 0xb4ae0e3c)
    /storage/remy/go/src/pkg/sync/cond.go:73 +0xd0
    io.(*pipe).write(0x110ebe80, 0x109b8b90, 0x13, 0x50, 0x0, ...)
    /storage/remy/go/src/pkg/io/pipe.go:90 +0x1e8
    io.(*PipeWriter).Write(0x110e3bb0, 0x109b8b90, 0x13, 0x50, 0x109b8b90, ...)
    /storage/remy/go/src/pkg/io/pipe.go:157 +0x54
    net/http.(*populateResponse).Write(0x11110110, 0x109b8b90, 0x13, 0x50,
    0x50101, ...)
    /storage/remy/go/src/pkg/net/http/filetransport.go:122 +0xa0
    fmt.Fprintln(0x1110c6e0, 0x11110110, 0xb4ae0ea0, 0x1, 0x1, ...)
    /storage/remy/go/src/pkg/fmt/print.go:280 +0xb0
    net/http.Error(0x1110c3e0, 0x11110110, 0x27c63c, 0x12, 0x194, ...)
    /storage/remy/go/src/pkg/net/http/server.go:748 +0x15c
    net/http.NotFound(0x1110c3e0, 0x11110110)
    /storage/remy/go/src/pkg/net/http/server.go:752 +0x50
    net/http.serveFile(0x1110c3e0, 0x11110110, 0x11100540, 0x1110c280,
    0x110e3d70, ...)
    /storage/remy/go/src/pkg/net/http/fs.go:327 +0x1a8
    net/http.(*fileHandler).ServeHTTP(0x110e3b90, 0x1110c3e0, 0x11110110,
    0x11100540, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/fs.go:421 +0x1a4
    net/http.func·003(0x110e3b90, 0x110e3ba0, 0x110e3b98, 0x410d2c)
    /storage/remy/go/src/pkg/net/http/filetransport.go:43 +0x74
    created by net/http.fileTransport.RoundTrip
    /storage/remy/go/src/pkg/net/http/filetransport.go:45 +0xd0

    goroutine 48 [select]:
    net/http.(*persistConn).writeLoop(0x109b8820, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 47 [chan receive]:
    net/http.(*persistConn).readLoop(0x109b8820, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 83 [finalizer wait]:
    created by runtime.gc
    /storage/remy/go/src/pkg/runtime/mgc0.c:961

    goroutine 194 [chan receive]:
    net/http.(*persistConn).readLoop(0x109b8140, 0x410ea0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 57 [chan receive]:
    net/http.(*persistConn).readLoop(0x10964eb0, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 73 [chan receive]:
    net/http.(*persistConn).readLoop(0x109a95a0, 0x76)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 113 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78320, 0x410d50)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 114 [select]:
    net/http.(*persistConn).writeLoop(0x10e78320, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 122 [select]:
    net/http.(*persistConn).writeLoop(0x10e78b90, 0x410d5c)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 132 [select]:
    net/http.(*persistConn).writeLoop(0x10e78c80, 0x410d68)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 116 [chan receive]:
    net/http.(*persistConn).readLoop(0x1111bc30, 0x109d4f18)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 117 [select]:
    net/http.(*persistConn).writeLoop(0x1111bc30, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 121 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78b90, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 131 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78c80, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 222 [select]:
    net/http.(*persistConn).writeLoop(0x10a52780, 0x109d49d0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 221 [chan receive]:
    net/http.(*persistConn).readLoop(0x10a52780, 0x109d4468)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 195 [select]:
    net/http.(*persistConn).writeLoop(0x109b8140, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 299 [chan receive]:
    net/http.(*persistConn).readLoop(0x109a92d0, 0x410f48)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 273 [chan send]:
    net/http.func·009(0x110e3908, 0x110e3920, 0x110e3910, 0x110e3918, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/server.go:1271 +0xc0
    created by net/http.(*timeoutHandler).ServeHTTP
    /storage/remy/go/src/pkg/net/http/server.go:1272 +0x124

    goroutine 305 [chan receive]:
    net/http.(*persistConn).readLoop(0x110bd690, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 306 [select]:
    net/http.(*persistConn).writeLoop(0x110bd690, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 300 [select]:
    net/http.(*persistConn).writeLoop(0x109a92d0, 0x410fa8)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 1100 [semacquire]:
    sync.runtime_Semacquire(0x13bf7aa0, 0x13bf7aa0)
    /storage/remy/go/src/pkg/runtime/zsema_linux_arm.c:165 +0x30
    sync.(*WaitGroup).Wait(0x14003768, 0x0)
    /storage/remy/go/src/pkg/sync/waitgroup.go:102 +0x11c
    net/http/httptest.(*Server).Close(0x14003750, 0x13aed700)
    /storage/remy/go/src/pkg/net/http/httptest/server.go:157 +0x68
    net/http_test.TestIssue4191_InfiniteGetToPutTimeout(0x147e4900, 0xe)
    /storage/remy/go/src/pkg/net/http/transport_test.go:1006 +0x348
    testing.tRunner(0x147e4900, 0x411140, 0x0)
    /storage/remy/go/src/pkg/testing/testing.go:301 +0xa8
    created by testing.RunTests
    /storage/remy/go/src/pkg/testing/testing.go:377 +0x6cc

    goroutine 597 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x33, 0x14359008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x14359000, 0x147c18c0, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x147c18c0, 0x13923930)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 603 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x35, 0x13d53008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x13d53000, 0x147da380, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x147da380, 0x13923930)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 1104 [select]:
    net/http.(*persistConn).writeLoop(0x13bd7550, 0x13923930)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 1103 [chan receive]:
    net/http.(*persistConn).readLoop(0x13bd7550, 0x13923930)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 598 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x34, 0x14064008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x14064000, 0x1482a5a0, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x1482a5a0, 0x0)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 1102 [chan receive]:
    net.(*pollServer).WaitWrite(0x110c4620, 0x13d70070, 0x110c46e0, 0xb)
    /storage/remy/go/src/pkg/net/fd_unix.go:251 +0x68
    net.(*netFD).Write(0x13d70070, 0x1408eff8, 0x7008, 0x7008, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_unix.go:553 +0x48c
    net.(*conn).Write(0x143f1670, 0x1408eff8, 0x7008, 0x7008, 0x10968000, ...)
    /storage/remy/go/src/pkg/net/net.go:129 +0xd0
    net.(*TCPConn).Write(0x143f1670, 0x1408eff8, 0x7008, 0x7008, 0x8000, ...)
    /storage/remy/go/src/pkg/net/dial.go:0 +0x40
    bufio.(*Writer).Write(0x13d63ea0, 0x1408eff8, 0x7008, 0x7008, 0xff8, ...)
    /storage/remy/go/src/pkg/bufio/bufio.go:488 +0xd0
    net/http.(*response).Write(0x14003840, 0x1408e000, 0x8000, 0x8000, 0x8000, ...)
    /storage/remy/go/src/pkg/net/http/server.go:507 +0x468
    net/http.(*writerOnly).Write(0x143f1a40, 0x1408e000, 0x8000, 0x8000,
    0x8000, ...)
    /storage/remy/go/src/pkg/net/http/chunked.go:0 +0x74
    io.Copy(0x109adb60, 0x143f1a40, 0x110c7500, 0x61, 0x3a8000, ...)
    /storage/remy/go/src/pkg/io/io.go:367 +0x25c
    net/http.(*response).ReadFrom(0x14003840, 0x110c7500, 0x61, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/server.go:167 +0x240
    io.Copy(0x110d8260, 0x14003840, 0x110c7500, 0x61, 0x0, ...)
    /storage/remy/go/src/pkg/io/io.go:357 +0xa4
    net/http_test.func·106(0x110d8220, 0x14003840)
    /storage/remy/go/src/pkg/net/http/transport_test.go:958 +0xa4
    net/http.HandlerFunc.ServeHTTP(0xac6e8, 0x110d8220, 0x14003840,
    0x13aed620, 0x26948c, ...)
    /storage/remy/go/src/pkg/net/http/server.go:739 +0x40
    net/http.(*ServeMux).ServeHTTP(0x13d63e20, 0x110d8220, 0x14003840,
    0x13aed620, 0x110d8d60, ...)
    /storage/remy/go/src/pkg/net/http/server.go:998 +0x74
    net/http/httptest.(*waitGroupHandler).ServeHTTP(0x1464c7a0,
    0x110d8220, 0x14003840, 0x13aed620, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/httptest/server.go:189 +0xd0
    net/http.(*conn).serve(0x13ff42d0, 0x0)
    /storage/remy/go/src/pkg/net/http/server.go:702 +0x604
    created by net/http.(*Server).Serve
    /storage/remy/go/src/pkg/net/http/server.go:1126 +0x4cc
    FAIL net/http 120.229s
  • Brad Fitzpatrick at Nov 26, 2012 at 10:44 pm
    What value of GOMAXPROCS? goroutine 1102 in the stacks below is the sign of
    the expected failure for GOMAXPROCS > 1 until Issue 4434 is fixed.

    On Mon, Nov 26, 2012 at 2:34 PM, Rémy Oudompheng
    wrote:
    I got the following failure during all.bash on linux/arm but could not
    reproduce by running go test -short net/http by hand. Maybe it
    happened due to the high load during parallel testing of packages.

    Rémy.

    panic: test timed out

    goroutine 1108 [running]:
    testing.alarm()
    /storage/remy/go/src/pkg/testing/testing.go:477 +0x60
    created by time.goFunc
    /storage/remy/go/src/pkg/time/sleep.go:96 +0x54

    goroutine 1 [chan receive]:
    testing.RunTests(0x10c00, 0x410b58, 0x81, 0x81, 0x10986501, ...)
    /storage/remy/go/src/pkg/testing/testing.go:378 +0x6ec
    testing.Main(0x10c00, 0x410b58, 0x81, 0x81, 0x40be10, ...)
    /storage/remy/go/src/pkg/testing/testing.go:313 +0x68
    main.main()
    net/http/_test/_testmain.go:311 +0x94

    goroutine 2 [runnable]:
    created by runtime.main
    /storage/remy/go/src/pkg/runtime/proc.c:225

    goroutine 3 [timer goroutine (idle)]:
    created by addtimer
    /storage/remy/go/src/pkg/runtime/ztime_linux_arm.c:73

    goroutine 74 [select]:
    net/http.(*persistConn).writeLoop(0x109a95a0, 0x410c90)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 31 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x7, 0x10989ea8, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x10989ea0, 0x110c4620, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x110c4620, 0x0)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 58 [select]:
    net/http.(*persistConn).writeLoop(0x10964eb0, 0x410ca8)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 89 [semacquire]:
    sync.runtime_Semacquire(0x110e3bd0, 0x110e3bd0)
    /storage/remy/go/src/pkg/runtime/zsema_linux_arm.c:165 +0x30
    sync.(*Cond).Wait(0x110ebec4, 0xb4ae0e3c)
    /storage/remy/go/src/pkg/sync/cond.go:73 +0xd0
    io.(*pipe).write(0x110ebe80, 0x109b8b90, 0x13, 0x50, 0x0, ...)
    /storage/remy/go/src/pkg/io/pipe.go:90 +0x1e8
    io.(*PipeWriter).Write(0x110e3bb0, 0x109b8b90, 0x13, 0x50, 0x109b8b90, ...)
    /storage/remy/go/src/pkg/io/pipe.go:157 +0x54
    net/http.(*populateResponse).Write(0x11110110, 0x109b8b90, 0x13, 0x50,
    0x50101, ...)
    /storage/remy/go/src/pkg/net/http/filetransport.go:122 +0xa0
    fmt.Fprintln(0x1110c6e0, 0x11110110, 0xb4ae0ea0, 0x1, 0x1, ...)
    /storage/remy/go/src/pkg/fmt/print.go:280 +0xb0
    net/http.Error(0x1110c3e0, 0x11110110, 0x27c63c, 0x12, 0x194, ...)
    /storage/remy/go/src/pkg/net/http/server.go:748 +0x15c
    net/http.NotFound(0x1110c3e0, 0x11110110)
    /storage/remy/go/src/pkg/net/http/server.go:752 +0x50
    net/http.serveFile(0x1110c3e0, 0x11110110, 0x11100540, 0x1110c280,
    0x110e3d70, ...)
    /storage/remy/go/src/pkg/net/http/fs.go:327 +0x1a8
    net/http.(*fileHandler).ServeHTTP(0x110e3b90, 0x1110c3e0, 0x11110110,
    0x11100540, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/fs.go:421 +0x1a4
    net/http.func·003(0x110e3b90, 0x110e3ba0, 0x110e3b98, 0x410d2c)
    /storage/remy/go/src/pkg/net/http/filetransport.go:43 +0x74
    created by net/http.fileTransport.RoundTrip
    /storage/remy/go/src/pkg/net/http/filetransport.go:45 +0xd0

    goroutine 48 [select]:
    net/http.(*persistConn).writeLoop(0x109b8820, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 47 [chan receive]:
    net/http.(*persistConn).readLoop(0x109b8820, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 83 [finalizer wait]:
    created by runtime.gc
    /storage/remy/go/src/pkg/runtime/mgc0.c:961

    goroutine 194 [chan receive]:
    net/http.(*persistConn).readLoop(0x109b8140, 0x410ea0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 57 [chan receive]:
    net/http.(*persistConn).readLoop(0x10964eb0, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 73 [chan receive]:
    net/http.(*persistConn).readLoop(0x109a95a0, 0x76)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 113 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78320, 0x410d50)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 114 [select]:
    net/http.(*persistConn).writeLoop(0x10e78320, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 122 [select]:
    net/http.(*persistConn).writeLoop(0x10e78b90, 0x410d5c)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 132 [select]:
    net/http.(*persistConn).writeLoop(0x10e78c80, 0x410d68)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 116 [chan receive]:
    net/http.(*persistConn).readLoop(0x1111bc30, 0x109d4f18)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 117 [select]:
    net/http.(*persistConn).writeLoop(0x1111bc30, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 121 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78b90, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 131 [chan receive]:
    net/http.(*persistConn).readLoop(0x10e78c80, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 222 [select]:
    net/http.(*persistConn).writeLoop(0x10a52780, 0x109d49d0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 221 [chan receive]:
    net/http.(*persistConn).readLoop(0x10a52780, 0x109d4468)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 195 [select]:
    net/http.(*persistConn).writeLoop(0x109b8140, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 299 [chan receive]:
    net/http.(*persistConn).readLoop(0x109a92d0, 0x410f48)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 273 [chan send]:
    net/http.func·009(0x110e3908, 0x110e3920, 0x110e3910, 0x110e3918, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/server.go:1271 +0xc0
    created by net/http.(*timeoutHandler).ServeHTTP
    /storage/remy/go/src/pkg/net/http/server.go:1272 +0x124

    goroutine 305 [chan receive]:
    net/http.(*persistConn).readLoop(0x110bd690, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 306 [select]:
    net/http.(*persistConn).writeLoop(0x110bd690, 0x0)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 300 [select]:
    net/http.(*persistConn).writeLoop(0x109a92d0, 0x410fa8)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 1100 [semacquire]:
    sync.runtime_Semacquire(0x13bf7aa0, 0x13bf7aa0)
    /storage/remy/go/src/pkg/runtime/zsema_linux_arm.c:165 +0x30
    sync.(*WaitGroup).Wait(0x14003768, 0x0)
    /storage/remy/go/src/pkg/sync/waitgroup.go:102 +0x11c
    net/http/httptest.(*Server).Close(0x14003750, 0x13aed700)
    /storage/remy/go/src/pkg/net/http/httptest/server.go:157 +0x68
    net/http_test.TestIssue4191_InfiniteGetToPutTimeout(0x147e4900, 0xe)
    /storage/remy/go/src/pkg/net/http/transport_test.go:1006 +0x348
    testing.tRunner(0x147e4900, 0x411140, 0x0)
    /storage/remy/go/src/pkg/testing/testing.go:301 +0xa8
    created by testing.RunTests
    /storage/remy/go/src/pkg/testing/testing.go:377 +0x6cc

    goroutine 597 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x33, 0x14359008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x14359000, 0x147c18c0, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x147c18c0, 0x13923930)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 603 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x35, 0x13d53008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x13d53000, 0x147da380, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x147da380, 0x13923930)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 1104 [select]:
    net/http.(*persistConn).writeLoop(0x13bd7550, 0x13923930)
    /storage/remy/go/src/pkg/net/http/transport.go:661 +0x238
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:408 +0x5d8

    goroutine 1103 [chan receive]:
    net/http.(*persistConn).readLoop(0x13bd7550, 0x13923930)
    /storage/remy/go/src/pkg/net/http/transport.go:650 +0x5bc
    created by net/http.(*Transport).getConn
    /storage/remy/go/src/pkg/net/http/transport.go:407 +0x5b0

    goroutine 598 [syscall]:
    syscall.Syscall6()
    /storage/remy/go/src/pkg/syscall/asm_linux_arm.s:42 +0x8
    syscall.EpollWait(0x34, 0x14064008, 0xa, 0xa, 0xffffffff, ...)
    /storage/remy/go/src/pkg/syscall/zsyscall_linux_arm.go:327 +0x90
    net.(*pollster).WaitFD(0x14064000, 0x1482a5a0, 0x0, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_linux.go:146 +0x154
    net.(*pollServer).Run(0x1482a5a0, 0x0)
    /storage/remy/go/src/pkg/net/fd_unix.go:211 +0x138
    created by net.newPollServer
    /storage/remy/go/src/pkg/net/newpollserver_unix.go:33 +0x328

    goroutine 1102 [chan receive]:
    net.(*pollServer).WaitWrite(0x110c4620, 0x13d70070, 0x110c46e0, 0xb)
    /storage/remy/go/src/pkg/net/fd_unix.go:251 +0x68
    net.(*netFD).Write(0x13d70070, 0x1408eff8, 0x7008, 0x7008, 0x0, ...)
    /storage/remy/go/src/pkg/net/fd_unix.go:553 +0x48c
    net.(*conn).Write(0x143f1670, 0x1408eff8, 0x7008, 0x7008, 0x10968000, ...)
    /storage/remy/go/src/pkg/net/net.go:129 +0xd0
    net.(*TCPConn).Write(0x143f1670, 0x1408eff8, 0x7008, 0x7008, 0x8000, ...)
    /storage/remy/go/src/pkg/net/dial.go:0 +0x40
    bufio.(*Writer).Write(0x13d63ea0, 0x1408eff8, 0x7008, 0x7008, 0xff8, ...)
    /storage/remy/go/src/pkg/bufio/bufio.go:488 +0xd0
    net/http.(*response).Write(0x14003840, 0x1408e000, 0x8000, 0x8000, 0x8000,
    ...)
    /storage/remy/go/src/pkg/net/http/server.go:507 +0x468
    net/http.(*writerOnly).Write(0x143f1a40, 0x1408e000, 0x8000, 0x8000,
    0x8000, ...)
    /storage/remy/go/src/pkg/net/http/chunked.go:0 +0x74
    io.Copy(0x109adb60, 0x143f1a40, 0x110c7500, 0x61, 0x3a8000, ...)
    /storage/remy/go/src/pkg/io/io.go:367 +0x25c
    net/http.(*response).ReadFrom(0x14003840, 0x110c7500, 0x61, 0x0, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/server.go:167 +0x240
    io.Copy(0x110d8260, 0x14003840, 0x110c7500, 0x61, 0x0, ...)
    /storage/remy/go/src/pkg/io/io.go:357 +0xa4
    net/http_test.func·106(0x110d8220, 0x14003840)
    /storage/remy/go/src/pkg/net/http/transport_test.go:958 +0xa4
    net/http.HandlerFunc.ServeHTTP(0xac6e8, 0x110d8220, 0x14003840,
    0x13aed620, 0x26948c, ...)
    /storage/remy/go/src/pkg/net/http/server.go:739 +0x40
    net/http.(*ServeMux).ServeHTTP(0x13d63e20, 0x110d8220, 0x14003840,
    0x13aed620, 0x110d8d60, ...)
    /storage/remy/go/src/pkg/net/http/server.go:998 +0x74
    net/http/httptest.(*waitGroupHandler).ServeHTTP(0x1464c7a0,
    0x110d8220, 0x14003840, 0x13aed620, 0x0, ...)
    /storage/remy/go/src/pkg/net/http/httptest/server.go:189 +0xd0
    net/http.(*conn).serve(0x13ff42d0, 0x0)
    /storage/remy/go/src/pkg/net/http/server.go:702 +0x604
    created by net/http.(*Server).Serve
    /storage/remy/go/src/pkg/net/http/server.go:1126 +0x4cc
    FAIL net/http 120.229s
  • Rémy Oudompheng at Nov 26, 2012 at 10:47 pm

    On 2012/11/26 Brad Fitzpatrick wrote:
    What value of GOMAXPROCS? goroutine 1102 in the stacks below is the sign of
    the expected failure for GOMAXPROCS > 1 until Issue 4434 is fixed.
    I think it was GOMAXPROCS=1 since it was under all.bash and I don't
    have particular environment variables.
  • Brad Fitzpatrick at Nov 26, 2012 at 10:50 pm

    On Mon, Nov 26, 2012 at 2:47 PM, Rémy Oudompheng wrote:
    On 2012/11/26 Brad Fitzpatrick wrote:
    What value of GOMAXPROCS? goroutine 1102 in the stacks below is the sign of
    the expected failure for GOMAXPROCS > 1 until Issue 4434 is fixed.
    I think it was GOMAXPROCS=1 since it was under all.bash and I don't
    have particular environment variables.
    It's likely the bug still exists with GOMAXPROCS=1 but is just hard to
    trigger on relatively fast machines, but your linux/arm triggers it more
    easily.

    FWIW, I couldn't reproduce that hang running the http tests in a loop on my
    linux-amd64 laptop with GOMAXPROCS=1, but it would happen after awhile on
    with GOMAXPROCS >1.

    I can disable the test if it's not fixed in the next day or so and is
    getting annoying.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-dev @
categoriesgo
postedNov 26, '12 at 12:08a
activeNov 26, '12 at 10:50p
posts19
users5
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase