Closed Bug 133015 Opened 23 years ago Closed 23 years ago

Info may indicate "not cached" although the page actually is in cache

Categories

(SeaMonkey :: Page Info, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.1beta

People

(Reporter: usch2000, Assigned: db48x)

References

()

Details

Attachments

(1 file, 1 obsolete file)

From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Win95; en-US; rv:0.9.9) Gecko/20020311 BuildID: 2002031104 Pages marked stale for "vary:" header handling are displayed as "not cached", although they are actually in cache, set to force-revalidate, not to force-reload. Reproducible: Always Steps to Reproduce: 1. Go to the URL given above 2. Examine Page Info 3. Compare with about:cache-entry information Actual Results: Page Info displays "not cached", "no expiration set". Expected Results: Page Info should display memory or disk cache as the actual source, and "must-revalidate" or something like that as expiration info. This might be related to Bug 132957.
I think this happens because we try to open the cache entry for reading and the cache revalidation fails or something.... We should look into implementing nsICacheVisitor and using that (like about:cache does). Not sure what the perf impact would be...
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 95 → All
Hardware: PC → All
bz's assessment is correct. cache visitors suck, as I recall you have to visit each entry at least once to figure out if what you're looking for is in there. how long does it take to display about:cache? now do that each time you preview an image in the media tab. sounds bad to me.
gordon? any ideas? Is it possible to open a cache entry without triggering revalidation using a scriptable API?
I guess that's what "about:cache-entry?client=HTTP&sb=1&key=http://server.foo/something" does - just collect information about the current state of a cache entry, without actually retrieving it.
No, as a matter of fact that does exactly what page info does -- creates a cache session and opens the cache entry (in exactly the same way as far as I can tell). See http://lxr.mozilla.org/seamonkey/source/netwerk/protocol/about/src/nsAboutCacheEntry.cpp#335 The only difference I see is the call to: mCacheSession->SetDoomEntriesIfExpired(PR_FALSE); reading over nsICacheSession.idl, this may be exactly what needs to be done here.
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: --- → mozilla1.1beta
this bug is due to,mozilla cache page info in disk cache,but when mozilla return entry,the page's expires time is less than current time,then mozilla will clean the cache entry and don't retrun it.i will research it,i think i can avoid time's estimation.mozilla really cache the page info in disk cache. please assigned this bug to me,i'm sure i can fix it.
i found this bug is due to the cache service will clean the entry being returned from disk cache after entry be returned by SearchCacheDevices(),i create a patch which can fix this bug,but maybe have some problem,because this method is runned by a lot class,so my fix maybe arise another problem,I hope somebody can give me some advice.Please rv my patch!
Antonio, your patch has one major drawback -- it breaks correct handling of cache entry expiration completely. With your patch, things would never expire from cache and the browser would not go out to the network to refetch things when it should. Note the |&& request->WillDoomEntriesIfExpired()| clause in the if statement you were changing... just setting doomEntriesIfExpired to "false" has the same effect as your patch in this case. db48x, would you review?
Attachment #79244 - Attachment is obsolete: true
yes,i think your patch right.
Comment on attachment 79254 [details] [diff] [review] Better patch, per comment #4 sure, I can r= that. it's identicle to the patch I haven't posted yet :) r=db48x
Attachment #79254 - Flags: review+
Comment on attachment 79254 [details] [diff] [review] Better patch, per comment #4 sr=darin btw: HTTP also uses a session named "HTTP-memory-only" this is used for HTTPS content and no-store content. also, these session names were never meant to be referenced outside the HTTP implementation :-(
Attachment #79254 - Flags: superreview+
checked in on the trunk.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: