Fix up the worker in the VDP context as well
vmod_pesi works by saving the resulting data from a sub request to a tree structure, which gets delivered to the client in the top request's thread, once it is ready. For cacheable objects which do not require ESI processing, we simply keep the original request with an additional reference to the object. So basically we hand delivery from one worker to another. subreq_fixup() is responsible for converting the saved request to a state as if it was handled by the request handling the top level request, so one of the changes it applies is to change the wrk pointer to the worker of the top level request. Yet that change was incomplete and we missed an additional pointer in struct vdp_ctx. This should hopefully fix #14
Showing
Please register or sign in to comment