Closed Bug 590687 Opened 15 years ago Closed 14 years ago

Plugin container process is killed because not responding on RPC call

Categories

(Core :: IPC, defect)

Other
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 618810

People

(Reporter: starkov.egor, Unassigned)

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 ( .NET CLR 3.5.30729) Build Identifier: Plugin container process is killed because not responding on RPC call. There was idea that flash plugin creates new loop somewhere else, but found out that no new loops created. The main reason of bug is sleeping OnMaybeDequeueOne thread that dispatches all messages. Receiving thread pushes RPC call to the end of the queue and calls dispatching thread to process it. Dispatching thread pop first message from the queue, process it and goes to idle (by unknown reason). So the rest of queue remains not dispatched. One way of fixing this problem is to make batch dispatching of all incoming messages in one loop, not just single one for every thread iteration. Reproducible: Always Steps to Reproduce: 1. Navigate to youtube.com 2. Play any movie longer then 5 minutes 3. If full screen button is masked by 'QUEUE' panel, move 'QUEUE' panel by taping button in top-right corner two times OR change mode to portrait mode 4. Enter full screen mode Actual Results: Movie in full screen mode is playing about 2-3 minutes, then comes back to embedded mode and grey background with Lego block shows instead movie. Expected Results: Movie is playing in full screen mode.
Attachment #469172 - Flags: review?(chris)
Attachment #469172 - Flags: review?(chris) → review?(jones.chris.g)
(In reply to comment #0) > Plugin container process is killed because not responding on RPC call. > There was idea that flash plugin creates new loop somewhere else, but found out > that no new loops created. > The main reason of bug is sleeping OnMaybeDequeueOne thread that dispatches > all messages. Receiving thread pushes RPC call to the end of the queue and > calls dispatching thread to process it. Dispatching thread pop first message > from the queue, process it and goes to idle (by unknown reason). So you're saying there's a message in the mPending queue, another message is pushed into the queue by the IO thread, the main thread eventually processes the first message but then never processes the second? If so, this "unknown reason" sounds like the real bug here. We process one message per event-loop iteration on gtk, windows, and mac, and haven't had any problems like this. > So the rest of > queue remains not dispatched. One way of fixing this problem is to make batch > dispatching of all incoming messages in one loop, not just single one for every > thread iteration. > That doesn't fix any problems, it just might be papering over whatever problem you're seeing here, in some cases. We're not going to do batch dispatch without detailed perf data, because batch dispatch can starve the processing of other tasks on the main thread. You need to find out what the "unknown reason" is and if possible, write a test case for it so that we can test on other platforms. Then we can look at what needs to be fixed.
Egor: you might want to try the patch in bug 592002, which sounds similar to what you're seeing here.
Thanks for hint, but that patch does not help.
This problem is not reproducible with patch from 618810
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: