1. 16 Aug, 2018 29 commits
  2. 14 Aug, 2018 11 commits
    • Nils Goroll's avatar
      Get the probe's VTP reference in the probe code · 7a549489
      Nils Goroll authored
      ... not in the caller
      7a549489
    • Nils Goroll's avatar
      tell the truth about vmod filenames · b0e924cd
      Nils Goroll authored
      b0e924cd
    • Dag Haavi Finstad's avatar
      Ensure that only the rxthread gets to use h2->cond in h2_send_get · ca354bdd
      Dag Haavi Finstad authored
      Future-proofing to avoid mistakenly introducing another race down the
      line.
      ca354bdd
    • Dag Haavi Finstad's avatar
      Use a separate condvar for connection-level flow control updates · a6533c74
      Dag Haavi Finstad authored
      The current flow control code's use of h2->cond is racy.
      
      h2->cond is already used for handing over a DATA frame to a stream
      thread. In the event that we have both streams waiting on this condvar
      for window updates and at the same time the rxthread gets signaled for a
      DATA frame, we could end up waking up the wrong thread and the rxthread
      gets stuck forever.
      
      This commit addresses this by using a separate condvar for window
      updates.
      
      An alternative would be to always issue a broadcast on h2->cond instead
      of signal, but I found this approach much cleaner.
      
      Probably fixes: #2623
      a6533c74
    • Nils Goroll's avatar
      polish: use TAKE_OBJ_NOTNULL · aa809b5d
      Nils Goroll authored
      aa809b5d
    • Nils Goroll's avatar
      92ee4e48
    • Nils Goroll's avatar
      Accurate ban statistics except for a few remaining corner cases · 2dfd573f
      Nils Goroll authored
      For ban statistics, we updated VSC_C_main directly, so if we raced
      Pool_Sumstat(), that could undo our changes.
      
      This patch fixes statistics by using the per-worker statistics
      cache except for the following remaining corner cases:
      
      * bans_persisted_* counters receive absolut updates, which does
        not seem to fit the incremental updates via the per-worker stats.
      
        I've kept these cases untouched and marked with comments. Worst
        that should happen here are temporary inconsistencies until the
        next absolute update.
      
      * For BAN_Reload(), my understanding is that it should only
        happen during init, so we continue to update VSC_C_main
        directly.
      
      * For bans via the cli, we would need to grab the wstat lock,
        which, at the moment, is private to the worker implementation.
      
        Until we make a change here, we could miss a ban increment
        from the cli.
      
      * for VCL bans from vcl_init / fini, we do not have access
        to the worker struct at the moment, so for now we also
        accept an inconsistency here.
      
      Fixes #2716 for relevant cases
      2dfd573f
    • Federico G. Schwindt's avatar
      Apply workaround for macos · 745924a0
      Federico G. Schwindt authored
      A bound socket will timeout instead of refusing the connection.
      Should fix b00015.vtc under macos.
      745924a0
    • Dag Haavi Finstad's avatar
      Proper END_STREAM handling · baf7a2d0
      Dag Haavi Finstad authored
      The previous commit made the assumption that END_STREAM is in the last
      of the frames in a header block. This is not necessarily the case.
      baf7a2d0
    • Dag Haavi Finstad's avatar
      Don't transition to CLOS_REM state until we've seen END_STREAM · 5fddc693
      Dag Haavi Finstad authored
      Previously we've been incorrectly transtitioning to CLOS_REM on
      END_HEADERS, which prevents us from seeing if a client incorrectly
      transmitted a DATA frame on a closed stream.
      
      This slightly complicates things in that we can now be in state OPEN
      with an inactive hpack decoding state, and we need to make sure on
      cleanup if that has already been finalized.
      
      This would be simpler if the h/2 spec had split the OPEN state in two
      parts, with an extra state transition on END_HEADERS.
      
      Again big thanks to @xcir for his help in diagnosing this.
      
      Fixes: #2623
      5fddc693
    • Federico G. Schwindt's avatar
      Also revert this as part of 44d28931 · 6d845b8a
      Federico G. Schwindt authored
      Should help with the ASAN builds in travis.
      6d845b8a