Closed Bug 518788 Opened 15 years ago Closed 8 years ago

nsHttpHandler PruneDeadConnections works in TYPE_REPEATING_SLACK mode

Categories

(Core :: Networking, defect)

1.9.2 Branch
Other
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: romaxa, Unassigned)

References

()

Details

Attachments

(1 file)

Open URL or some other URL without active scripts, but http: protocol

Wait for some time (1 minute) to stop all short time activities after page loading.

set break point on 'nsBaseAppShell::OnDispatchedEvent'

EXP:
No  'nsBaseAppShell::OnDispatchedEvent' activity

ACTUAL:
Breakpoint 1, nsBaseAppShell::OnDispatchedEvent (this=0x8fd5258, thr=0x8d8fb98)
    at widget/src/xpwidgets/nsBaseAppShell.cpp:235
235	  if (mBlockNativeEvent)
(gdb) frame 3
#3  0xb74c5ae8 in nsTimerImpl::PostTimerEvent (this=0x8f5b898)
    at xpcom/threads/nsTimerImpl.cpp:554
554	  nsresult rv = mEventTarget->Dispatch(event, NS_DISPATCH_NORMAL);
(gdb) p *this
$1 = {<nsITimer> = {<nsISupports> = {_vptr.nsISupports = 0xb77401a8}, <No data fields>}, mRefCnt = {
    mValue = 2}, mEventTarget = {<nsCOMPtr_base> = {mRawPtr = 0x8d8fb98}, <No data fields>}, 
  mClosure = 0x0, mCallback = {c = 0x8f5479c, i = 0x8f5479c, o = 0x8f5479c}, 
  mTimerCallbackWhileFiring = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}, 
  mCallbackType = 3 '\3', mType = 1 '\1', mFiring = 0 '\0', mArmed = 0, mCanceled = 0, 
  mGeneration = 5, mDelay = 15000, mTimeout = 4031807423}
(gdb) x/wa 0x8f5479c 
0x8f5479c:	0xb76a9b98 <_ZTV13nsHttpHandler+152>

PruneDeadConnectionsTimer created and firing timeouts all the time:
http://mxr.mozilla.org/mozilla-central/source/netwerk/protocol/http/src/nsHttpHandler.cpp#326

We certainly should suspend that timeout for "system-idle" state.
Also it would be nice to suspend that timer if there is no connections currently which are possible to prune. And activate timer only when something changed and appear some possibility to Prune connections.
Attachment #402795 - Flags: review?(doug.turner)
Attachment #402795 - Flags: review?(doug.turner) → review?(cbiesinger)
What are the semantics of the system-idle notification? (And why are they not documented anywhere?)
Attachment #402795 - Flags: review?(cbiesinger) → review-
Comment on attachment 402795 [details] [diff] [review]
Stop PruneConnections timer on system-idle callback

minusing pending an answer to the question in the previous comment
> What are the semantics of the system-idle notification? (And why are they not
> documented anywhere?)

I think because nobody did care about this problem before...
Doug should we have some general doc about Power Management notifications, handling, and rules about what to do to keep PMT in good shape?
the timeout tick is no longer active (for a long time now) when there are no live connections
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: