Closed Bug 992719 Opened 10 years ago Closed 10 years ago

[tarako]monkey test crash at libm.so!hypot [e_hypot.c : 59 + 0x0]

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
major

Tracking

(blocking-b2g:-)

RESOLVED WORKSFORME
blocking-b2g -

People

(Reporter: yaoyao.wu, Unassigned)

Details

(Keywords: crash, Whiteboard: [POVB][b2g-crash])

Attachments

(2 files)

Operating system: Android
                  0.0.0 Linux 3.0.8+ #1 PREEMPT Sun Apr 6 18:14:14 CST 2014 armv7l Spreadtrum/sp6821a_gonk/sp6821a_gonk:4.0.4.0.4.0.4/OPENMASTER/32:userdebug/test-keys
CPU: arm
     0 CPUs

Crash reason:  SIGILL
Crash address: 0x40151f30

Thread 0 (crashed)
 0  libm.so!hypot [e_hypot.c : 59 + 0x0]
     r4 = 0x00000001    r5 = 0xbee4eb18    r6 = 0xbee4eb10    r7 = 0x4044c4c8
     r8 = 0x4044c4c8    r9 = 0xbee4eaa0   r10 = 0xbee4ed54    fp = 0x46f5b660
     sp = 0xbee4ea50    lr = 0x419ed1a5    pc = 0x40151f30
    Found by: given as instruction pointer in context
 1  libxul.so!_cairo_matrix_compute_basis_scale_factors [cairo-matrix.c : 660 + 0xb]
     r4 = 0x00000001    r5 = 0xbee4eb18    r6 = 0xbee4eb10    r7 = 0x4044c4c8
     r8 = 0x4044c4c8    r9 = 0xbee4eaa0   r10 = 0xbee4ed54    fp = 0x46f5b660
     sp = 0xbee4ea50    pc = 0x419ed1a5
    Found by: call frame info
 2  libxul.so!_cairo_ft_unscaled_font_set_scale [cairo-ft-font.c : 718 + 0xb]
     r4 = 0x4044c4a8    r5 = 0x433787c0    r6 = 0xbee4eab0    r7 = 0x4044c4c8
     r8 = 0x4044c4c8    r9 = 0xbee4eaa0   r10 = 0xbee4ed54    fp = 0x46f5b660
     sp = 0xbee4ea78    pc = 0x419dba63
    Found by: call frame info
 3  libxul.so!_cairo_ft_font_face_scaled_font_create [cairo-ft-font.c : 1869 + 0x9]
     r4 = 0x4044c400    r5 = 0x4367af10    r6 = 0x433787c0    r7 = 0x43789800
     r8 = 0x00000000    r9 = 0xbee4ee08   r10 = 0xbee4ed54    fp = 0x46f5b660
     sp = 0xbee4eb40    pc = 0x419dc165
    Found by: call frame info
 4  libxul.so!_moz_cairo_scaled_font_create [cairo-scaled-font.c : 1053 + 0x13]
     r4 = 0x4731b000    r5 = 0x419dbfd9    r6 = 0x4367af10    r7 = 0xbee4edd8
     r8 = 0xbee4ee08    r9 = 0x46f5b660   r10 = 0x4367af10    fp = 0x00000000
     sp = 0xbee4ebb0    pc = 0x419f672d
    Found by: call frame info
 5  libxul.so!FT2FontEntry::CreateScaledFont(gfxFontStyle const*) [gfxFT2FontList.cpp : 238 + 0xb]
     r4 = 0x46f5b660    r5 = 0x4367af10    r6 = 0xbee4ee08    r7 = 0x4474a7e8
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4ed80    pc = 0x4103fb67
    Found by: call frame info
 6  libxul.so!FT2FontEntry::CreateFontInstance(gfxFontStyle const*, bool) [gfxFT2FontList.cpp : 263 + 0x3]
     r4 = 0x42493b88    r5 = 0x44718c10    r6 = 0x4474a7e8    r7 = 0x44718c10
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4ee50    pc = 0x4103fb8b
    Found by: call frame info
 7  libxul.so!gfxFontEntry::FindOrMakeFont(gfxFontStyle const*, bool) [gfxFont.cpp : 256 + 0xb]
     r4 = 0x42493b88    r5 = 0x44718c10    r6 = 0x4474a7e8    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4ee70    pc = 0x41047cc7
    Found by: call frame info
 8  libxul.so!gfxFontGroup::FindPlatformFont(nsAString_internal const&, nsACString_internal const&, bool, void*) [gfxFont.cpp : 4178 + 0xb]
     r4 = 0x4539d540    r5 = 0x4474a7d0    r6 = 0x4474a7e8    r7 = 0x44718c10
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4ee90    pc = 0x41047dd1
    Found by: call frame info
 9  libxul.so!gfxFontGroup::FontResolverProc(nsAString_internal const&, void*) [gfxFont.cpp : 4432 + 0x7]
     r4 = 0x41047d45    r5 = 0xbee4eecc    r6 = 0xbee4f2c7    r7 = 0xbee4f284
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4eec0    pc = 0x41042b6b
    Found by: call frame info
