1. 20 Oct, 2015 3 commits
    • Brad Fitzpatrick's avatar
      http2: fix server race · 56401056
      Brad Fitzpatrick authored
      This changes makes sure we never write to *writeData in the ServeHTTP
      goroutine until the serve goroutine is done with it.
      
      Also, it makes sure we don't transition the stream to the closed state
      on the final DATA frame concurrently with the write.
      
      To fix both, the writeFrameAsync goroutine no longer replies directly back
      to the ServeHTTP goroutine with the write result. It's now passed to
      the serve goroutine instead, which looks at the frameWriteMsg to
      decide how to advance the state machine, then signals the ServeHTTP
      goroutine with the result, and then advances the state machine.
      
      Because advancing the state machine could transition it to closed,
      which the ServeHTTP goroutine might also be selecting on, make the
      ServeHTTP goroutine prefer its frameWriteMsg response channel for errors
      over the stream closure in its select.
      
      Various code simplifications and robustness in the process.
      
      Tests now pass reliably even with high -count values, -race on/off,
      etc. I've been unable to make h2load be unhappy now either.
      
      Thanks to Tatsuhiro Tsujikawa (Github user @tatsuhiro-t) for the bug
      report and debugging clues.
      
      Fixes golang/go#12998
      
      Change-Id: I441c4c9ca928eaba89fd4728d213019606edd899
      Reviewed-on: https://go-review.googlesource.com/16063Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      56401056
    • Brad Fitzpatrick's avatar
      http2: update the curl and nghttp2 versions used in tests · c972803d
      Brad Fitzpatrick authored
      Also add a new h2load test, disabled by default.
      
      Change-Id: I0fcfdbf38cf86481c6347dd7e0a1daed7d9c7b65
      Reviewed-on: https://go-review.googlesource.com/16062Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      c972803d
    • Brad Fitzpatrick's avatar
      http2: fix broken test after ConfigureServer change · ddbc69e0
      Brad Fitzpatrick authored
      ConfigureServer now returns an error if your config is wrong. It
      doesn't attempt to fix it for you. Adjust this test accordingly.
      
      Change-Id: Ie3de878ff58cef454de0ec9ab1a10459ca0ddd2d
      Reviewed-on: https://go-review.googlesource.com/16061Reviewed-by: 's avatarAdam Langley <agl@golang.org>
      ddbc69e0
  2. 19 Oct, 2015 2 commits
  3. 16 Oct, 2015 1 commit
  4. 14 Oct, 2015 5 commits
  5. 13 Oct, 2015 4 commits
  6. 12 Oct, 2015 1 commit
  7. 11 Oct, 2015 1 commit
  8. 08 Oct, 2015 1 commit
  9. 06 Oct, 2015 1 commit
  10. 02 Oct, 2015 3 commits
  11. 27 Sep, 2015 3 commits
  12. 24 Sep, 2015 4 commits
  13. 03 Sep, 2015 1 commit
  14. 29 Aug, 2015 1 commit
  15. 24 Aug, 2015 2 commits
  16. 17 Aug, 2015 3 commits
  17. 13 Aug, 2015 1 commit
  18. 10 Aug, 2015 1 commit
    • Sameer Ajmani's avatar
      net/trace: add event logs. · 4a71d182
      Sameer Ajmani authored
      An event log is typically associated with a long-lived object, like an
      RPC connection.  Printf calls record events; Errorf calls record
      events marked as errors.  The HTTP endpoint /debug/events organizes
      event logs by family (usually the Go type name) and by
      time-since-last-error.  The expanded view shows recent events in the
      log and the call stack where the event log was created.
      
      Change-Id: I3461e0d63f39ce6495e16300299048e572b3aa19
      Reviewed-on: https://go-review.googlesource.com/12025Reviewed-by: 's avatarDavid Symonds <dsymonds@golang.org>
      4a71d182
  19. 05 Aug, 2015 1 commit
  20. 04 Aug, 2015 1 commit