Hi, i tried to do my best to focus on the bug:
This bug happens with my Squid V1.0.3 :
When i turn "quick_abort on" it does NOT abort request when i ask to
do it by stoping my Netscape....
The bug comes because CheckQuickAbort() doesn't set the
CLIENT_ABORT_REQUEST flag...
Here is why:
static void CheckQuickAbort(icpState)
icpStateData *icpState;
{
if (icpState->entry == NULL)
return;
if (icpState->entry->lock_count != 1) /* HERE IS THE PROBLEM ! ALWAY
TRUE IF NOT IN THE SWAP !*/
return;
if (icpState->entry->store_status == STORE_OK)
return;
if (!getQuickAbort() &&
BIT_TEST(icpState->flags, REQ_CACHABLE) &&
!BIT_TEST(icpState->entry->flag, KEY_PRIVATE))
return;
BIT_SET(icpState->entry->flag, CLIENT_ABORT_REQUEST);
storeReleaseRequest(icpState->entry);
icpState->log_type = ERR_CLIENT_ABORT;
}
The problem is that when squid gets something which is not in its swap
file lock_count = 2 and it fails,
if it is in its swap file then lock_count = 1 and it works (but useless
...) .
So that's why aborts never work on requesting files not in the swap file
(TCP_MISS) ...
Sorry , but i tried to find why lock_count = 2 on every TCP_MISS request
but i failed ....
Thx for your help :)
Received on Wed Jul 31 1996 - 20:55:13 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:32:45 MST