Open Bug 791156 Opened 12 years ago Updated 2 months ago

OnStopRequest called multiple times on multipart/x-mixed-replace request open at shutdown (###!!! ABORT: these flags shouldn't get set until OnStopRequest. Duplicate calls to OnStopRequest?: '!mIsFullyLoaded && !mHaveAnimations' VectorImage.cpp)

Categories

(Core :: Networking, defect, P3)

x86
macOS
defect

Tracking

()

People

(Reporter: joe, Unassigned)

Details

(Whiteboard: [necko-backlog])

Attachments

(2 files, 1 obsolete file)

In tests for bug 787899 I exposed this bug, but those patches aren't required for this bug to exist, I think.

When Imagelib loads images, it uses an nsIStreamConverterService to convert from multipart/x-mixed-replace to the individual parts (when appropriate). Unfortunately, it seems that OnStopRequest is called twice in this case: once from nsMultiMixedConv::OnDataAvailable via nsMultiMixedConv::SendStop, and once on shutdown from nsStreamListenerTee::OnStopRequest.

My understanding is that OnStopRequest is meant to be called exactly once; something is breaking this invariant.

This causes problems in a followup test patch I'm going to attach (which *does* rely on the patches in bug 787899); it causes an abort in VectorImage because OnStopRequest is being called twice.
Attached patch expose bugSplinter Review
Apply this patch and run the mochitest as follows, and on shutdown you'll hit the abort/assertion in VectorImage I mentioned.

 objdir/_tests/testing/mochitest$ python runtests.py --test-path=image/test/mochitest/test_bug733553.html
Whiteboard: [necko-backlog]
Bulk change to priority: https://bugzilla.mozilla.org/show_bug.cgi?id=1399258
Priority: -- → P1
Bulk change to priority: https://bugzilla.mozilla.org/show_bug.cgi?id=1399258
Priority: P1 → P3
Severity: normal → S3
Attachment #9383298 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: