1. 08 Feb, 2023 6 commits
    • Dridi Boukelmoune's avatar
      vtc_server: Make the dispatch check reliable · 1608518b
      Dridi Boukelmoune authored
      If a dispatch server instance is already done by the time we list
      servers with varnish -vcl+backend we end up with the condition failing
      on the fd field being negative, since the session was already closed.
      
      Adding an explicit flag will prevet that from happening.
      1608518b
    • Dridi Boukelmoune's avatar
      Revert "On linux, use close_range() if available and prefer it over closefrom()" · 31baed29
      Dridi Boukelmoune authored
      This reverts commit 0c1aef58.
      
      The close_range(2) system call is too recent and not recognized by the
      host system on CircleCI, so the fedora-latest container detects it but
      is denied execution (EPERM) from the host's libseccomp.
      
      Also, on platforms with neither close_range(2) nor closefrom(2) we ended
      up not including <dirent.h> and failing virtually everywhere in our CI.
      
      The ifdef dance could have looked like this:
      
          #ifdef HAVE_LINUX_CLOSE_RANGE_H
          #  include <linux/close_range.h>
          #elif HAVE_CLOSEFROM
          #else
          #  include <dirent.h>
          #endif
      
      Note the extra #else missing from the original patch.
      
      This is reverted for now because we need to check that close_range(2)
      works at configure time to circumvent the host mismatch problem.
      31baed29
    • Dridi Boukelmoune's avatar
      vtc: Fix c113 · 6f50b7c8
      Dridi Boukelmoune authored
      I changed Walid's test to make it run faster and created an unfortunate
      race condition as a result.
      6f50b7c8
    • Walid Boudebouda's avatar
      backend_probe: Honor the expect_close attribute · 3ffb28c8
      Walid Boudebouda authored
      Considering that both Varnish and the backend should normally react to
      the `Connection: close` header added by default, and considering how the
      probe code is structured, the least intrusive approach is to tolerate a
      timeout when we don't expect the backend to actively close the
      connection.
      3ffb28c8
    • Walid Boudebouda's avatar
      vcc_backend: Add an expect_close attribute to probes · 7078d783
      Walid Boudebouda authored
      Despite adding a `Connection: close` header by default to probe
      requests, Varnish does not actively close the connection as it should.
      This new attribute will allow to tolerate backends that equally don't
      honor this header, and it is true by default to match the current
      behavior.
      7078d783
    • Walid Boudebouda's avatar
      380e3a4c
  2. 07 Feb, 2023 2 commits
  3. 01 Feb, 2023 3 commits
    • Guillaume Quintard's avatar
      fetch: Backends are in charge of printing headers · 70633086
      Guillaume Quintard authored
      The current backend implementation reads the headers all at once, as a
      big buffer, then manually chops them up, and later on, in the startfetch
      step, Varnish loops through all the headers and prints them.
      
      This is inconvenient for custom backends that are most likely going to
      use http_SetH() (directly or via http_SetHeader(), http_PrinfHeader() or
      others), which also prints the headers being added. As a result, those
      implementations end up logging the header twice.
      
      To work around the issue we can push the burden of logging the beresp
      headers onto the backend implementation. It does change one test, as
      now the Timestamp:Beresp log record appears after the headers instead
      of before.
      70633086
    • Poul-Henning Kamp's avatar
      Give the ESI doc a wash · 1cbf4873
      Poul-Henning Kamp authored
      1cbf4873
    • Dridi Boukelmoune's avatar
      vtc: Drive-by redesign of c55 · c607e9b1
      Dridi Boukelmoune authored
      There's no point checking that a resp header is unset when we don't
      rxresp in the first place... There were other things that could be
      simplified.
      c607e9b1
  4. 31 Jan, 2023 10 commits
  5. 30 Jan, 2023 10 commits
    • Dridi Boukelmoune's avatar
      jail_solaris: Retire mgt_param.[gu]id usage · 9b42ca37
      Dridi Boukelmoune authored
      This fields were never set in the first place so they went away in #3888.
      
      We don't have SunOS coverage on Github so I noticed it after the facts.
      I did look at the Solaris jail but somehow missed that those fields were
      used there as well. Chances are that the deleted statements never ran in
      the first place, otherwise the assertions would have triggered.
      
      If the solaris jail should set[gu]id(2) as part of its privileges drop,
      it should probably grow new sub-options similar to the ones in the unix
      jail.
      
      Refs #3888
      9b42ca37
    • Dridi Boukelmoune's avatar
      vtc_http: Turn http::timeout into a duration · 27017722
      Dridi Boukelmoune authored
      This aligns with varnishd where durations are always computed in seconds
      instead of introducing corner cases where sometimes it's milliseconds.
      
      It also aligns with vtc_syslog that was introduced after the change to
      "seconds everywhere" in varnishd.
      27017722
    • Dridi Boukelmoune's avatar
      varnishtest: Turn vtc_maxdur into a vtim_dur · db49f013
      Dridi Boukelmoune authored
      We already pass it to VEV and VCLI subsystems in places where a
      double is expected.
      
      Trivia: we currently parse it in two distinct ways. So for now I'm
      not eager to support duration units.
      db49f013
    • Dridi Boukelmoune's avatar
      heritage: Remove unset params::[gu]id fields · 02636039
      Dridi Boukelmoune authored
      They are shared with the cache process but are never used. Only the VCC
      process uses them, but they are never set. This specific fchown(2) call
      in the VCC process was probably a no-op in the first place: since the
      fields are never set this is transferring ownership to root:root and if
      that succeeded the process was already root in the first place. If it
      failed, we never see the error message since we lacked root privileges.
      
      Both the unix and solaris jails are designed to run VCC (and CC) with
      limited privileges, and in the absence of a jail, the outcome should be
      the same: VCC creates a file with credentials suitable for the next CC
      invocation.
      02636039
    • Dridi Boukelmoune's avatar
      build: Move zlib checks down · aad8de86
      Dridi Boukelmoune authored
      As I suspected, the -Werror setup for libvgz C flags were needed to
      properly discard them for suncc. Both warnings are conditionally not
      turned into errors, so -Wno-unknown-warning-option should no longer
      be needed.
      
      Refs madler/zlib#633
      aad8de86
    • Dridi Boukelmoune's avatar
      build: Revisit zlib C flags one more time · 79c7d175
      Dridi Boukelmoune authored
      Trying to fix the build for clang 15 actually broke the build for GCC.
      
      The -Werror that was initially set after saving CFLAGS was meant to be
      part of NO_VIZ test. We turn warnings into errors later in the configure
      script so at this point we shouldn't care about it. If we really do, we
      can move this check below the line where -Werror is set.
      
      GCC chokes on -Wno-error=deprecated-non-prototype so instead we add it
      conditionally.
      
      To match the naming convention everywhere else, libvgz_extra_cflags was
      renamed to VGZ_CFLAGS.
      
      Refs 118fd10c
      79c7d175
    • Poul-Henning Kamp's avatar
    • Dridi Boukelmoune's avatar
      build: Better handle zlib-specific C flags · e41b6ca0
      Dridi Boukelmoune authored
      There are two warnings that we enforce for our own code that zlib does
      not. There's also the visibility attribute that we check at configure
      time. And regarding the visibility attribute, zlib no longer relies on
      a NO_VIZ macro and aligned with the autoconf naming convention and wants
      HAVE_HIDDEN instead.
      e41b6ca0
    • Dridi Boukelmoune's avatar
      118fd10c
    • Poul-Henning Kamp's avatar
      Fix printf format for uintmax_t. · e54d6734
      Poul-Henning Kamp authored
      Spotted by: Coverity
      e54d6734
  6. 24 Jan, 2023 1 commit
  7. 23 Jan, 2023 2 commits
  8. 18 Jan, 2023 4 commits
  9. 17 Jan, 2023 2 commits