Closed Bug 1399079 Opened 7 years ago Closed 7 years ago

Intermittent test_restore_windows_after_restart_and_quit.py TestSessionStoreDisabled.test_restore_with_restart | application crashed [@ mozilla::image::StreamingLexer<mozilla::image::ICOState, 32ul>::Clone() const]

Categories

(Core :: Graphics: ImageLib, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- unaffected
firefox56 --- unaffected
firefox57 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: aosmond)

References

Details

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

Crash Data

Attachments

(1 file)

Here the first ten frames from the crashing thread:

03:43:19     INFO - Thread 24 (crashed)
03:43:19     INFO -  0  XUL!mozilla::image::StreamingLexer<mozilla::image::ICOState, 32ul>::Clone(mozilla::image::SourceBufferIterator&, unsigned long) const [StreamingLexer.h:b0e945eed81d : 432 + 0x0]
03:43:19     INFO -     rax = 0x0000000000000000   rdx = 0x00007fff76cc51f8
03:43:19     INFO -     rcx = 0x0000000000000000   rbx = 0x0000000000000016
03:43:19     INFO -     rsi = 0x00006a0000006a00   rdi = 0x0000690000006a03
03:43:19     INFO -     rbp = 0x000000012b6e54c0   rsp = 0x000000012b6e5450
03:43:19     INFO -      r8 = 0x000000012b6e5400    r9 = 0x000000012b6e6000
03:43:19     INFO -     r10 = 0x00007fff8d6483ef   r11 = 0x00007fff8d6483c0
03:43:19     INFO -     r12 = 0x0000000000000400   r13 = 0x0000000124c03738
03:43:19     INFO -     r14 = 0x000000012b6e5500   r15 = 0x000000012b6e5458
03:43:19     INFO -     rip = 0x0000000110156c7d
03:43:19     INFO -     Found by: given as instruction pointer in context
03:43:19     INFO -  1  XUL!mozilla::image::nsICODecoder::ReadBIH(char const*) [nsICODecoder.cpp:b0e945eed81d : 426 + 0x5]
03:43:19     INFO -     rbx = 0x000000013618b400   rbp = 0x000000012b6e5580
03:43:19     INFO -     rsp = 0x000000012b6e54d0   r12 = 0x0000000000000400
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000012b6e56b8
03:43:19     INFO -     r15 = 0x000000013618b400   rip = 0x00000001101575bc
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  2  XUL!mozilla::image::nsICODecoder::SniffResource(char const*) [nsICODecoder.cpp:b0e945eed81d : 385 + 0xb]
03:43:19     INFO -     rbx = 0x000000013618b400   rbp = 0x000000012b6e5630
03:43:19     INFO -     rsp = 0x000000012b6e5590   r12 = 0x000000013618b4b0
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000012b6e56b8
03:43:19     INFO -     r15 = 0x000000012b6e5730   rip = 0x0000000110157293
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  3  XUL!mozilla::image::nsICODecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*)::$_4::operator()(mozilla::image::ICOState, char const*, unsigned long) const [nsICODecoder.cpp:b0e945eed81d : 689 + 0xb]
03:43:19     INFO -     rbx = 0x000000012b6e56b8   rbp = 0x000000012b6e5650
03:43:19     INFO -     rsp = 0x000000012b6e5640   r12 = 0x000000013618b4b0
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000013618b5b8
03:43:19     INFO -     r15 = 0x000000012b6e5730   rip = 0x000000011016b87f
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  4  XUL!mozilla::image::nsICODecoder::DoDecode(mozilla::image::SourceBufferIterator&, mozilla::image::IResumable*) [StreamingLexer.h:b0e945eed81d : 667 + 0x8]
03:43:19     INFO -     rbx = 0x000000013618b400   rbp = 0x000000012b6e5710
03:43:19     INFO -     rsp = 0x000000012b6e5660   r12 = 0x000000013618b4b0
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000013618b5b8
03:43:19     INFO -     r15 = 0x000000012b6e5730   rip = 0x0000000110158df1
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  5  XUL!mozilla::image::Decoder::Decode(mozilla::image::IResumable*) [Decoder.cpp:b0e945eed81d : 130 + 0x10]
03:43:19     INFO -     rbx = 0x000000013618b400   rbp = 0x000000012b6e5760
03:43:19     INFO -     rsp = 0x000000012b6e5720   r12 = 0x000000b7c0780ccc
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000012b6e5788
03:43:19     INFO -     r15 = 0x0000000132079b98   rip = 0x00000001100e8895
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  6  XUL!mozilla::image::DecodedSurfaceProvider::Run() [DecodedSurfaceProvider.cpp:b0e945eed81d : 139 + 0x8]
03:43:19     INFO -     rbx = 0x0000000132079b50   rbp = 0x000000012b6e57d0
03:43:19     INFO -     rsp = 0x000000012b6e5770   r12 = 0x0000000132079c18
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x0000000132079b98
03:43:19     INFO -     r15 = 0x0000000132079bb8   rip = 0x00000001100eee5e
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  7  XUL!mozilla::image::DecodePoolWorker::Run() [DecodePool.cpp:b0e945eed81d : 178 + 0x6]
03:43:19     INFO -     rbx = 0x000000012b6e57e8   rbp = 0x000000012b6e5810
03:43:19     INFO -     rsp = 0x000000012b6e57e0   r12 = 0x0000000124c03710
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000012b6e57e0
03:43:19     INFO -     r15 = 0x0000000124c94188   rip = 0x00000001100fde36
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  8  XUL!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:b0e945eed81d : 1039 + 0x6]
03:43:19     INFO -     rbx = 0x0000000124c03738   rbp = 0x000000012b6e5da0
03:43:19     INFO -     rsp = 0x000000012b6e5820   r12 = 0x0000000124c03710
03:43:19     INFO -     r13 = 0x0000000124c03738   r14 = 0x000000012b6e5890
03:43:19     INFO -     r15 = 0x0000000000000001   rip = 0x000000010f087bfe
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO -  9  XUL!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:b0e945eed81d : 521 + 0xd]
03:43:19     INFO -     rbx = 0x0000000000000001   rbp = 0x000000012b6e5dc0
03:43:19     INFO -     rsp = 0x000000012b6e5db0   r12 = 0x0000000124c92330
03:43:19     INFO -     r13 = 0x0000000124c92320   r14 = 0x0000000124c92300
03:43:19     INFO -     r15 = 0x0000000000000000   rip = 0x000000010f08abaf
03:43:19     INFO -     Found by: call frame info
03:43:19     INFO - 10  XUL!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [MessagePump.cpp:b0e945eed81d : 368 + 0xe]
03:43:19     INFO -     rbx = 0x0000000124a53c70   rbp = 0x000000012b6e5e20
03:43:19     INFO -     rsp = 0x000000012b6e5dd0   r12 = 0x0000000124c92330
03:43:19     INFO -     r13 = 0x0000000124c92320   r14 = 0x0000000124c92300
03:43:19     INFO -     r15 = 0x0000000000000000   rip = 0x000000010f641003
03:43:19     INFO -     Found by: call frame info

