1. 28 Dec, 2020 3 commits
  2. 23 Dec, 2020 2 commits
  3. 21 Dec, 2020 1 commit
  4. 16 Dec, 2020 3 commits
    • Nils Goroll's avatar
      stabilize b40.vtc · bffb264d
      Nils Goroll authored
      seen in vtest:
      
      **   l1    Waiting for logexp
      **** dT    1.477
      **** l1    match|       1016 BogoHeader      c Missing header name: : Header
      ***  l1    expecting| expect * 1018 VCL_Error Bad header foo:
      
      /9 overtook /8
      bffb264d
    • Nils Goroll's avatar
      try to stabilize m17.vtc · 8cf192d5
      Nils Goroll authored
      seen in vtest:
      
      **   top   === server s1 -repeat 5 {
      **   s1    Starting server
      ---- s1    Server listen address (127.0.0.1 58150) cannot be resolved: bind(2)
      
      NB: I am not sure about this attempt
      8cf192d5
    • Nils Goroll's avatar
      make m49.vtc agnostic to log ordering · 249886ea
      Nils Goroll authored
      false negatives reported by vtest:
      
      **   top   === logexpect l1 -wait
      **   l1    Waiting for logexp
      **** l1    match|       1005 VCL_use         c vcl1
      ***  l1    expecting| expect 0 = ReqURL struct
      **** l1    err  |       1005 ReqURL          c /encode
      ---- l1    bad| expectation failed
      249886ea
  5. 15 Dec, 2020 1 commit
  6. 11 Dec, 2020 4 commits
    • Nils Goroll's avatar
      for backends created on a cold VCL, hide counters · b609a537
      Nils Goroll authored
      they are revealed by vbe_dir_event() on a warm event
      
      Fixes #3358
      b609a537
    • Nils Goroll's avatar
      close a race between VBP_Control() and vbp_thread() wrt VBH index · a494a1e2
      Nils Goroll authored
      VBP_Control() asserts that, when the vcl is warm, probes are scheduled
      to run (that is, exist on the probe scheduling binheap) and not so
      when the VCL is cold. This is correct because any VCL events are
      guaranteed to be serialized by mgt.
      
      vbp_thread(), however, momentarily left probes removed from the
      binheap while scheduling a probe not holding vbp_mtx, which left a
      window for VBP_Control() to find an active probe not on the binheap.
      
      Both vbp_thread() and vbp_task() re-schedule the probe at hand. The
      former in case scheduling the task fails, and the latter to reschedule
      it at the right interval relative to the probe having finished.
      
      We now re-schedule the probe in vbp_thread() before adding a task to
      run it, which does not change anything about the above, and, in
      particular, keeps vbp_mtx free while adding the probe task.
      
      Yet it closes the race and thus
      
      fixes #3362
      
      survived varnishtest -t 90 -n 10000 -j 200 -i tests/v00003.vtc
      a494a1e2
    • Nils Goroll's avatar
      lower footprint of v3.vtc · 16e1ea32
      Nils Goroll authored
      it does not need many worker threads and runs for >30s. This helps being
      able to run this test with more concurrency to test #3362
      16e1ea32
    • Guillaume Quintard's avatar
      rename the PowerTools leftovers · c1ae437c
      Guillaume Quintard authored
      c1ae437c
  7. 10 Dec, 2020 3 commits
    • Nils Goroll's avatar
      flexelint · 17c148c1
      Nils Goroll authored
      ... thinks this statement is confusing.
      
      Ref: 15f94d33
      17c148c1
    • Nils Goroll's avatar
      gc duplicate call to VBP_Update_Backend() when creating backends · b1f81218
      Nils Goroll authored
      VRT_new_backend_clustered() is the only caller of VBP_Insert().
      
      There, VBP_Update_Backend() needs to be called after the director is
      created in order to update the director status for a cold VCL.
      
      For a warm VCL, VBP_Update_Backend() is called via
      VRT_AddDirector() -> VDI_Event() -> vbe_dir_event() -> VBP_Control()
      
      Thus, the additonal call before the director is added to the backend,
      does not do anything but update the poll bits.
      
      Somehow related to #3362
      b1f81218
    • Dridi Boukelmoune's avatar
      vsb: Speed VSB_cat() up using VSB_bcat() · 15f94d33
      Dridi Boukelmoune authored
      We don't need to assert the integrity of the VSB after every single
      byte, it can become very expensive depending on the workload.
      15f94d33
  8. 09 Dec, 2020 3 commits
  9. 07 Dec, 2020 6 commits
  10. 03 Dec, 2020 5 commits
  11. 02 Dec, 2020 5 commits
  12. 30 Nov, 2020 4 commits
    • Nils Goroll's avatar
      silence flexelint on a condition which is known to be always false · e1b0a930
      Nils Goroll authored
      ... unless we f*up, which is the sole purpose of its existence
      e1b0a930
    • Nils Goroll's avatar
      stupid glitch · 462c0f2e
      Nils Goroll authored
      462c0f2e
    • Nils Goroll's avatar
      Utility function for more thorough VRT_CTX sanity checking · f825ef93
      Nils Goroll authored
      this needs to live within the exclusive circle of cache_vcl.h includers, so I
      went for cache_vrt_vcl.c just because of the name.
      f825ef93
    • Nils Goroll's avatar
      Methods for vmod_priv · 681c1199
      Nils Goroll authored
      This is the refactoring we agreed on to enable an alternative
      implementation of #3454. This PR does not yet introduce the copy
      callback needed to add the functionality suggested in #3454.
      
      We replace the .free pointer of struct vmod_priv with a pointer to a
      methods struct with callbacks. As of this commit, it only contains
      the .free callback renamed to .fini. The purpose of the refactoring is
      to allow addition of more callbacks later.
      
      The new struct vmod_priv_methods also contains a .type member pointing
      to a string to contain an arbitrary description of the type of data any
      priv holds which uses these methods.
      
      Implementation:
      
      relevant changes are in cache_vrt_priv.c and vrt.h, other changes are to
      the documentation and bundled vmods.
      
      The implementation is a simple refactoring for indirection of the call
      to the .fini callback via the methods structure.
      681c1199