10  libxul.so!gfxAndroidPlatform::ResolveFontName(nsAString_internal const&, bool (*)(nsAString_internal const&, void*), void*, bool&) [gfxAndroidPlatform.cpp : 262 + 0x5]
     r4 = 0x41042b5d    r5 = 0xbee4eecc    r6 = 0xbee4f2c7    r7 = 0xbee4f284
     r8 = 0x00000000    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4eec8    pc = 0x4103d8ef
    Found by: call frame info
11  libxul.so!gfxFontGroup::ForEachFontInternal(nsAString_internal const&, nsIAtom*, bool, bool, bool, bool (*)(nsAString_internal const&, nsACString_internal const&, bool, void*), void*) [gfxFont.cpp : 4396 + 0x13]
     r4 = 0x44d58240    r5 = 0x4103d8a9    r6 = 0x00000000    r7 = 0xbee4f04c
     r8 = 0x4362d480    r9 = 0x4474a7d0   r10 = 0x44d58240    fp = 0xbee4f134
     sp = 0xbee4ef78    pc = 0x4104654b
    Found by: call frame info
12  libxul.so!gfxFontGroup::ForEachFontInternal(nsAString_internal const&, nsIAtom*, bool, bool, bool, bool (*)(nsAString_internal const&, nsACString_internal const&, bool, void*), void*) [gfxFont.cpp : 4369 + 0x19]
     r4 = 0x4826bd5c    r5 = 0x00000000    r6 = 0x00000001    r7 = 0xbee4f3c4
     r8 = 0x4362d480    r9 = 0x4474a7d0   r10 = 0x4826bd5c    fp = 0xbee4f4ac
     sp = 0xbee4f2f0    pc = 0x410464af
    Found by: call frame info
13  libxul.so!gfxFontGroup::ForEachFont(bool (*)(nsAString_internal const&, nsACString_internal const&, bool, void*), void*) [gfxFont.cpp : 4238 + 0x13]
     r4 = 0x41047d45    r5 = 0xbee4fa98    r6 = 0x00000000    r7 = 0xbee4fb5c
     r8 = 0x00000064    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee4f668    pc = 0x41046689
    Found by: call frame info
14  libxul.so!gfxFontGroup::BuildFontList() [gfxFont.cpp : 4063 + 0x7]
     r4 = 0x4474a7d0    r5 = 0xbee4fa98    r6 = 0x00000000    r7 = 0xbee4fb5c
     r8 = 0x00000064    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee4f680    pc = 0x41047e25
    Found by: call frame info
15  libxul.so!gfxFontGroup::gfxFontGroup [gfxFont.cpp : 4054 + 0x3]
     r4 = 0x4474a7d0    r5 = 0xbee4fa98    r6 = 0x00000000    r7 = 0xbee4fb5c
     r8 = 0x00000064    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee4fa50    pc = 0x410480cf
    Found by: call frame info
16  libxul.so!gfxAndroidPlatform::CreateFontGroup(nsAString_internal const&, gfxFontStyle const*, gfxUserFontSet*) [gfxAndroidPlatform.cpp : 312 + 0x3]
     r4 = 0x4474a7d0    r5 = 0x00000000    r6 = 0xbee4fa98    r7 = 0xbee4fb5c
     r8 = 0x00000064    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee4fa60    pc = 0x4103d861
    Found by: call frame info
17  libxul.so!nsFontMetrics::Init(nsFont const&, nsIAtom*, nsDeviceContext*, gfxUserFontSet*, gfxTextPerfMetrics*) [nsFontMetrics.cpp : 122 + 0xf]
     r4 = 0xbee4fb5c    r5 = 0x46f662e0    r6 = 0xbee4fa98    r7 = 0x4103d845
     r8 = 0x00000064    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee4fa78    pc = 0x4102c129
    Found by: call frame info
18  libxul.so!nsFontCache::GetMetricsFor(nsFont const&, nsIAtom*, gfxUserFontSet*, gfxTextPerfMetrics*, nsFontMetrics*&) [nsDeviceContext.cpp : 157 + 0xb]
     r4 = 0x48277cc0    r5 = 0x45b92060    r6 = 0xbee4fb5c    r7 = 0x00000000
     r8 = 0xbee4fbcc    r9 = 0x46f662e0   r10 = 0xfffffffc    fp = 0x00000014
     sp = 0xbee4faf8    pc = 0x41026ead
    Found by: call frame info
19  libxul.so!nsDeviceContext::GetMetricsFor(nsFont const&, nsIAtom*, gfxUserFontSet*, gfxTextPerfMetrics*, nsFontMetrics*&) [nsDeviceContext.cpp : 275 + 0x13]
     r4 = 0x476df4c0    r5 = 0xbee4fb5c    r6 = 0x00000000    r7 = 0x45b92060
     r8 = 0x48277cc0    r9 = 0x0000000e   r10 = 0xbee50e44    fp = 0x0000000e
     sp = 0xbee4fb30    pc = 0x4102718b
    Found by: call frame info
20  libxul.so!nsLayoutUtils::GetFontMetricsForStyleContext(nsStyleContext*, nsFontMetrics**, float) [nsLayoutUtils.cpp : 2640 + 0x13]
     r4 = 0xbee4fb5c    r5 = 0x476df4c0    r6 = 0x00000000    r7 = 0xbee4fbcc
     r8 = 0x00000000    r9 = 0x0000000e   r10 = 0xbee50e44    fp = 0x0000000e
     sp = 0xbee4fb50    pc = 0x416ea3a9
    Found by: call frame info