There is this assertion right before:

03:39:05     INFO -  Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Cannot advance to existing position), at /builds/worker/workspace/build/src/image/StreamingLexer.h:432
0

Andrew, could you please have a look?
Flags: needinfo?(aosmond)
Summary: Intermittent test_restore_windows_after_restart_and_quit.py TestSessionStoreDisabled.test_restore_with_restart | application crashed → Intermittent test_restore_windows_after_restart_and_quit.py TestSessionStoreDisabled.test_restore_with_restart | application crashed [@ mozilla::image::StreamingLexer<mozilla::image::ICOState, 32ul>::Clone() const]
Component: Firefox UI Tests → ImageLib
Product: Testing → Core
QA Contact: hskupin
Version: Version 3 → unspecified
I added this assert in bug 1388590. I'm surprised to see it actually trip although I had my suspicions (hence adding it). Thankfully, it will gracefully fail in release builds.
Assignee: nobody → aosmond
Blocks: 1388590
Since this was a debug build, I am able to rule out most paths which can return a different state. Tripping this assert strongly suggests that we encountered an error while inserting into or completing the source buffer. The asserts need to be updated to accept this condition.
Status: NEW → ASSIGNED
Flags: needinfo?(aosmond)
Whiteboard: [gfx-noted]
Attachment #8907049 - Flags: review?(tnikkel)
Attachment #8907049 - Flags: review?(tnikkel) → review+
Pushed by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/39ac5504b778
Fix StreamingLexer::Clone assert to handle SourceBuffer insertion failures. r=tnikkel
https://hg.mozilla.org/mozilla-central/rev/39ac5504b778
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.