I'm currently running NOVM-1.1.11
Looking through my log files recently I saw lots of TCP_IMS_MISSes for
data I knew to be in the cache and fresh.
From a debug log I determined that refreshCheck returns no. Looking
through ipc.c, I think icpProcessRequest is falling through to the lines
which read:
} else if (BIT_TEST(request->flags, REQ_IMS)) {
/* User-initiated IMS request for something we think is valid */
icpState->log_type = LOG_TCP_IMS_MISS;
and a little later, it calls ipcGetHeadersForIMS
In ipcGetHeadersForIMS:
if (mem->reply->code == 0) {
/* All headers are not yet available, wait for more data */
storeRegister(entry, fd, icpSendMoreData, (void *) icpState,
icpState->out.offset);
return COMM_OK;
}
But this MemObject has just been created, the headers haven't been
parsed yet, and mem->reply->code is always going to be 0, isn't it?
Shouldn't we be ignoring the value of mem->reply-code (we know the data
is the cache), and just checking the modified date?
(I have a sneaky suspicion that Squid may be waiting for a response from
an IMS GET sent up the hierarchy, but that only seems to happen in the
case of LOG_TCP_REFRESH_MISS)
I haven't yet come to grips with the workings of Squid, so any advice or
clarifications would be welcome.
Thanks,
Bryan
-- Bryan Mawhinney Telkom National Customer Service Assurance Center (011) 836 3136 082 453 9170Received on Tue Jul 15 1997 - 08:54:57 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:35:46 MST