Infinite loop of child process sending Msg_UpdateNoSwap to parent in B2G settings app




Graphics: Layers
5 years ago
23 hours ago


(Reporter: Justin Lebar (not reading bugmail), Unassigned)



Firefox Tracking Flags

(Not tracked)




5 years ago
With IPC message logging enabled (*), I opened the settings app and tried to enable Wifi.  This was the second time I'd launched the B2G process since rebooting, and due to a bug in B2G, wifi doesn't work.  You can enable it in the settings app, but it doesn't find any networks.

Anyway, I enabled it, observed that it didn't find any networks, and then clicked "back" in the settings app, going back to the main screen.  Suddenly, we entered into an infinite loop of

> [time:1367864925461769][654][PLayersChild] Sending Msg_UpdateNoSwap([TODO])
> [time:1367864925463084][526][PLayersParent] Received Msg_UpdateNoSwap([TODO])

This didn't cease until my screen turned off.

Once I turned the screen back on again, the messages started again.

Nothing on the screen is changing, as far as I can see.

I don't know if this is a Gaia bug or a layers bug, but since nothing seems to be changing onscreen, I filed this in layers.  I'll see if I can get a stack trace to see what's causing us to send this message.

This seems to be consistently reproducible.

(*) To turn on IPC message logging, modify ipc/glue/ProtocolUtils.h::LoggingEnabled(), and then rebuild.  You'll have to run B2G from within adb shell in order to see the messages, which are logged to stderr.

> $ adb shell
> # stop b2g
> #

Comment 1

5 years ago
This probably isn't very interesting, but here's the backtrace.

> #0  mozilla::layers::PLayersChild::SendUpdateNoSwap (this=0x42a18220, cset=..., targetConfig=..., isFirstPaint=@0x439930bc) at PLayersChild.cpp:314
> #1  0x40ccb2e4 in mozilla::layers::ShadowLayerForwarder::EndTransaction (this=0x439930a8, aReplies=<value optimized out>) at ../../../../ff-git2/src/gfx/layers/ipc/ShadowLayers.cpp:377
> #2  0x40caaee2 in mozilla::layers::BasicShadowLayerManager::ForwardTransaction (this=0x43993030) at ../../../../ff-git2/src/gfx/layers/basic/BasicLayerManager.cpp:1204
> #3  0x40cab1bc in mozilla::layers::BasicShadowLayerManager::EndTransaction (this=0x43993030, aCallback=0x40506d91 <mozilla::FrameLayerBuilder::DrawThebesLayer(mozilla::layers::ThebesLayer*, gfxContext*, nsIntRegion const&, nsIntRegion const&, void*)>, aCallbackData=0xbe9397d8, aFlags=mozilla::layers::LayerManager::END_NO_COMPOSITE) at ../../../../ff-git2/src/gfx/layers/basic/BasicLayerManager.cpp:1150
> #4  0x405254b2 in nsDisplayList::PaintForFrame (this=<value optimized out>, aBuilder=0xbe9397d8, aCtx=<value optimized out>, aForFrame=<value optimized out>, aFlags=13) at ../../../../ff-git2/src/layout/base/nsDisplayList.cpp:1159
> #5  0x40525618 in nsDisplayList::PaintRoot (this=0xbe939b60, aBuilder=0xbe9397d8, aCtx=0x0, aFlags=13) at ../../../../ff-git2/src/layout/base/nsDisplayList.cpp:1024
> #6  0x40534ffe in nsLayoutUtils::PaintFrame (aRenderingContext=<value optimized out>, aFrame=0x42a2e800, aDirtyRegion=<value optimized out>, aBackstop=<value optimized out>, aFlags=772) at ../../../../ff-git2/src/layout/base/nsLayoutUtils.cpp:1955
> #7  0x40541238 in PresShell::Paint (this=0x43fbff00, aViewToPaint=<value optimized out>, aDirtyRegion=..., aType=nsIPresShell::PaintType_NoComposite, aWillSendDidPaint=<value optimized out>) at ../../../../ff-git2/src/layout/base/nsPresShell.cpp:5364
> #8  0x40755882 in nsViewManager::ProcessPendingUpdatesForView (this=0x43f33130, aView=0x43fc4a00, aFlushDirtyRegion=<value optimized out>) at ../../../../ff-git2/src/view/src/nsViewManager.cpp:431
> #9  0x4075591e in nsViewManager::ProcessPendingUpdates (this=0x43f33130) at ../../../../ff-git2/src/view/src/nsViewManager.cpp:1221
> #10 0x40544ba6 in nsRefreshDriver::Notify (this=0x43916f50, aTimer=<value optimized out>) at ../../../../ff-git2/src/layout/base/nsRefreshDriver.cpp:436
> #11 0x40c4b3b8 in nsTimerImpl::Fire (this=0x44092700) at ../../../../ff-git2/src/xpcom/threads/nsTimerImpl.cpp:476
> #12 0x40c4b466 in nsTimerEvent::Run (this=<value optimized out>) at ../../../../ff-git2/src/xpcom/threads/nsTimerImpl.cpp:556
> #13 0x40c4959e in nsThread::ProcessNextEvent (this=0x41a068e0, mayWait=<value optimized out>, result=0xbe939f97) at ../../../../ff-git2/src/xpcom/threads/nsThread.cpp:620
> #14 0x40c29976 in NS_ProcessNextEvent_P (thread=0x42a18220, mayWait=true) at ../../../../ff-git2/src/xpcom/glue/nsThreadUtils.cpp:237

Comment 2

5 years ago
Interestingly this chatter does not seem to trigger the symptoms of bug 847592.  That's good...

Comment 3

23 hours ago
Per policy at If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Last Resolved: 23 hours ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.