NOVM ipcGetHeadersForIMS confusion???

From: Bryan Mawhinney <bryanm@dont-contact.us>
Date: Tue, 15 Jul 1997 17:51:43 +0200

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 9170
Received 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