[master] 7665152c7 cache_http1_fetch: Further simplify V1F_SendReq() error handling

Dridi Boukelmoune dridi at varni.sh
Thu Oct 31 10:09:50 UTC 2024


On Thu, Oct 31, 2024 at 8:51 AM Nils Goroll <nils.goroll at uplex.de> wrote:
>
>
> commit 7665152c705810e675530d1dd630b713c9e54d3b
> Author: Nils Goroll <nils.goroll at uplex.de>
> Date:   Thu Oct 31 09:48:34 2024 +0100
>
>     cache_http1_fetch: Further simplify V1F_SendReq() error handling
>
> diff --git a/bin/varnishd/http1/cache_http1_fetch.c b/bin/varnishd/http1/cache_http1_fetch.c
> index cb847f1be..3e1c8507a 100644
> --- a/bin/varnishd/http1/cache_http1_fetch.c
> +++ b/bin/varnishd/http1/cache_http1_fetch.c
> @@ -69,7 +69,7 @@ V1F_SendReq(struct worker *wrk, struct busyobj *bo, uint64_t *ctr_hdrbytes,
>         ssize_t i;
>         uint64_t bytes, hdrbytes;
>         struct http_conn *htc;
> -       struct vdp_ctx vdc[1];
> +       struct vdp_ctx vdc[1] = { 0 };
>         intmax_t cl;
>         const char *err = NULL;
>
> @@ -106,15 +106,16 @@ V1F_SendReq(struct worker *wrk, struct busyobj *bo, uint64_t *ctr_hdrbytes,
>                  * XXX: need a send_timeout for the backend side
>                  * XXX: use cache_param->http1_iovs ?
>                  */
> -               (void) VDP_Close(vdc, NULL, NULL);
>                 err = "Failure to open V1L (workspace_thread overflow)";
>         }
> -       else if (v1f_stackv1l(vdc, bo)) {
> -               (void) V1L_Close(wrk, &bytes);
> -               (void) VDP_Close(vdc, NULL, NULL);
> +       else if (v1f_stackv1l(vdc, bo))
>                 err = "Failure to push V1L";
> -       }
> +
>         if (err != NULL) {
> +               if (wrk->v1l != NULL)
> +                       (void) V1L_Close(wrk, &bytes);
> +               if (vdc->magic != 0)
> +                       (void) VDP_Close(vdc, NULL, NULL);

Maybe VALID_OBJ?

>                 VSLb(bo->vsl, SLT_FetchError, "%s", err);
>                 VSLb_ts_busyobj(bo, "Bereq", W_TIM_real(wrk));
>                 htc->doclose = SC_OVERLOAD;
> _______________________________________________
> varnish-commit mailing list
> varnish-commit at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit


More information about the varnish-commit mailing list