-
Notifications
You must be signed in to change notification settings - Fork 852
Description
The execution of the set-body-operator initiates an internal URL fetch:
trafficserver/plugins/header_rewrite/operators.cc
Line 1353 in 0d8a6ac
| TSFetchUrl(static_cast<const char *>(req_buf), req_buf_size, reinterpret_cast<struct sockaddr const *>(&addr), fetchCont, |
This execution function runs in the READ_RESPONSE_HDR Txn hook. The operator then runs a continuation on the SEND_RESPONSE_HDR Txn hook, that does not call TSHttpTxnReenable(). The intent is that the hook processing is reenabled once the internal URL fetch completes, here:
| TSHttpTxnReenable(http_txn, TS_EVENT_HTTP_ERROR); |
But, it is not clear there is a mechanism that will prevent the internal fetch from being completed before the operator's continuation runs on the SEND_RESPONSE_HDR. Also, if other continuations on a Txn hook also uses indirect reenabling, the reenable for the fetch completing could effectively reenable the wrong continuation.