shinrich opened a new issue #7872:
URL: https://github.com/apache/trafficserver/issues/7872
Noticed this while walking code trying to see how an assert from @ezelkow1
could occur. Looking at the last if/else clause in
HttpTransact::handle_cache_write_lock
```
if (s->cache_info.write_lock_state == CACHE_WL_READ_RETRY) {
TxnDebug("http_error", "calling hdr_info.server_request.destroy");
s->hdr_info.server_request.destroy();
HandleCacheOpenReadHitFreshness(s);
} else {
StateMachineAction_t next;
next = how_to_open_connection(s);
if (next == SM_ACTION_ORIGIN_SERVER_OPEN || next ==
SM_ACTION_ORIGIN_SERVER_RAW_OPEN) {
s->next_action = next;
TRANSACT_RETURN(next, nullptr);
} else {
// hehe!
s->next_action = next;
ink_assert(s->next_action == SM_ACTION_DNS_LOOKUP);
return;
}
TRANSACT_RETURN(next, nullptr);
}
```
If the outer else is taken and the next is SM_ACTION_ORIGIN_SERVER_OPEN,
then TRANSACT_RETURN is called in the if body and also on return through the
outer else.
Doesn't seem like a good thing. Appears to be accidental change from PR
#1794
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]