1. 05 Jan, 2020 1 commit
  2. 03 Jan, 2020 2 commits
  3. 02 Jan, 2020 3 commits
    • Dridi Boukelmoune's avatar
      Attempt at stabilizing s10 · df9f3489
      Dridi Boukelmoune authored
      This test has been relying on SLT_Debug records from day one and now
      that we have SLT_Notice we could perpetuate this information and at
      the same time grant ourselves the freedom to explain each case and
      which parameters may be used to try to improve the situation.
      df9f3489
    • Dridi Boukelmoune's avatar
      Attempt at stabilizing e19 · 895810cb
      Dridi Boukelmoune authored
      I'm no longer able to time it out under load.
      895810cb
    • Dridi Boukelmoune's avatar
      Stabilize c91 · bbfc5df5
      Dridi Boukelmoune authored
      There was a race with the reuse of s1 and server -dispatch was the
      simplest way to also circumvent the race where varnish could retry
      before s1 would reach the next accept action.
      
      While at it, add coverage for the 503 case.
      bbfc5df5
  4. 01 Jan, 2020 3 commits
  5. 31 Dec, 2019 2 commits
    • Dridi Boukelmoune's avatar
      Tweak test cases to work with or disable accept_filter · ef420233
      Dridi Boukelmoune authored
      The test cases disabling the accept_filter parameter are those involving
      GET requests with a body that are meant to be cached, and one test case
      covering OOB data. The rest uses the POST method since the httpready
      filter will only let syntactically correct GET or HEAD methods pass to
      the application.
      
      Apparently FreeBSD's httpready filter considers that a GET request with
      a body is syntactically incorrect although this is not specifically said
      in the manual. The HTTP specification doesn't forbid such requests and
      they are hard to justify considering the semantics of GET and HEAD, but
      there are products in the wild relying on that.
      
      On the other hand GET\r\n\r\n isn't considered malformed, see r01881.vtc.
      
      We don't need the dataready filter on FreeBSD for listen addresses that
      expect a PROXY protocol header, the httpready filter will effectively
      work like that if the request doesn't look like a GET or a HEAD.
      ef420233
    • Dridi Boukelmoune's avatar
      Add a hint in the accept_filter documentation · 5604bdaa
      Dridi Boukelmoune authored
      Trying to understand why I was seeing setsockopt fail on FreeBSD VTEST
      boxes and why it failed with an undocumented ENOENT I finally realized
      that I needed to kldload accf_http beforehand.
      
      The ENOENT errno was probably a result of accept_filter code not finding
      a kernel module for "httpready".
      5604bdaa
  6. 30 Dec, 2019 7 commits
  7. 29 Dec, 2019 7 commits
  8. 27 Dec, 2019 5 commits
    • Dridi Boukelmoune's avatar
      Plug leaks caught by c80 with ASAN · 93686c6a
      Dridi Boukelmoune authored
      This is only a matter of leaving the acceptor loop to always free the
      poolsock before returning from the function. This was initially done in
      only one place out of three, with no room to exit the accept inner loop
      in the absence of an incoming connection.
      
      With this we may have everything in place to drop the drop_pools debug
      flag.
      
      Refs 656982a5
      Closes #3177
      93686c6a
    • Dridi Boukelmoune's avatar
      Plug memory leaks witnessed in varnishtest · 5a55b53a
      Dridi Boukelmoune authored
      For those that aren't leaked on purpose, that is...
      5a55b53a
    • Dridi Boukelmoune's avatar
      Restore previous VRT_AddDirector semantics · 00fa3c75
      Dridi Boukelmoune authored
      Upon failure, don't destroy the underlying director implementation. When
      the deletion code was split in c671bb66
      in order to be reused in 61529854, it
      mistakenly included the director implementation.
      
      Instead, it's really the caller's job to tear down the backend if it
      couldn't be added. Since vbe_destroy operates on a director, it is split
      in two to avoid reintroducing the previous "undo" code duplication.
      
      Refs #3176
      00fa3c75
    • Dridi Boukelmoune's avatar
      Remove the opportunistic COOLING check · cb6ef119
      Dridi Boukelmoune authored
      Otherwise at this point nothing is undone. And backend creation while a
      VCL is stuck in the COOLING state should be unlikely enough that we can
      assume the happy path by default.
      
      Refs #3176
      cb6ef119
    • Federico G. Schwindt's avatar
      No longer needed · 8c90b585
      Federico G. Schwindt authored
      Fixed in 7ff636dc.
      8c90b585
  9. 26 Dec, 2019 3 commits
    • Dridi Boukelmoune's avatar
      Plug minor leak · aeead7e7
      Dridi Boukelmoune authored
      aeead7e7
    • Dridi Boukelmoune's avatar
      Only let VRT_AddDirector undo a COOLING attempt · 07a09db9
      Dridi Boukelmoune authored
      When a VCL is in the COOLING state it is supposed to delete the director
      that was being added, but at the same time when a VBE backend fails to
      be added as a director it would also undo itself.
      
      This is in general a code path very hard to reach because either this
      happens in a worker and the opportunistic check always kicks in to hide
      the problem or this is done asynchronously (e.g. non-blocking lookups to
      create dynamic backends) and the race window is very small. In order to
      solve this the opportunistic check is skipped in VTC mode.
      
      The test coverage with vmod_debug is done synchronously to make things
      easier, but for this reason vbe_destroy can no longer expect to only run
      in the CLI thread.
      
      This is inspired by a similar patch by Martin for a different branch,
      since VRT_AddDirector deletes the backend upon failure, everything needs
      to be set up beforehand.
      
      We have to tolerate backend creation attempts in a COOLING VCL because
      in the asynchronous case the VCL temperature will change before COLD
      events are dispatched so there's no way to prevent a race.
      
      Closes #3176
      07a09db9
    • Dridi Boukelmoune's avatar
      Add coverage for backend creation in a cold VCL · f9b7f181
      Dridi Boukelmoune authored
      Refs #3176
      f9b7f181
  10. 24 Dec, 2019 3 commits
    • Guillaume Quintard's avatar
      [cci] better weekly handling · a4539949
      Guillaume Quintard authored
      if version is trunk, change it to the current date and add a flag file
      so that packages can be suffixed with -weekly/.weekly depending on the
      platform
      a4539949
    • Martin Blix Grydeland's avatar
      Add an assert that VRT_delete_backend is only called once · 08593cb9
      Martin Blix Grydeland authored
      VRT_delete_backend() sets be->cooled to non-zero as the only place where
      that is done. Assert that it is zero on entry as a check that
      VRT_delete_backend isn't called multiple times.
      08593cb9
    • Martin Blix Grydeland's avatar
      Set be->cooled while holding backends_mtx · bea2939c
      Martin Blix Grydeland authored
      Several functions (VBE_Poll and vbe_destroy) tests be->cooled == 0 to
      determine which of the two lists backends and cool_backends a specific
      instance currently lives on. If the flag is in the process of being
      changed, then the wrong list head may be used and will result in strange
      bugs.
      bea2939c
  11. 23 Dec, 2019 4 commits