Last Comment Bug 720353 - Crash with abort message "xpcom_runtime_abort(###!!! ABORT: unknown union type: file /builds/slave/rel-m-beta-lnx-andrd-bld/build/obj-firefox/ipc/ipdl/PLayersChild.cpp, line 550)"
: Crash with abort message "xpcom_runtime_abort(###!!! ABORT: unknown union typ...
Status: RESOLVED FIXED
[mobile-crash][native-crash]
: crash, topcrash
Product: Core
Classification: Components
Component: Graphics (show other bugs)
: Trunk
: ARM Android
: -- critical (vote)
: mozilla14
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on: 722044
Blocks: 694964 719373
  Show dependency treegraph
 
Reported: 2012-01-23 06:14 PST by Scoobidiver (away)
Modified: 2012-05-08 11:34 PDT (History)
8 users (show)
See Also:
Crash Signature:
(edit)
[@ mozalloc_abort | __swrite | libxul.so@0xe7cd58 | nsWSRunObject::DeleteChars ]
[@ mozalloc_abort | nsWSRunObject::DeleteChars ]
[@ mozalloc_abort | arena_dalloc | nsWSRunObject::DeleteChars ]
[@ mozalloc_abort | __swrite | libxul.so@0xe7cd58 | js::PropertyCache::fullTest ]
[@ mozalloc_abort | pthread_mutex_unlock ]
[@ mozalloc_abort | org.mozilla.firefox_beta-1.apk@0x10ba11f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-1.apk@0x102d11f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-1.apk@0x100711f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-1.apk@0x104d11f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-1.apk@0x10d011f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-2.apk@0x10f311f ]
[@ mozalloc_abort | org.mozilla.firefox_beta-2.apk@0xfda11f ]
[@ mozalloc_abort | __swrite | libxul.so@0xe7cd58 | org.mozilla.firefox_beta-1.apk@0x108c11f ]
[@ TouchBadMemory ]
[@ TouchBadMemory | mozalloc_abort | dalvik-heap @0x11f911f ]
[@ TouchBadMemory | mozalloc_abort | dalvik-heap @0x11f111f ]
[@ TouchBadMemory | mozalloc_abort | _moz_cairo_set_source_rgba ]
[@ TouchBadMemory | mozalloc_abort | _moz_cairo_curve_to ]
[@ TouchBadMemory | mozalloc_abort | system@framework@ext.jar@classes.dex@0x26d ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x23ff40 ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x1ce11f ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x4d2f40 ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x3b11f ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x437f40 ]
[@ TouchBadMemory | mozalloc_abort | ashmem (deleted)@0x5ffffe ]
[@ TouchBadMemory | mozalloc_abort | libskia.so@0x74ffe ]
[@ TouchBadMemory | mozalloc_abort | system@framework@ext.jar@classes.dex@0x26d ]
[@ TouchBadMemory | mozalloc_abort ]
[@ TouchBadMemory | mozalloc_abort | data@app@org.mozilla.fennec-2.apk@classes.dex@0xeac67 ]
[@ TouchBadMemory | mozalloc_abort | data@app@org.mozilla.fennec-2.apk@classes.dex@0xe1c67 ]
[@ TouchBadMemory | mozalloc_abort | data@app@org.mozilla.fennec-2.apk@classes.dex@0xd6c67 ]
[@ TouchBadMemory | mozalloc_abort | mnt@asec@org.mozilla.fennec-1@pkg.apk@classes.dex@0xecc67 ]
[@ TouchBadMemory | mozalloc_abort | mnt@asec@org.mozilla.fennec-1@pkg.apk@classes.dex@0xe1c67 ]
[@ TouchBadMemory | mozalloc_abort | libq3dtools_adreno200.so@0x211f ]
[@ TouchBadMemory | mozalloc_abort | PropertyProvider::~PropertyProvider ]
[@ TouchBadMemory | mozalloc_abort | mozilla::image::RasterImage::Draw ]
[@ TouchBadMemory | mozalloc_abort | nsCOMPtr_base::~nsCOMPtr_base | ImageRenderer::~ImageRenderer ]
[@ TouchBadMemory | mozalloc_abort | DeleteRangeTxn::DoTransaction ]
[@ TouchBadMemory | mozalloc_abort | DeleteRangeTxn::CreateTxnsToDeleteNodesBetween ]
[@ TouchBadMemory | mozalloc_abort | nsHtml5ElementName::releaseStatics ]
[@ TouchBadMemory | mozalloc_abort | pixman_region16_copy_from_region32 ]
[@ TouchBadMemory | mozalloc_abort | PR_GetThreadPrivate | libxul.so@0xf7d93f | nsHtml5ElementName::releaseStatics ]
[@ TouchBadMemory | mozalloc_abort | pixman_region32_copy_from_region16 ]
[@ TouchBadMemory | mozalloc_abort | PR_GetThreadPrivate | libxul.so@0xf7dacb | nsHtml5ElementName::releaseStatics ]
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
+
verified
fixed
affected
-
affected
fixed
affected