21  libxul.so!nsLayoutUtils::GetFontMetricsForFrame(nsIFrame const*, nsFontMetrics**, float) [nsLayoutUtils.cpp : 2618 + 0x5]
     r4 = 0x00000000    r5 = 0x01100000    r6 = 0xbee50f4c    r7 = 0x4487c728
     r8 = 0xbee4fc4c    r9 = 0x0000000e   r10 = 0xbee50e44    fp = 0x0000000e
     sp = 0xbee4fbc0    pc = 0x416ea3c5
    Found by: call frame info
22  libxul.so!GetFontGroupForFrame [nsTextFrame.cpp : 1790 + 0x3]
     r4 = 0x00000000    r5 = 0x01100000    r6 = 0xbee50f4c    r7 = 0x4487c728
     r8 = 0xbee4fc4c    r9 = 0x0000000e   r10 = 0xbee50e44    fp = 0x0000000e
     sp = 0xbee4fbc8    pc = 0x4172d55b
    Found by: call frame info
23  libxul.so!BuildTextRunsScanner::BuildTextRunForFrames(void*) [nsTextFrame.cpp : 2041 + 0xb]
     r4 = 0xbee51fd8    r5 = 0x01100000    r6 = 0xbee50f4c    r7 = 0x4487c728
     r8 = 0xbee4fc4c    r9 = 0x0000000e   r10 = 0xbee50e44    fp = 0x0000000e
     sp = 0xbee4fbd8    pc = 0x41731d53
    Found by: call frame info
24  libxul.so!BuildTextRunsScanner::FlushFrames(bool, bool) [nsTextFrame.cpp : 1518 + 0xb]
     r4 = 0xbee51fd8    r5 = 0x00000001    r6 = 0xbee50fa8    r7 = 0xbee50f9c
     r8 = 0x00000000    r9 = 0x00000001   r10 = 0xbee51fd8    fp = 0xbee53454
     sp = 0xbee50f98    pc = 0x417325b7
    Found by: call frame info
25  libxul.so!nsTextFrame::EnsureTextRun(nsTextFrame::TextRunType, gfxContext*, nsIFrame*, nsLineList_iterator const*, unsigned int*) [nsTextFrame.cpp : 1447 + 0x3]
     r4 = 0xbee53454    r5 = 0x4487c728    r6 = 0xbee51fd8    r7 = 0x43347b00
     r8 = 0xbee51fd8    r9 = 0x00000001   r10 = 0xbee51fd8    fp = 0xbee53454
     sp = 0xbee51fc0    pc = 0x41732b05
    Found by: call frame info
26  libxul.so!nsTextFrame::AddInlineMinWidthForFlow(nsRenderingContext*, nsIFrame::InlineMinWidthData*, nsTextFrame::TextRunType) [nsTextFrame.cpp : 6979 + 0x15]
     r4 = 0xbee534d8    r5 = 0x00000001    r6 = 0x46f5b620    r7 = 0x4487c728
     r8 = 0x00000000    r9 = 0x46f5b620   r10 = 0x436894c8    fp = 0xbee534d8
     sp = 0xbee52340    pc = 0x41733631
    Found by: call frame info
27  libxul.so!nsTextFrame::AddInlineMinWidth(nsRenderingContext*, nsIFrame::InlineMinWidthData*) [nsTextFrame.cpp : 7135 + 0xb]
     r4 = 0x4487c728    r5 = 0x00000001    r6 = 0x4487c728    r7 = 0xbee534d8
     r8 = 0x00000000    r9 = 0x46f5b620   r10 = 0x436894c8    fp = 0xbee534d8
     sp = 0xbee534b0    pc = 0x41733a9b
    Found by: call frame info
28  libxul.so!nsBlockFrame::GetMinWidth(nsRenderingContext*) [nsBlockFrame.cpp : 676 + 0x5]
     r4 = 0x00000001    r5 = 0x4487c728    r6 = 0x436894c8    r7 = 0x46f5b620
     r8 = 0x436894c8    r9 = 0x00000001   r10 = 0x436894c8    fp = 0xbee534d8
     sp = 0xbee534d0    pc = 0x416fd0bb
    Found by: call frame info
29  libxul.so!nsFrame::ShrinkWidthToFit(nsRenderingContext*, int) [nsFrame.cpp : 4112 + 0xb]
     r4 = 0x436894c8    r5 = 0x46f5b620    r6 = 0x00004b00    r7 = 0x00004b00
     r8 = 0x000012c0    r9 = 0xbee53608   r10 = 0x46f5b620    fp = 0x00000000
     sp = 0xbee53528    pc = 0x41709e39
    Found by: call frame info
30  libxul.so!nsContainerFrame::ComputeAutoSize(nsRenderingContext*, nsSize, int, nsSize, nsSize, nsSize, bool) [nsContainerFrame.cpp : 920 + 0x9]
     r4 = 0xbee53648    r5 = 0x436894c8    r6 = 0x46f5b620    r7 = 0x00004b00
     r8 = 0x000012c0    r9 = 0xbee53608   r10 = 0x46f5b620    fp = 0x00000000
     sp = 0xbee53540    pc = 0x417042b5
    Found by: call frame info
