1. 02 Mar, 2021 3 commits
    • Poul-Henning Kamp's avatar
      doc: Bring back changes to vcl-hashing.rst · 75c7f15a
      Poul-Henning Kamp authored
      On their own, those changes improve the documentation and don't mention
      the reverted "hash_data() in vcl_recv" feature.
      
      Refs e98e8e64
      75c7f15a
    • Dridi Boukelmoune's avatar
      hash: Revert recent hash changes · 5ea8940c
      Dridi Boukelmoune authored
      This reverts the following commits:
      
      - e98e8e64.
        "Documentation updates for changed `vcl_hash{}` / `hash_data()`"
      - 001279eb.
        "Document proper design pattern for using hash_data() in vcl_recv,"
      - e36573e2.
        "Add a test-case for hash_data() in vcl_recv{}"
      - 03fe0cee.
        "Allow hash_data() in vcl_recv{}"
      - 4ebc3cfe.
        "Make it possible to override the initial digest, and explain in"
      - d6ad52f5
        "Change the way we calculate the hash key for the cache."
      
      Conflicts:
      	doc/sphinx/reference/dp_vcl_recv_hash.rst
      	doc/sphinx/reference/index.rst
      
      Concerns were raised regarding a change of the way we compute the hash
      key outside of the dot-zero release where we would expect such breaking
      changes (among other things, vmod_shard relies on hash stability).
      
      There is also no definite consensus of how to handle hashing from
      vcl_recv.
      5ea8940c
    • Nils Goroll's avatar
      Accept all ENET* ECONN* EHOST* errnos · 81aa74cc
      Nils Goroll authored
      ... documented on Linux as POSIX.1
      
      The exception here is ECONNREFUSED which so far we only tolerate for
      Solaris and which seems to make sense for connect() only.
      
      To be discussed in #3539
      81aa74cc
  2. 01 Mar, 2021 8 commits
  3. 25 Feb, 2021 1 commit
  4. 24 Feb, 2021 12 commits
  5. 23 Feb, 2021 2 commits
    • Dridi Boukelmoune's avatar
      pool: Wait when we run out of workers · 68727334
      Dridi Boukelmoune authored
      Since the removal of dry signals, pools will spin when they run out of
      threads and increment MAIN.threads_limited at a very high rate. That
      spike in CPU consumption will also have detrimental effects on useful
      tasks.
      
      This change introduces a 1s delay when the pool is saturated. This
      allows to periodically exercise the watchdog check. We could wait until
      the watchdog times out but we would also miss potential updates to the
      thread_pool_watchdog parameter.
      
      To avoid spurious increments of MAIN.threads_limited we only take task
      submissions into account and ignore timeouts of the condvar.
      
      Refs #2942
      Refs #3531
      68727334
    • Poul-Henning Kamp's avatar
      Add missing X-ref · fbee34a6
      Poul-Henning Kamp authored
      fbee34a6
  6. 22 Feb, 2021 11 commits
  7. 21 Feb, 2021 1 commit
    • Nils Goroll's avatar
      Make threads_limited counter accurate · 2bd5d2ad
      Nils Goroll authored
      In pool_herder(), we do as much work as possible outside the pool
      mutex. In particular, we check if we need to breed more threads, then
      we do more checks, and finally we aquire the lock and either go sleep
      or increase the threads_limited counter if, at that point, lqueue is
      non-zero.
      
      Yet it could have increased since we last checked, and there is
      nothing wrong with that, we will breed a new thread in the next
      iteration of the loop.
      
      Increase threads_limited only if we would not bread a new thread right
      away.
      
      Fixes #3531
      2bd5d2ad
  8. 20 Feb, 2021 1 commit
  9. 18 Feb, 2021 1 commit