Attachments
Backout of Bug 694964. (2.46 KB, patch)
2012-03-19 13:56 PDT, Ali Juma [:ajuma]
bgirard: review+
Details | Diff | Review

Description Scoobidiver (away) 2012-01-23 06:14:05 PST
It's a new crash signature that first appeared in Fennec 10.0b5.
It's currently #1 top crasher in 10.0b5 with 70% (90/129) of all crashes.

Many stacks are buggy but it might be a Graphics or Layout bug.
In the Beta regression range:
http://hg.mozilla.org/releases/mozilla-beta/pushloghtml?fromchange=69368d1fa5bf&tochange=11d741e4641c
it might be caused by bug 694964 or bug 715916.

The number of crashes caused by this bug (0.52 crash/ADU) is higher than the one fixed by bug 694964 (0.24 crash/ADU):
https://crash-stats.mozilla.com/daily?form_selection=by_version&p=Fennec&v[]=10.0b4&throttle[]=100.00&v[]=10.0b5&throttle[]=100.00&v[]=&throttle[]=100.00&v[]=&throttle[]=100.00&hang_type=any&os[]=Windows&os[]=Mac&os[]=Linux&date_start=2012-01-08&date_end=2012-01-24&submit=Generate

Frame 	Module 	Signature 	Source
0 	libmozalloc.so 	mozalloc_abort 	memory/mozalloc/mozalloc_abort.cpp:66
1 	libc.so 	__swrite 	
2 	libxul.so 	libxul.so@0xe7cd58 	
3 	libxul.so 	nsWSRunObject::DeleteChars 	editor/libeditor/html/nsWSRunObject.cpp:1607
4 		@0x1 	
5 	libxul.so 	_cairo_path_fixed_add 	gfx/cairo/cairo/src/cairo-path-fixed.c:775
6 	libxul.so 	_cairo_path_fixed_move_to 	gfx/cairo/cairo/src/cairo-path-fixed.c:414
7 	libxul.so 	_cairo_path_fixed_close_path 	gfx/cairo/cairo/src/cairo-path-fixed.c:659
8 	libxul.so 	_moz_cairo_close_path 	gfx/cairo/cairo/src/cairo.c:2164
9 	libxul.so 	_moz_cairo_rectangle 	gfx/cairo/cairo/src/cairo.c:2109
10 	libxul.so 	gfxContext::Rectangle 	gfx/thebes/gfxContext.cpp:259
11 	libxul.so 	gfxSurfaceDrawable::Draw 	gfx/thebes/gfxDrawable.cpp:181
12 		@0x6 	
13 	libmozutils.so 	malloc_mutex_unlock 	memory/jemalloc/jemalloc.c:1539
14 	libmozutils.so 	arena_dalloc 	memory/jemalloc/jemalloc.c:4510
15 		@0x2 	
16 	libxul.so 	Pickle::WriteBytes 	ipc/chromium/src/base/pickle.cc:423
17 		@0xbebbddea 	
18 	libxul.so 	mozilla::layers::PLayersChild::Write 	obj-firefox/ipc/ipdl/PLayersChild.cpp:550
19 	libxul.so 	mozilla::layers::PLayersChild::Write 	obj-firefox/ipc/ipdl/PLayersChild.cpp:1709
20 	libxul.so 	mozilla::layers::PLayersChild::Write 	obj-firefox/ipc/ipdl/PLayersChild.cpp:635
21 	libxul.so 	mozilla::layers::PLayersChild::Write 	obj-firefox/ipc/ipdl/PLayersChild.cpp:1048
22 	libxul.so 	mozilla::layers::PLayersChild::Write 	obj-firefox/ipc/ipdl/PLayersChild.cpp:962
23 	libxul.so 	mozilla::layers::PLayersChild::SendUpdate 	obj-firefox/ipc/ipdl/PLayersChild.cpp:156
24 	libxul.so 	mozilla::layers::ShadowLayerForwarder::EndTransaction 	gfx/layers/ipc/ShadowLayers.cpp:324
25 	libxul.so 	mozilla::layers::BasicShadowLayerManager::ForwardTransaction 	gfx/layers/basic/BasicLayers.cpp:3353
26 	libxul.so 	mozilla::layers::BasicShadowLayerManager::EndTransaction 	gfx/layers/basic/BasicLayers.cpp:3328
27 	libxul.so 	nsDisplayList::PaintForFrame 	layout/base/nsDisplayList.cpp:633
28 	libxul.so 	nsDisplayList::PaintRoot 	layout/base/nsDisplayList.cpp:538
29 	libxul.so 	nsLayoutUtils::PaintFrame 	layout/base/nsLayoutUtils.cpp:1700
30 	libxul.so 	PresShell::Paint 	layout/base/nsPresShell.cpp:5475
31 	libxul.so 	nsViewManager::RenderViews 	view/src/nsViewManager.cpp:415
32 	libxul.so 	nsViewManager::Refresh 	view/src/nsViewManager.cpp:390
33 	libxul.so 	nsViewManager::DispatchEvent 	view/src/nsViewManager.cpp:888
34 	libxul.so 	HandleEvent 	view/src/nsView.cpp:159
35 	libxul.so 	mozilla::widget::PuppetWidget::DispatchEvent 	widget/src/xpwidgets/PuppetWidget.cpp:320
36 	libxul.so 	mozilla::widget::PuppetWidget::DispatchPaintEvent 	widget/src/xpwidgets/PuppetWidget.cpp:561
37 	libxul.so 	mozilla::widget::PuppetWidget::PaintTask::Run 	widget/src/xpwidgets/PuppetWidget.cpp:601
38 	libxul.so 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:631
39 	libxul.so 	NS_ProcessNextEvent_P 	obj-firefox/xpcom/build/nsThreadUtils.cpp:245
...
Comment 1 Ali Juma [:ajuma] 2012-01-23 07:17:17 PST
(In reply to Scoobidiver from comment #0)
> It's a new crash signature that first appeared in Fennec 10.0b5.
> It's currently #1 top crasher in 10.0b5 with 70% (90/129) of all crashes.
> 
> Many stacks are buggy but it might be a Graphics or Layout bug.
> In the Beta regression range:
> http://hg.mozilla.org/releases/mozilla-beta/
> pushloghtml?fromchange=69368d1fa5bf&tochange=11d741e4641c
> it might be caused by bug 694964 or bug 715916.

In this regression range, Bug 694964 is the most likely cause.


> The number of crashes caused by this bug (0.52 crash/ADU) is higher than the
> one fixed by bug 694964 (0.24 crash/ADU):

In light of this, we should back out Bug 694964 from beta ASAP.
Comment 2 Ali Juma [:ajuma] 2012-01-23 08:42:35 PST
Bug 694964 has been backed out from Beta, which should fix this crash.

It has not been backed out from Aurora or m-c, so we should keep an eye out for this crash happening there.
Comment 3 Scoobidiver (away) 2012-01-29 02:17:55 PST
There have been no crashes in Fennec 10.0b6.
Comment 4 Alex Keybl [:akeybl] 2012-01-31 16:55:10 PST
(In reply to Ali Juma [:ajuma] from comment #2)
> Bug 694964 has been backed out from Beta, which should fix this crash.
> 
> It has not been backed out from Aurora or m-c, so we should keep an eye out
> for this crash happening there.

We've backed out bug 694964 from Beta 11 as well.
Comment 5 Scoobidiver (away) 2012-02-04 00:13:56 PST
Let's reopen it as it's not fixed in XUL Fx 12 and above.
Comment 6 Oleg Romashin (:romaxa) 2012-02-04 00:39:59 PST
Not sure, but it looks like BasicShadowableThebesLayer::PaintBuffer called twice, and first time we set mBackBuffer = SurfaceDescriptor();
and second time we just abort here:
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicLayers.cpp#2374
Comment 7 Oleg Romashin (:romaxa) 2012-02-05 18:38:22 PST
btw, do we have syslog output for this crash or something like that, if there are "should have a back buffer by now" message, then my assumption is correct and we have to do something with that abort...
Comment 8 Scoobidiver (away) 2012-02-05 23:33:16 PST
The back buffer log is in 11.0 but there are only 9 ADU in FennecAndroid 11.0b1 and 0 ADU in XUL Fennec 11.0b1 so far and nobody hit that crash.
Comment 9 Oleg Romashin (:romaxa) 2012-02-07 19:44:14 PST
Ok, I took current beta 11, applied patches from 694964, and cannot reproduce this crash.
And IIUC crash happening on IPDL attempt to process thebesLayer Swap transaction, which means that we already passed http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicLayers.cpp#2374 - surface check point, and that is possible only in next chain

1) BasicShadowableThebesLayer::PaintBuffer - > thebesPaint pushed into transactions array and related buffer assigned to mROFrontBuffer
2) BasicShadowableThebesLayer::SetBackBufferAndAttrs call came from previous transaction. and drop last reference to buffer which is in pending transactions queue by mROFrontBuffer = aReadOnlyFrontBuffer.
3) Result SendUpdate has transaction with ThebesSwap and invalid buffer
Comment 10 Oleg Romashin (:romaxa) 2012-02-07 19:46:57 PST
I think we should modify fix for bug 694964, and Hold reference to buffer which is pending transaction queue in different variable and do not use mROFrontBuffer
Comment 11 Ali Juma [:ajuma] 2012-03-19 13:52:44 PDT
I'm sometimes running into this now on Native Fennec. We should back out bug 694964 from m-c.
Comment 12 Ali Juma [:ajuma] 2012-03-19 13:56:57 PDT
Created attachment 607302 [details] [diff] [review]
Backout of Bug 694964.
Comment 14 Mounir Lamouri (:mounir) 2012-03-20 03:53:27 PDT
https://hg.mozilla.org/mozilla-central/rev/af19e5ada310
Comment 15 Alex Keybl [:akeybl] 2012-03-20 17:00:09 PDT
This is presumably still affecting FF10 XUL Fennec builds (10.0.3 was pushed to the market on 3/13). Can we uplift the fix to the ESR, from which XUL Fennec is building for releases?