31  libxul.so!nsFrame::ComputeSize(nsRenderingContext*, nsSize, int, nsSize, nsSize, nsSize, unsigned int) [nsFrame.cpp : 3904 + 0x31]
     r4 = 0xbee53648    r5 = 0x436894c8    r6 = 0x41704259    r7 = 0x00000000
     r8 = 0x000012c0    r9 = 0xbee53608   r10 = 0x46f5b620    fp = 0x00000000
     sp = 0xbee53560    pc = 0x41710b8b
    Found by: call frame info
32  libxul.so!nsHTMLReflowState::InitConstraints(nsPresContext*, int, int, nsMargin const*, nsMargin const*, nsIAtom*) [nsHTMLReflowState.cpp : 2118 + 0x2d]
     r4 = 0xbee53738    r5 = 0x00000000    r6 = 0x00000000    r7 = 0x436310e0
     r8 = 0x00000001    r9 = 0xbee53608   r10 = 0x46f5b620    fp = 0x00000000
     sp = 0xbee535f0    pc = 0x4171c521
    Found by: call frame info
33  libxul.so!nsHTMLReflowState::Init(nsPresContext*, int, int, nsMargin const*, nsMargin const*) [nsHTMLReflowState.cpp : 322 + 0x15]
     r4 = 0xbee53738    r5 = 0x436310e0    r6 = 0x4822e400    r7 = 0xffffffff
     r8 = 0xffffffff    r9 = 0xbee5387c   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee53680    pc = 0x4171cbef
    Found by: call frame info
34  libxul.so!nsHTMLReflowState::nsHTMLReflowState [nsHTMLReflowState.cpp : 193 + 0xf]
     r4 = 0xbee53738    r5 = 0xbee53e8c    r6 = 0x4822e400    r7 = 0x00000000
     r8 = 0x436894c8    r9 = 0xbee5387c   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee536b0    pc = 0x4171ce81
    Found by: call frame info
35  libxul.so!nsLineLayout::ReflowFrame(nsIFrame*, unsigned int&, nsHTMLReflowMetrics*, bool&) [Maybe.h : 75 + 0x1b]
     r4 = 0x43337950    r5 = 0xbee5399c    r6 = 0x436894c8    r7 = 0xbee53738
     r8 = 0x43337810    r9 = 0x4246f03c   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee536e8    pc = 0x416f2855
    Found by: call frame info
36  libxul.so!nsBlockFrame::ReflowInlineFrame(nsBlockReflowState&, nsLineLayout&, nsLineList_iterator, nsIFrame*, LineReflowStatus*) [nsBlockFrame.cpp : 3709 + 0xb]
     r4 = 0x43689b28    r5 = 0xbee5399c    r6 = 0x436894c8    r7 = 0xbee53934
     r8 = 0xbee53c60    r9 = 0x436888d0   r10 = 0x00000000    fp = 0xbee53a2c
     sp = 0xbee538b0    pc = 0x416fba91
    Found by: call frame info
37  libxul.so!nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState&, nsLineLayout&, nsLineList_iterator, nsFlowAreaRect&, int&, nsFloatManager::SavedState*, bool*, LineReflowStatus*, bool) [nsBlockFrame.cpp : 3506 + 0x11]
     r4 = 0x436894c8    r5 = 0xbee5399c    r6 = 0x436888d0    r7 = 0x00000002
     r8 = 0x43689b28    r9 = 0xbee53c60   r10 = 0x00000000    fp = 0xbee53a2c
     sp = 0xbee538e0    pc = 0x416fdcdb
    Found by: call frame info
38  libxul.so!nsBlockFrame::ReflowInlineFrames(nsBlockReflowState&, nsLineList_iterator, bool*) [nsBlockFrame.cpp : 3366 + 0x23]
     r4 = 0xbee53c60    r5 = 0xbee5399c    r6 = 0x00000000    r7 = 0xffffffff
     r8 = 0xbee53a50    r9 = 0x00000001   r10 = 0xbee53a40    fp = 0xbee53b4f
     sp = 0xbee53960    pc = 0x416fdf79
    Found by: call frame info
39  libxul.so!nsBlockFrame::ReflowLine(nsBlockReflowState&, nsLineList_iterator, bool*) [nsBlockFrame.cpp : 2517 + 0x3]
     r4 = 0x000000c0    r5 = 0x00000000    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0x436888d0    r9 = 0x000012c0   r10 = 0x4368891c    fp = 0x00000000
     sp = 0xbee53a80    pc = 0x416fe019
    Found by: call frame info
40  libxul.so!nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&) [nsBlockFrame.cpp : 2036 + 0x3]
     r4 = 0x43689b28    r5 = 0xbee53c60    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0x436888d0    r9 = 0x000012c0   r10 = 0x4368891c    fp = 0x00000000
     sp = 0xbee53a90    pc = 0x416fe2bf
    Found by: call frame info
41  libxul.so!nsBlockFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsBlockFrame.cpp : 1066 + 0x5]
     r4 = 0xbee53e8c    r5 = 0x436888d0    r6 = 0xbee53f80    r7 = 0xbee53c60
     r8 = 0xbee53d58    r9 = 0x4822e400   r10 = 0x00d01221    fp = 0x000b10a0
     sp = 0xbee53b78    pc = 0x416feb59
    Found by: call frame info
