1. 10 Mar, 2020 14 commits
  2. 09 Mar, 2020 5 commits
  3. 07 Mar, 2020 4 commits
  4. 06 Mar, 2020 3 commits
  5. 05 Mar, 2020 4 commits
    • Nils Goroll's avatar
      finish my first pass trough commits for the changelog · 70328380
      Nils Goroll authored
      this might need more love in places, but I wanted to get my first
      pass done and pushed before an ICE train arrives in Hamburg.
      
      I suggest we aim for a complete and correct changelog first before we
      rewrite/reformat it for the release- and upgrading notes.
      
      Please review and feel free to fix/improve or add additional changes
      which I left out or might have missed.
      70328380
    • Nils Goroll's avatar
      improve operator documentation · 7bebe588
      Nils Goroll authored
      7bebe588
    • Dridi Boukelmoune's avatar
      Speed up Travis CI builds · 9f6df49f
      Dridi Boukelmoune authored
      The longest part is the test suite, so in order to release build
      machines sooner I hope that 8 concurrent jobs will strick a good
      balance between speed and resource consumption, considering that
      test cases mostly wait.
      
      That is still below what we do for Circle CI builds with 12 jobs
      for distcheck tasks.
      9f6df49f
    • Nils Goroll's avatar
      changelog tlc · 7c8a71a7
      Nils Goroll authored
      went through commits and dropped notes in running order, stopped at
      f402e5ff for now (had to switch tasks)
      7c8a71a7
  6. 04 Mar, 2020 4 commits
  7. 03 Mar, 2020 6 commits
    • Dridi Boukelmoune's avatar
      Kill dead assert · 9db32058
      Dridi Boukelmoune authored
      The havemsg variable is purely local, and only written-then-read once.
      9db32058
    • Dridi Boukelmoune's avatar
      More documentation on automade VSCs · 8c91e49d
      Dridi Boukelmoune authored
      8c91e49d
    • Nils Goroll's avatar
      respect `send_timeout` for "dripping" http1 writes · 49e44e39
      Nils Goroll authored
      Previously, we only checked `v1l->deadline` (which gets initialized
      from the `send_timeout` session attribute or parameter) only for short
      writes, so for successful "dripping" http1 writes (streaming from a
      backend busy object with small chunks), we did not respect the
      timeout.
      
      This patch restructures `V1L_Flush()` to always check the deadline
      before a write by turning a `while() { ... }` into a `do { ... }
      while` with the same continuation criteria: `while (i != v1l->liov)`
      is turned into `if (i == v1l->liov) break;` and `while (i > 0 || errno
      == EWOULDBLOCK)` is kept to retry short writes.
      
      This also reduces the `writev()` call sites to one.
      
      Fixes #3189
      49e44e39
    • Nils Goroll's avatar
      explicitly disable the send deadline on the backend side · 7d3ffa51
      Nils Goroll authored
      As @Dridi and myself concluded, the send_timeout had no effect on
      backend connections anyway because we never set SO_SNDTIMEO (aka
      idle_send_timeout on the client side) on backend connections.
      
      With the next commit, we will fix the send_timeout on the client side and
      thus would also enable it for "dripping" writes on the backend side.
      
      To preserve existing behavior for the time being, we explicitly disable
      the timeout (actually deadline) on the backend side. There is ongoing
      work in progress to rework all of our timeouts for 7.x.
      
      Implementation note: if (VTIM_real() > v1l->deadline) evaluates to false
      for v1l->deadline == NaN
      
      Ref #3189
      7d3ffa51
    • Nils Goroll's avatar
      Test that std.syslog does not clear a workspace overflow · 9844c65a
      Nils Goroll authored
      and check our WS_Snapshot() / WS_Reset() debug messages
      9844c65a
    • Nils Goroll's avatar
      An overflowed workspace must remain overflowed after WS_Reset() · 896151b4
      Nils Goroll authored
      We use workspace overflows to signal to bail out for example after a
      failing `VRT_SetHdr()`. This is a guarantee that if some serious issue
      occurred during processing, we rather send an error downstream than an
      incomplete response or the result of incomplete processing.
      
      We use the `WS_Snapshot() ...  WS_Reset()` pattern as some kind of
      second order workspace allocation where the called code itself uses
      `WS_Reserve()`.
      
      With this usage pattern, `WS_Reset()` called `ws_ClearOverflow(ws)`,
      potentially clearing the overflow bit from a previous relevant
      failure.
      
      We now avoid any other unintended clears of the overflow bit by
      splitting two functions:
      
      * WS_Rollback() is now what WS_Reset() used to be: It clears overflows
        and accepts the zero cookie for a reset-to-start
      
        It is only intended for use within varnishd and is thus declared
        in cache_varnishd.h
      
      * WS_Reset() does not touch the overflow bit any longer, ensuring that
        a once-overflowed workspace stays overflowed
      
      `WS_Snapshot()` now returns a magic value which gets recognized by
      `WS_Reset()` to ensure that the overflowed marker is still present.
      This serves two purposes:
      
      - better debugging and
      
      - a safety measure against passing a cookie from an already overflowed
        workspace to WS_Rollback()
      
      Fixes #3194
      896151b4