1. 10 Mar, 2020 15 commits
    • Dridi Boukelmoune's avatar
      Manage libvarnish.a with libtool · 54c0bb85
      Dridi Boukelmoune authored
      It remains a private static library. Neither libvarnishapi nor test
      cases from libvarnish use individual source files besides the ones
      containing test drivers.
      
      It can lead to very cryptic messages where a symbol is defined twice
      from different sources, where the sources are the same but the object
      code is technically different (a copy built from _SOURCES and a copy
      in libvarnish.a).
      
      While at it, add sanitizers flags to all libvarnish test cases.
      54c0bb85
    • Dridi Boukelmoune's avatar
      Mention witness.sh in the changelog · acce95fe
      Dridi Boukelmoune authored
      It can definitely be used in third party VMOD projects.
      acce95fe
    • Dridi Boukelmoune's avatar
      0e84a5a5
    • Dridi Boukelmoune's avatar
      More changelog TLC · 554f8ba0
      Dridi Boukelmoune authored
      554f8ba0
    • Dridi Boukelmoune's avatar
      9cd38f90
    • Nils Goroll's avatar
      try to avoid a make race · b365be2d
      Nils Goroll authored
      vcc_compile.h is generated and included by other compilation units, so
      we need to make sure that this happens in sequence.
      
      Seen on vtest:
      
      make[5]: Entering directory
      '/tmp/vtest.32_sun12.4/varnish-cache/lib/libvcc'
        CC       libvcc_a-vcc_acl.o
        CC       libvcc_a-vcc_action.o
        CC       libvcc_a-vcc_backend.o
        CC       libvcc_a-vcc_backend_util.o
        CC       libvcc_a-vcc_compile.o
        CC       libvcc_a-vcc_expr.o
      mkdir -p ../../include/tbl
      /opt/local/bin/python3.4 ../../lib/libvcc/generate.py \
          ../.. ../..
        CC       libvcc_a-vcc_parse.o
        CC       libvcc_a-vcc_storage.o
        CC       libvcc_a-vcc_symb.o
      "vcc_compile.h", line 194: undefined symbol: VCL_RET_MAX
      "vcc_compile.h", line 194: can not declare variably modified type at file scope
      cc: acomp failed for vcc_parse.c
      Makefile:668: recipe for target 'libvcc_a-vcc_parse.o' failed
      b365be2d
    • Nils Goroll's avatar
      vmod_blob flexelinting round 3 · 519aeba7
      Nils Goroll authored
      it seems I wrongly assumed that SIZE_MAX would be defined as a positive
      integer, in fact it looks like (size_t)-1 was used.
      
      Ref: 2d890940
      519aeba7
    • Nils Goroll's avatar
      Stabilize test · 92a047ce
      Nils Goroll authored
      Have seen ExpKill interfere with the Debug messages in vtest
      92a047ce
    • Nils Goroll's avatar
      flexelinting · f051f269
      Nils Goroll authored
      f051f269
    • Nils Goroll's avatar
      vmod_blob flexelinting round 2 · 2d890940
      Nils Goroll authored
      2d890940
    • Nils Goroll's avatar
      vmod_blob flexelinting · 2fd1c81b
      Nils Goroll authored
      2fd1c81b
    • Nils Goroll's avatar
      drop the probe lock while scheduling a probe · f42141f2
      Nils Goroll authored
      The great witness test introduced by @bsdphk and reworked relatively
      recently by @Dridi reported a hypothetical lock cycle here.
      
      This was not a real issue, because the scheduling code would not re-enter
      the probe code, yet we might still drop the probe lock while
      scheduling.
      f42141f2
    • Dridi Boukelmoune's avatar
      First attempt at a Travis CI witness job · 11d0f63d
      Dridi Boukelmoune authored
      At this point I have no idea what I'm doing and no motivation to learn
      further YAML so I'll do something I hate: trigger a CI build and resume
      what I was working on until it completes.
      
      Refs 0c645dbf
      11d0f63d
    • Nils Goroll's avatar
      Also give the per-pool lock its own class · 8f35a32d
      Nils Goroll authored
      (see previous)
      8f35a32d
    • Nils Goroll's avatar
      give vbp_mtx its own lock class · 0c645dbf
      Nils Goroll authored
      We used lck_backend both for vbp_mtx and for the mtx on individual
      backends.
      
      This lead to confusing results of the brinch hansons arrows produced by
      make witness.
      0c645dbf
  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 5 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