1. 27 Apr, 2022 1 commit
    • Nils Goroll's avatar
      Prepare for onerror= support · 2ebf3844
      Nils Goroll authored
      This change does not do anything yet, it just saves the abort flag.
      
      Ref varnish-cache:
      - 26097fb091496f79ef9a38b22e3639735fb39280
      - a8449faff23a3c29d19781998fa5f2ee7ce110af
      2ebf3844
  2. 25 Jan, 2022 2 commits
  3. 12 Jan, 2022 1 commit
    • Geoff Simmons's avatar
      Avoid permissions issues with the UDS in permutations*.vtc. · 47c1cea4
      Geoff Simmons authored
      We've had reports of these tests failing on some platforms (e.g.
      FreeBSD 13), with FetchError reporting EPERM for the backend that
      accesses the UDS.
      
      Since it's not a pesi issue, and not related to the properties under
      test, we might as well allow fully open access to the UDS.
      47c1cea4
  4. 10 Jan, 2022 1 commit
  5. 29 Oct, 2021 1 commit
  6. 27 Oct, 2021 4 commits
    • Nils Goroll's avatar
      Fix a race between vdp_pesi_fini() and vped_task() on done flag · 58a1f111
      Nils Goroll authored
      To terminate a subrequest, we need to do two things:
      
      - fini the task (signal that the thread handling the subrequest in
        parallel is about to terminate)
      
      - signal that the node representing the subrequest can be picked up by
        esi_level 0 delivery
      
      From the perspective of delivery (unpending), the former needs to
      happen before the latter (delivery needs to be sure that no other
      thread is working on the node), so we call task_fini() before
      signalling that the node done status has changed.
      
      The top level delivery thread, however, might need to tear down the
      tree, which assumes that all subrequests have finished. For this, it
      checks the task list and waits for it to become empty.
      
      The assumption was that when this is the case, the tree can not be in
      use any more, however it could be in vped_task() between task_fini and
      releasing the tree lock.
      
      We solve this race by taking the tree lock before finally destroying
      it.
      
      Fixes https://gitlab.com/uplex/varnish/libvdp-pesi/-/issues/2
      58a1f111
    • Nils Goroll's avatar
      Update to changed Req_New() signature · 6b9ae172
      Nils Goroll authored
      6b9ae172
    • Nils Goroll's avatar
      d918be4e
    • Nils Goroll's avatar
      Use the new storage buffer interface · d67be775
      Nils Goroll authored
      Previously, we accessed struct storage which is private to steverdores.
      
      Thank you to Martin Blix Grydeland for pointing out this improvement
      opportunity.
      d67be775
  7. 25 Sep, 2021 1 commit
  8. 23 Aug, 2021 1 commit
    • Nils Goroll's avatar
      Add back _POSIX_C_SOURCE · a4357ee7
      Nils Goroll authored
      I had removed these before the public open source release based on Flexelint output,
      but Geoff is correct that, contrary to the C version macros like __STDC_VERSION__,
      _POSIX_C_SOURCE is to be set by the programmer.
      
      Ref: https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
      
      On the downside, we do now see some noise from flexelint and it is unclear to me
      how to suppress Note 9071.
      
      --- Module:   pesi.c (C)
      File pesi.c, Line 33
              _
          Note 9071: defined macro '_POSIX_C_SOURCE' is reserved to the compiler
      File /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h, Line 23
                            _
        long int __tm_gmtoff;		/* Seconds east of UTC.  */
          Error 114: Inconsistent structure declaration for tag 'tm'
      File /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h, Line 24
                             _
        const char *__tm_zone;	/* Timezone abbreviation.  */
          Error 114: Inconsistent structure declaration for tag 'tm'
      
      --- Module:   vdp_pesi.c (C)
      File vdp_pesi.c, Line 33
              _
          Note 9071: defined macro '_POSIX_C_SOURCE' is reserved to the compiler
      File /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h, Line 23
                            _
        long int __tm_gmtoff;		/* Seconds east of UTC.  */
          Error 114: Inconsistent structure declaration for tag 'tm'
      File /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h, Line 24
                             _
        const char *__tm_zone;	/* Timezone abbreviation.  */
          Error 114: Inconsistent structure declaration for tag 'tm'
      a4357ee7
  9. 17 Aug, 2021 3 commits
  10. 16 Aug, 2021 1 commit