If we think this affects Fennec Native as well, we should also uplift to Aurora 13.
Comment 16 Ali Juma [:ajuma] 2012-03-20 17:20:52 PDT
(In reply to Alex Keybl [:akeybl] from comment #15)
> This is presumably still affecting FF10 XUL Fennec builds (10.0.3 was pushed
> to the market on 3/13). Can we uplift the fix to the ESR, from which XUL
> Fennec is building for releases?

Bug 694964 was backed out of FF10 on Jan. 23 (see Comment 2 above), so this crash shouldn't be happening there.

> If we think this affects Fennec Native as well, we should also uplift to
> Aurora 13.

Yes, this affects Fennec Native with off-main-thread compositing, so we should indeed uplift this when off-main-thread compositing gets uplifted.
Comment 17 Scoobidiver (away) 2012-04-29 02:13:07 PDT
(In reply to Ali Juma [:ajuma] from comment #16)
> Bug 694964 was backed out of FF10 on Jan. 23 (see Comment 2 above), so this
> crash shouldn't be happening there.
Comment 18 Alex Keybl [:akeybl] 2012-05-02 14:49:20 PDT
No need to track for FF13 at this point - we don't expect to ship a Fennec build off of that version.
Comment 19 Robert Kaiser (not working on stability any more) 2012-05-08 11:06:01 PDT
"TouchBadMemory | mozalloc_abort | nsHtml5ElementName::releaseStatics" is currently roughly half of our Fennec 13 Beta crashes, if this is this bug, is there any chance to get the fix uplifted to beta?

Note You need to log in before you can comment on or make changes to this bug.