42  libxul.so!nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned int, unsigned int&, nsOverflowContinuationTracker*) [nsContainerFrame.cpp : 962 + 0x13]
     r4 = 0x436888d0    r5 = 0x00000000    r6 = 0x4822e400    r7 = 0x416fe869
     r8 = 0x00000003    r9 = 0xbee53f80   r10 = 0xbee53f44    fp = 0x4822e400
     sp = 0xbee53e38    pc = 0x4170466d
    Found by: call frame info
43  libxul.so!nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowState*, bool, bool, nsHTMLReflowMetrics*, bool) [nsGfxScrollFrame.cpp : 459 + 0x1b]
     r4 = 0x43688770    r5 = 0xbee5403c    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0xbee53e8c    r9 = 0x00000000   r10 = 0x00000000    fp = 0x4822e400
     sp = 0xbee53e60    pc = 0x417164d7
    Found by: call frame info
44  libxul.so!nsHTMLScrollFrame::ReflowContents(ScrollReflowState*, nsHTMLReflowMetrics const&) [nsGfxScrollFrame.cpp : 557 + 0x1b]
     r4 = 0xbee5403c    r5 = 0x43688770    r6 = 0x00000000    r7 = 0xbee541e4
     r8 = 0x436887c0    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee5403c
     sp = 0xbee53f70    pc = 0x4171678d
    Found by: call frame info
45  libxul.so!nsHTMLScrollFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsGfxScrollFrame.cpp : 795 + 0x3]
     r4 = 0x43688770    r5 = 0x00000000    r6 = 0xbee5413c    r7 = 0xbee541e4
     r8 = 0x436887c0    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee5403c
     sp = 0xbee54008    pc = 0x41717c09
    Found by: call frame info
46  libxul.so!nsAbsoluteContainingBlock::ReflowAbsoluteFrame(nsIFrame*, nsPresContext*, nsHTMLReflowState const&, nsRect const&, bool, nsIFrame*, unsigned int&, nsOverflowAreas*) [nsAbsoluteContainingBlock.cpp : 415 + 0x13]
     r4 = 0x43688770    r5 = 0xbee5464c    r6 = 0xbee5457c    r7 = 0x417179ed
     r8 = 0x4822e400    r9 = 0x4821b398   r10 = 0x40472e10    fp = 0x00000001
     sp = 0xbee54128    pc = 0x416f7e77
    Found by: call frame info
47  libxul.so!nsAbsoluteContainingBlock::Reflow(nsContainerFrame*, nsPresContext*, nsHTMLReflowState const&, unsigned int&, nsRect const&, bool, bool, bool, nsOverflowAreas*) [nsAbsoluteContainingBlock.cpp : 137 + 0x17]
     r4 = 0x43688770    r5 = 0x4822e400    r6 = 0x40472e10    r7 = 0x00000000
     r8 = 0xbee5464c    r9 = 0x00000000   r10 = 0xbee542f4    fp = 0x00000000
     sp = 0xbee542b8    pc = 0x416f831f
    Found by: call frame info
48  libxul.so!nsBlockFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsBlockFrame.cpp : 1228 + 0x7]
     r4 = 0xbee5464c    r5 = 0x40472e10    r6 = 0xbee54740    r7 = 0x00004b00
     r8 = 0xbee548fc    r9 = 0x4822e400   r10 = 0xbee5476c    fp = 0x00007080
     sp = 0xbee54338    pc = 0x416fee89
    Found by: call frame info
49  libxul.so!nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned int, unsigned int&, nsOverflowContinuationTracker*) [nsContainerFrame.cpp : 962 + 0x13]
     r4 = 0x40472e10    r5 = 0x00000000    r6 = 0x4822e400    r7 = 0x416fe869
     r8 = 0x00000003    r9 = 0xbee54740   r10 = 0xbee54704    fp = 0x4822e400
     sp = 0xbee545f8    pc = 0x4170466d
    Found by: call frame info
50  libxul.so!nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowState*, bool, bool, nsHTMLReflowMetrics*, bool) [nsGfxScrollFrame.cpp : 459 + 0x1b]
     r4 = 0x40472b58    r5 = 0xbee547fc    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0xbee5464c    r9 = 0x00000000   r10 = 0x00000000    fp = 0x4822e400
     sp = 0xbee54620    pc = 0x417164d7
    Found by: call frame info
51  libxul.so!nsHTMLScrollFrame::ReflowContents(ScrollReflowState*, nsHTMLReflowMetrics const&) [nsGfxScrollFrame.cpp : 557 + 0x1b]
     r4 = 0xbee547fc    r5 = 0x40472b58    r6 = 0x00000000    r7 = 0xbee549a4
     r8 = 0x40472ba8    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee547fc
     sp = 0xbee54730    pc = 0x4171678d
    Found by: call frame info
52  libxul.so!nsHTMLScrollFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsGfxScrollFrame.cpp : 795 + 0x3]
     r4 = 0x40472b58    r5 = 0x00000000    r6 = 0xbee548fc    r7 = 0xbee549a4
     r8 = 0x40472ba8    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee547fc
     sp = 0xbee547c8    pc = 0x41717c09
    Found by: call frame info
53  libxul.so!nsAbsoluteContainingBlock::ReflowAbsoluteFrame(nsIFrame*, nsPresContext*, nsHTMLReflowState const&, nsRect const&, bool, nsIFrame*, unsigned int&, nsOverflowAreas*) [nsAbsoluteContainingBlock.cpp : 415 + 0x13]
     r4 = 0x40472b58    r5 = 0xbee54d74    r6 = 0xbee54b10    r7 = 0x417179ed
     r8 = 0x4822e400    r9 = 0x4821b398   r10 = 0x4821bc18    fp = 0x00000001
     sp = 0xbee548e8    pc = 0x416f7e77
    Found by: call frame info
54  libxul.so!nsAbsoluteContainingBlock::Reflow(nsContainerFrame*, nsPresContext*, nsHTMLReflowState const&, unsigned int&, nsRect const&, bool, bool, bool, nsOverflowAreas*) [nsAbsoluteContainingBlock.cpp : 137 + 0x17]
     r4 = 0x40472b58    r5 = 0x4822e400    r6 = 0x4821bc18    r7 = 0x00000001
     r8 = 0xbee54d74    r9 = 0x00000000   r10 = 0xbee54ab4    fp = 0x00000000
     sp = 0xbee54a78    pc = 0x416f831f
    Found by: call frame info
55  libxul.so!nsFrame::ReflowAbsoluteFrames(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&, bool) [nsFrame.cpp : 4211 + 0x17]
     r4 = 0x4821bc18    r5 = 0xbee54d74    r6 = 0xbee54e94    r7 = 0x484dcd88
     r8 = 0x00000001    r9 = 0x00007080   r10 = 0x00004b00    fp = 0x4822e400
     sp = 0xbee54af8    pc = 0x4170b7f9
    Found by: call frame info
56  libxul.so!nsFrame::FinishReflowWithAbsoluteFrames(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&, bool) [nsFrame.cpp : 4178 + 0xd]
     r4 = 0xbee54e68    r5 = 0x4821bc18    r6 = 0xbee54d74    r7 = 0x4822e400
     r8 = 0xbee54e68    r9 = 0xbee54ba4   r10 = 0xbee54e2c    fp = 0x00000000
     sp = 0xbee54b48    pc = 0x41710157
    Found by: call frame info
57  libxul.so!nsCanvasFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsCanvasFrame.cpp : 582 + 0x13]
     r4 = 0x4821bc18    r5 = 0xbee54cb8    r6 = 0xbee54d74    r7 = 0x4822e400
     r8 = 0xbee54e68    r9 = 0xbee54ba4   r10 = 0xbee54e2c    fp = 0x00000000
     sp = 0xbee54b68    pc = 0x41702151
    Found by: call frame info
58  libxul.so!nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned int, unsigned int&, nsOverflowContinuationTracker*) [nsContainerFrame.cpp : 962 + 0x13]
     r4 = 0x4821bc18    r5 = 0x00000000    r6 = 0x4822e400    r7 = 0x41701e61
     r8 = 0x00000003    r9 = 0xbee54e68   r10 = 0xbee54e2c    fp = 0x4822e400
     sp = 0xbee54d20    pc = 0x4170466d
    Found by: call frame info
59  libxul.so!nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowState*, bool, bool, nsHTMLReflowMetrics*, bool) [nsGfxScrollFrame.cpp : 459 + 0x1b]
     r4 = 0x4821bdf0    r5 = 0xbee54f24    r6 = 0x00000000    r7 = 0x00000000
     r8 = 0xbee54d74    r9 = 0x00000000   r10 = 0x00000000    fp = 0x4822e400
     sp = 0xbee54d48    pc = 0x417164d7
    Found by: call frame info
60  libxul.so!nsHTMLScrollFrame::ReflowContents(ScrollReflowState*, nsHTMLReflowMetrics const&) [nsGfxScrollFrame.cpp : 557 + 0x1b]
     r4 = 0xbee54f24    r5 = 0x4821bdf0    r6 = 0x00000000    r7 = 0xbee5510c
     r8 = 0x4821be40    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee54f24
     sp = 0xbee54e58    pc = 0x4171678d
    Found by: call frame info
61  libxul.so!nsHTMLScrollFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsGfxScrollFrame.cpp : 795 + 0x3]
     r4 = 0x4821bdf0    r5 = 0x00000000    r6 = 0xbee55064    r7 = 0xbee5510c
     r8 = 0x4821be40    r9 = 0x00000000   r10 = 0x00000000    fp = 0xbee54f24
     sp = 0xbee54ef0    pc = 0x41717c09
    Found by: call frame info
62  libxul.so!nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned int, unsigned int&, nsOverflowContinuationTracker*) [nsContainerFrame.cpp : 962 + 0x13]
     r4 = 0x4821bdf0    r5 = 0x00000000    r6 = 0x4822e400    r7 = 0x417179ed
     r8 = 0x00000000    r9 = 0xbee5510c   r10 = 0xbee553fc    fp = 0x4821bdf0
     sp = 0xbee55010    pc = 0x4170466d
    Found by: call frame info
63  libxul.so!ViewportFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) [nsViewportFrame.cpp : 222 + 0x23]
     r4 = 0xbee551d4    r5 = 0x4821b298    r6 = 0x00000000    r7 = 0xbee55354
     r8 = 0x4821bdf0    r9 = 0xbee55064   r10 = 0x4822e400    fp = 0x4821bdf0
     sp = 0xbee55038    pc = 0x41738f3d
    Found by: call frame info
64  libxul.so!PresShell::DoReflow(nsIFrame*, bool) [nsPresShell.cpp : 8148 + 0xf]
     r4 = 0x48236360    r5 = 0x00000000    r6 = 0x00000000    r7 = 0x41738df1
     r8 = 0x00007080    r9 = 0x46f5b620   r10 = 0xbee551cc    fp = 0x00000000
     sp = 0xbee551a8    pc = 0x416af80b
    Found by: call frame info
65  libxul.so!PresShell::ProcessReflowCommands(bool) [nsPresShell.cpp : 8304 + 0x9]
     r4 = 0x48236360    r5 = 0x00000001    r6 = 0x004e9e01    r7 = 0x4821b298
     r8 = 0x4823649c    r9 = 0x00000001   r10 = 0x00001400    fp = 0x00000000
     sp = 0xbee55428    pc = 0x416b30bd
    Found by: call frame info
66  libxul.so!PresShell::FlushPendingNotifications(mozilla::ChangesToFlush) [nsPresShell.cpp : 4055 + 0xd]
     r4 = 0x48236360    r5 = 0x00000004    r6 = 0x00000000    r7 = 0x4778e160
     r8 = 0x00000000    r9 = 0x00000001   r10 = 0x00000000    fp = 0x00000001
     sp = 0xbee55468    pc = 0x416b3d17
    Found by: call frame info
67  libxul.so!nsRefreshDriver::Tick(long long, mozilla::TimeStamp) [nsRefreshDriver.cpp : 1164 + 0x5]
     r4 = 0x43369e70    r5 = 0x00000000    r6 = 0xbee556d0    r7 = 0x00000000
     r8 = 0xbee555e0    r9 = 0xbee556e4   r10 = 0x00000000    fp = 0x00000001
     sp = 0xbee55528    pc = 0x416b91cf
    Found by: call frame info
68  libxul.so!mozilla::RefreshDriverTimer::TimerTick(nsITimer*, void*) [nsRefreshDriver.cpp : 168 + 0xb]
     r4 = 0x00000000    r5 = 0x000004af    r6 = 0x5ea02715    r7 = 0x00000001
     r8 = 0xbee557df    r9 = 0x4041e90c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55738    pc = 0x416b9583
    Found by: call frame info
69  libxul.so!nsTimerImpl::Fire() [nsTimerImpl.cpp : 551 + 0x5]
     r4 = 0x45b18550    r5 = 0x416b952d    r6 = 0x00000002    r7 = 0x00000001
     r8 = 0xbee557df    r9 = 0x4041e90c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55768    pc = 0x40e07757
    Found by: call frame info
70  libxul.so!nsTimerEvent::Run() [nsTimerImpl.cpp : 635 + 0x5]
     r4 = 0x4041e8e0    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0xbee557df    r9 = 0x4041e90c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55790    pc = 0x40e07807
    Found by: call frame info
71  libxul.so!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp : 612 + 0x5]
     r4 = 0x4041e8e0    r5 = 0x00000000    r6 = 0x00000001    r7 = 0x00000001
     r8 = 0xbee557df    r9 = 0x4041e90c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55798    pc = 0x40e05e75
    Found by: call frame info
72  libxul.so!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp : 263 + 0xb]
     r4 = 0x00000001    r5 = 0x404a20c0    r6 = 0x40402d40    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee557d8    pc = 0x40dd8c01
    Found by: call frame info
73  libxul.so!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [MessagePump.cpp : 124 + 0x7]
     r4 = 0x40402d30    r5 = 0x404a20c0    r6 = 0x40402d40    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee557e8    pc = 0x40f31725
    Found by: call frame info
74  libxul.so!MessageLoop::RunInternal() [message_loop.cc : 222 + 0x5]
     r4 = 0x404a20c0    r5 = 0x437d84c0    r6 = 0x4041e8e0    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55810    pc = 0x40f27679
    Found by: call frame info
75  libxul.so!MessageLoop::Run() [message_loop.cc : 215 + 0x5]
     r4 = 0x404a20c0    r5 = 0x437d84c0    r6 = 0x4041e8e0    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55818    pc = 0x40f276f7
    Found by: call frame info
76  libxul.so!nsBaseAppShell::Run() [nsBaseAppShell.cpp : 161 + 0x7]
     r4 = 0x00000000    r5 = 0x437d84c0    r6 = 0x4041e8e0    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55830    pc = 0x412eb4a5
    Found by: call frame info
77  libxul.so!nsAppStartup::Run() [nsAppStartup.cpp : 276 + 0x5]
     r4 = 0x437de160    r5 = 0x40defaf5    r6 = 0xbee55b05    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55840    pc = 0x4191f611
    Found by: call frame info
78  libxul.so!XREMain::XRE_mainRun() [nsAppRunner.cpp : 4059 + 0x5]
     r4 = 0xbee55a14    r5 = 0x40defaf5    r6 = 0xbee55b05    r7 = 0x00000000
     r8 = 0x00000000    r9 = 0xbee5596c   r10 = 0xbee55978    fp = 0x00000000
     sp = 0xbee55848    pc = 0x418f7289
    Found by: call frame info
