1. 01 Apr, 2020 12 commits
    • Nils Goroll's avatar
      9427a610
    • Nils Goroll's avatar
      support concurrent access to PRIV_TOP · 27349a30
      Nils Goroll authored
      in varnish-cache, access to all ESI sub-requests happens in a single
      thread, but vmods (VDPs) may add concurrency.
      
      We thus protect access to PRIV_TOP with the session mutex.
      
      Any vmods using this facility will likely need to add additional locking for
      the actual data structures referenced through the PRIV_TOP and any other
      access to the top request.
      
      For alternatives previously considered, see #3139
      27349a30
    • Nils Goroll's avatar
      assert for VGZ_NewGzip() failures · d1bd80e8
      Nils Goroll authored
      VGZ_NewGzip will either assert or succeed.
      d1bd80e8
    • Nils Goroll's avatar
      Handle workspace allocation errors in VEP_Init() · 0f3af407
      Nils Goroll authored
      Turn assertion into VFP error
      
      The vtc is based upon r02645.vtc and reliably reproduces the panic
      without the patch by sweeping through possible amounts of free workspace
      ranging from 4 to 400 bytes.
      
      Fixes #3253
      0f3af407
    • Dridi Boukelmoune's avatar
      Defer the illegal write check a bit · ed36b638
      Dridi Boukelmoune authored
      After the initial discussion from #3163, and looking more closely at how
      variable access is handled in subroutines I noticed a discrepancy.
      
      Setting a read only variable like obj.ttl in vcl_recv would result in
      a misleading error message explaining that it is read only, instead of
      simply not available.
      
      This change defers the illegal write check, registering unconditionally
      that the symbol was used in a set action. As a result we always get the
      correct error message but depending on whether this is happening in a
      vcl_ or custom subroutine we may either get "in subroutine" or "from
      subroutine" in the error message. A minor discrepancy probably worth
      getting rid of the prior inconsistency.
      
      This is covered by the v21 test case.
      ed36b638
    • Dridi Boukelmoune's avatar
      Manage symbol references with higher-level types · df4804b9
      Dridi Boukelmoune authored
      That would be the symbol itself instead of only the relevant mask, and a
      XREF constants wrapping the error message as well. The `struct xrefuse`
      pun was definitely intended.
      df4804b9
    • Dridi Boukelmoune's avatar
      Start interactive varnishstat with relevant verbosity · 3399615a
      Dridi Boukelmoune authored
      Where relevant means the highest verbosity when fields are filtered with
      -f on the command line. There is still a caveat that this only applies
      for the first iteration, and some parameters may conditionally appear
      and not be visible when that event occurs (for example, when the child
      process starts).
      
      The rebuild variable was used as a bitmap but did not make use of
      individual bits. This is now the case, but only for the two actionable
      rebuild conditions.
      
      Closes #2990
      3399615a
    • Dridi Boukelmoune's avatar
      Draw the varnishstat help screen · f4d726d9
      Dridi Boukelmoune authored
      Refs #2990
      f4d726d9
    • Dridi Boukelmoune's avatar
      Generate an array of lines for the varnishstat help · f6cae5a7
      Dridi Boukelmoune authored
      Refs #2990
      f6cae5a7
    • Dridi Boukelmoune's avatar
      Remove unused variables · 5d145c1d
      Dridi Boukelmoune authored
      5d145c1d
    • Dridi Boukelmoune's avatar
      Introduce a blank help screen in varnishstat · ec8eb15f
      Dridi Boukelmoune authored
      The plan is to reuse the points window and keep the status window going.
      
      Refs #2990
      ec8eb15f
    • Dridi Boukelmoune's avatar
      Polish · 4807f6a5
      Dridi Boukelmoune authored
      4807f6a5
  2. 30 Mar, 2020 1 commit
  3. 22 Mar, 2020 1 commit
  4. 20 Mar, 2020 1 commit
  5. 17 Mar, 2020 4 commits
  6. 16 Mar, 2020 3 commits
  7. 15 Mar, 2020 2 commits
  8. 13 Mar, 2020 10 commits
  9. 12 Mar, 2020 1 commit
  10. 11 Mar, 2020 5 commits