Closed Bug 1278436 Opened 8 years ago Closed 5 years ago

Crash in mozilla::gfx::Factory::CopyDataSourceSurface

Categories

(Core :: Graphics, defect, P3)

Unspecified
Windows 7
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox50 --- affected

People

(Reporter: ting, Unassigned)

Details

(Keywords: crash, Whiteboard: [gfx-noted])

Crash Data

This bug was filed from the Socorro interface and is 
report bp-fa2c5a92-ef7a-44d8-80b5-23a722160606.
=============================================================

#49 on Windows Nightly 20160605030215.

Opening the minidump shows:

  Unhandled exception thrown: read access violation. aSource-> was 0xFFFFFFFFFFFFFFE7.

The disassembly, note rax is 0xE5E5E5E5E5E5E5E5:

    const bool isSrcBGR = aSource->GetFormat() == SurfaceFormat::B8G8R8A8 ||
  000007FEE2C0BEAD  mov         rax,qword ptr [rcx]  
  000007FEE2C0BEB0  mov         rbx,rdx  
  000007FEE2C0BEB3  mov         rdi,rcx  
> 000007FEE2C0BEB6  call        qword ptr [rax+18h]

The stack of main thread:

  xul.dll!mozilla::gfx::Factory::CopyDataSourceSurface(mozilla::gfx::DataSourceSurface * aSource, mozilla::gfx::DataSourceSurface * aDest) Line 891	C++
  xul.dll!mozilla::gfx::FilterNodeExtendInputAdapterD2D1::FilterNodeExtendInputAdapterD2D1(ID2D1DeviceContext * aDC, mozilla::gfx::FilterNodeD2D1 * aFilterNode, mozilla::gfx::FilterType aType) Line 1031	C++
  xul.dll!mozilla::gfx::FilterNodeD2D1::Create(ID2D1DeviceContext * aDC, mozilla::gfx::FilterType aType) Line 582	C++
  xul.dll!mozilla::gfx::DrawTargetD2D1::CreateFilter(mozilla::gfx::FilterType aType) Line 936	C++
  xul.dll!mozilla::gfx::DrawTargetCaptureImpl::CreateFilter(mozilla::gfx::FilterType aType) Line 131	C++
  xul.dll!mozilla::gfx::FilterWrappers::ToAlpha(mozilla::gfx::DrawTarget * aDT, mozilla::gfx::FilterNode * aInput) Line 240	C++
  xul.dll!mozilla::gfx::FilterNodeFromPrimitiveDescription(const mozilla::gfx::FilterPrimitiveDescription & aDescription, mozilla::gfx::DrawTarget * aDT, nsTArray<RefPtr<mozilla::gfx::FilterNode> > & aSources, nsTArray<mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> > & aSourceRegions, nsTArray<RefPtr<mozilla::gfx::SourceSurface> > & aInputImages) Line 1021	C++
  xul.dll!mozilla::gfx::FilterNodeGraphFromDescription(mozilla::gfx::DrawTarget * aDT, const mozilla::gfx::FilterDescription & aFilter, const mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits,float> & aSourceGraphic, mozilla::gfx::SourceSurface * aSourceGraphicRect, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aFillPaint, mozilla::gfx::SourceSurface * aFillPaintRect, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aStrokePaint, mozilla::gfx::SourceSurface * aStrokePaintRect, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aAdditionalImages, nsTArray<RefPtr<mozilla::gfx::SourceSurface> > &) Line 1315	C++
  xul.dll!mozilla::gfx::FilterSupport::RenderFilterDescription(mozilla::gfx::DrawTarget * aDT, const mozilla::gfx::FilterDescription & aFilter, const mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits,float> & aRenderRect, mozilla::gfx::SourceSurface * aSourceGraphic, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aSourceGraphicRect, mozilla::gfx::SourceSurface * aFillPaint, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aFillPaintRect, mozilla::gfx::SourceSurface * aStrokePaint, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aStrokePaintRect, nsTArray<RefPtr<mozilla::gfx::SourceSurface> > & aAdditionalImages, const mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits,float> & aDestPoint, const mozilla::gfx::DrawOptions & aOptions) Line 1351	C++
  xul.dll!nsFilterInstance::Render(mozilla::gfx::DrawTarget * aDrawTarget) Line 495	C++
  xul.dll!nsFilterInstance::PaintFilteredFrame(nsIFrame * aFilteredFrame, mozilla::gfx::DrawTarget * aDrawTarget, const gfxMatrix & aTransform, nsSVGFilterPaintCallback * aPaintCallback, const nsRegion * aDirtyArea) Line 74	C++
  xul.dll!nsSVGIntegrationUtils::PaintFramesWithEffects(const nsSVGIntegrationUtils::PaintFramesParams & aParams) Line 727	C++
  xul.dll!nsDisplaySVGEffects::PaintAsLayer(nsDisplayListBuilder * aBuilder, nsRenderingContext * aCtx, mozilla::layers::LayerManager * aManager) Line 6666	C++
  xul.dll!mozilla::PaintInactiveLayer(nsDisplayListBuilder * aBuilder, mozilla::layers::LayerManager * aManager, nsDisplayItem * aItem, gfxContext * aContext, nsRenderingContext * aCtx) Line 3562	C++
  xul.dll!mozilla::FrameLayerBuilder::PaintItems(nsTArray<mozilla::FrameLayerBuilder::ClippedDisplayItem> & aItems, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aRect, gfxContext * aContext, nsRenderingContext * aRC, nsDisplayListBuilder * aBuilder, nsPresContext * aPresContext, const mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> & aOffset, float aXScale, float aYScale, int aCommonClipCount) Line 5647	C++
  xul.dll!mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer * aLayer, gfxContext * aContext, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aRegionToDraw, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aDirtyRegion, mozilla::layers::DrawRegionClip aClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aRegionToInvalidate, void * aCallbackData) Line 5839	C++
  xul.dll!mozilla::layers::BasicPaintedLayer::PaintThebes(gfxContext * aContext, mozilla::layers::Layer * aMaskLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 91	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext & aPaintContext, gfxContext * aGroupTarget) Line 732	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintLayer(gfxContext * aTarget, mozilla::layers::Layer * aLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 981	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext & aPaintContext, gfxContext * aGroupTarget) Line 753	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintLayer(gfxContext * aTarget, mozilla::layers::Layer * aLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 981	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext & aPaintContext, gfxContext * aGroupTarget) Line 753	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintLayer(gfxContext * aTarget, mozilla::layers::Layer * aLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 981	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext & aPaintContext, gfxContext * aGroupTarget) Line 753	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintLayer(gfxContext * aTarget, mozilla::layers::Layer * aLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 981	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext & aPaintContext, gfxContext * aGroupTarget) Line 753	C++
  xul.dll!mozilla::layers::BasicLayerManager::PaintLayer(gfxContext * aTarget, mozilla::layers::Layer * aLayer, void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData) Line 981	C++
  xul.dll!mozilla::layers::BasicLayerManager::EndTransactionInternal(void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData, mozilla::layers::LayerManager::EndTransactionFlags aFlags) Line 640	C++
  xul.dll!mozilla::PaintInactiveLayer(nsDisplayListBuilder * aBuilder, mozilla::layers::LayerManager * aManager, nsDisplayItem * aItem, gfxContext * aContext, nsRenderingContext * aCtx) Line 3566	C++
  xul.dll!mozilla::FrameLayerBuilder::PaintItems(nsTArray<mozilla::FrameLayerBuilder::ClippedDisplayItem> & aItems, const mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> & aRect, gfxContext * aContext, nsRenderingContext * aRC, nsDisplayListBuilder * aBuilder, nsPresContext * aPresContext, const mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> & aOffset, float aXScale, float aYScale, int aCommonClipCount) Line 5647	C++
  xul.dll!mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer * aLayer, gfxContext * aContext, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aRegionToDraw, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aDirtyRegion, mozilla::layers::DrawRegionClip aClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> & aRegionToInvalidate, void * aCallbackData) Line 5839	C++
  xul.dll!mozilla::layers::ClientPaintedLayer::PaintThebes() Line 103	C++
  xul.dll!mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor * aReadback) Line 150	C++
  xul.dll!mozilla::layers::ClientContainerLayer::RenderLayer() Line 67	C++
  xul.dll!mozilla::layers::ClientLayerManager::EndTransactionInternal(void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData, mozilla::layers::LayerManager::EndTransactionFlags) Line 301	C++
  xul.dll!mozilla::layers::ClientLayerManager::EndTransaction(void(*)(mozilla::layers::PaintedLayer *, gfxContext *, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, mozilla::layers::DrawRegionClip, const mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> &, void *) aCallback, void * aCallbackData, mozilla::layers::LayerManager::EndTransactionFlags aFlags) Line 344	C++
  xul.dll!nsDisplayList::PaintRoot(nsDisplayListBuilder * aBuilder, nsRenderingContext * aCtx, unsigned int aFlags) Line 1920	C++
  xul.dll!nsLayoutUtils::PaintFrame(nsRenderingContext * aRenderingContext, nsIFrame * aFrame, const nsRegion & aDirtyRegion, unsigned int aBackstop, nsDisplayListBuilderMode aBuilderMode, nsLayoutUtils::PaintFrameFlags aFlags) Line 3597	C++
  xul.dll!PresShell::Paint(nsView * aViewToPaint, const nsRegion & aDirtyRegion, unsigned int aFlags) Line 6616	C++
  xul.dll!nsViewManager::ProcessPendingUpdatesPaint(nsIWidget * aWidget) Line 482	C++
  xul.dll!nsViewManager::ProcessPendingUpdatesForView(nsView * aView, bool aFlushDirtyRegion) Line 409	C++
  xul.dll!nsViewManager::ProcessPendingUpdates() Line 1118	C++
  xul.dll!nsRefreshDriver::Tick(__int64 aNowEpoch, mozilla::TimeStamp aNowTime) Line 1911	C++
  xul.dll!mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver * driver, __int64 jsnow, mozilla::TimeStamp now) Line 275	C++
  xul.dll!mozilla::RefreshDriverTimer::TickRefreshDrivers(__int64 aJsNow, mozilla::TimeStamp aNow, nsTArray<RefPtr<nsRefreshDriver> > & aDrivers) Line 240	C++
  xul.dll!mozilla::RefreshDriverTimer::Tick(__int64 jsnow, mozilla::TimeStamp now) Line 267	C++
  xul.dll!mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp aTimeStamp) Line 589	C++
  xul.dll!mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp aVsyncTimestamp) Line 510	C++
  xul.dll!mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp aVsyncTimestamp) Line 425	C++
  xul.dll!mozilla::layout::VsyncChild::RecvNotify(const mozilla::TimeStamp & aVsyncTimestamp) Line 66	C++
  xul.dll!mozilla::layout::PVsyncChild::OnMessageReceived(const IPC::Message & msg__) Line 240	C++
  xul.dll!mozilla::ipc::PBackgroundChild::OnMessageReceived(const IPC::Message & msg__) Line 2264	C++
  xul.dll!mozilla::ipc::MessageChannel::DispatchAsyncMessage(const IPC::Message & aMsg) Line 1658	C++
  xul.dll!mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message && aMsg) Line 1598	C++
  xul.dll!mozilla::ipc::MessageChannel::OnMaybeDequeueOne() Line 1564	C++
  xul.dll!nsRunnableMethodImpl<void (__cdecl mozilla::ipc::MessageChannel::*)(void) __ptr64,0,1>::Run() Line 751	C++
  xul.dll!mozilla::ipc::MessageChannel::DequeueTask::Run() Line 498	C++
  xul.dll!nsThread::ProcessNextEvent(bool aMayWait, bool * aResult) Line 1029	C++
  xul.dll!NS_ProcessNextEvent(nsIThread * aThread, bool aMayWait) Line 290	C++
  xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate) Line 100	C++
  xul.dll!mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate * aDelegate) Line 318	C++
  xul.dll!MessageLoop::RunHandler() Line 229	C++
  xul.dll!MessageLoop::Run() Line 209	C++
  xul.dll!nsBaseAppShell::Run() Line 158	C++
  xul.dll!nsAppShell::Run() Line 264	C++
  xul.dll!XRE_RunAppShell() Line 827	C++
  xul.dll!mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate * aDelegate) Line 294	C++
  xul.dll!MessageLoop::RunHandler() Line 229	C++
  xul.dll!MessageLoop::Run() Line 209	C++
  xul.dll!XRE_InitChildProcess(int aArgc, char * * aArgv, const XREChildData * aChildData) Line 661	C++
  plugin-container.exe!NS_internal_main(int argc, char * * argv) Line 11	C++
  plugin-container.exe!wmain(int argc, wchar_t * * argv) Line 123	C++
  plugin-container.exe!__scrt_common_main_seh() Line 255	C++
  kernel32.dll!BaseThreadInitThunk()	Unknown
  ntdll.dll!RtlUserThreadStart()	Unknown
There're only 2 crashes and are from single installation now. Priority low, unless there comes more reports.
Whiteboard: [gfx-noted]

Closing because no crashes reported for 12 weeks.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.