79  libxul.so!XREMain::XRE_main(int, char**, nsXREAppData const*) [nsAppRunner.cpp : 4127 + 0x5]
     r4 = 0xbee55a14    r5 = 0xbee559ee    r6 = 0x00000000    r7 = 0x00021170
     r8 = 0x40438000    r9 = 0x4043c000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee559e8    pc = 0x418f9c5b
    Found by: call frame info
80  libxul.so!XRE_main [nsAppRunner.cpp : 4337 + 0x3]
     r4 = 0x00021170    r5 = 0xbee57bf4    r6 = 0x00000001    r7 = 0x00000000
     r8 = 0xbee55a14    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee55a10    pc = 0x418f9dc5
    Found by: call frame info
81  b2g!main [nsBrowserApp.cpp : 163 + 0xf]
     r4 = 0x418f9d79    r5 = 0x00000000    r6 = 0x00000001    r7 = 0xbee57bf4
     r8 = 0x00000000    r9 = 0x00000000   r10 = 0x00000000    fp = 0x00000000
     sp = 0xbee55b20    pc = 0x000098df
    Found by: call frame info
Attached file the rest.tar.bz2
Flags: needinfo?(ttsai)
Flags: needinfo?(styang)
Flags: needinfo?(ttsai) → needinfo?(ahuang)
lets not block on this before we have clear path of actions
blocking-b2g: 1.3T? → -
It is crashed at cairo using hypot() in libm, implemented in bionic. There's no possible cairo could miss use this according to the parameter definition. I would suggest partner to take a look into this.
Flags: needinfo?(ahuang) → needinfo?(yaoyao.wu)
it's not NOOPT build.
Summary: [tarako]B2G_NOOPT=1 build, monkey test crash at libm.so!hypot [e_hypot.c : 59 + 0x0] → [tarako]monkey test crash at libm.so!hypot [e_hypot.c : 59 + 0x0]
Flags: needinfo?(styang) → needinfo?(james.zhang)
Whiteboard: [POVB]
Keywords: crash
Whiteboard: [POVB] → [POVB][b2g-crash]
Flags: needinfo?(james.zhang)
(In reply to Alan Huang [:ahuang] from comment #3)
> It is crashed at cairo using hypot() in libm, implemented in bionic. There's
> no possible cairo could miss use this according to the parameter definition.
> I would suggest partner to take a look into this.

Bionic libm is AOSP source code, we don't change it and it's the same as CAF code.
Can you check cairo code?
Flags: needinfo?(ahuang)
(In reply to James Zhang from comment #5)
> (In reply to Alan Huang [:ahuang] from comment #3)
> > It is crashed at cairo using hypot() in libm, implemented in bionic. There's
> > no possible cairo could miss use this according to the parameter definition.
> > I would suggest partner to take a look into this.
> 
> Bionic libm is AOSP source code, we don't change it and it's the same as CAF
> code.
> Can you check cairo code?

Hi James,
It is hypot(), which takes two double as its argument. I don't think there's any possibility cairo could cause it crash. 

If you take a look into the macro GET_HIGH_WORD() used in hypot() (where it crashed), it gets the MSB from a double. That is, you may need to consider this as a platform bug.
Flags: needinfo?(ahuang) → needinfo?(james.zhang)
(In reply to Alan Huang [:ahuang] from comment #6)
> (In reply to James Zhang from comment #5)
> > (In reply to Alan Huang [:ahuang] from comment #3)
> > > It is crashed at cairo using hypot() in libm, implemented in bionic. There's
> > > no possible cairo could miss use this according to the parameter definition.
> > > I would suggest partner to take a look into this.
> > 
> > Bionic libm is AOSP source code, we don't change it and it's the same as CAF
> > code.
> > Can you check cairo code?
> 
> Hi James,
> It is hypot(), which takes two double as its argument. I don't think there's
> any possibility cairo could cause it crash. 
> 
> If you take a look into the macro GET_HIGH_WORD() used in hypot() (where it
> crashed), it gets the MSB from a double. That is, you may need to consider
> this as a platform bug.

oh I forgot to mention, since it is a SIGILL crash
Let's reproduce it on NOOPT build. We have no bionic/libm expert on my side.
Flags: needinfo?(james.zhang)
Flags: needinfo?(ttsai)
Hi James: libm is built from aosp source. The user build or userdebug build has the same optimization flag. Since the source of libm is standard, this bug needs your members to debug the assembly codes compiled from the source or to check if this is arm core issues.

hypot is a very simple function. It just returns the distance (x,y) from the origin.
This function should work well always under any parameters unless a wrong compiled binary or hardware defect happens.

        <<hypot>> calculates the Euclidean distance
035	        @tex
036	        $\sqrt{x^2+y^2}$
037	        @end tex
038	        @ifnottex
039	        <<sqrt(<[x]>*<[x]> + <[y]>*<[y]>)>>
040	        @end ifnottex
041	        between the origin (0,0) and a point represented by the
042	        Cartesian coordinates (<[x]>,<[y]>).  <<hypotf>> differs only
043	        in the type of its arguments and result.
Flags: needinfo?(ttsai)
I can't meet this issue after we fixed kernel LMK/OOM issue.
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
Flags: needinfo?(yaoyao.wu)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: