F/MOZ_Assert( 179): Assertion failure: mTouchMoveEvents.empty(), at ../../../gecko/widget/gonk/GeckoTouchDispatcher.cpp:172

RESOLVED FIXED in Firefox 40

Status

defect
RESOLVED FIXED
4 years ago
8 months ago

People

(Reporter: kanru, Assigned: kats)

Tracking

({regression})

unspecified
mozilla40
All
Gonk (Firefox OS)
Dependency tree / graph

Firefox Tracking Flags

(blocking-b2g:2.2+, firefox38 wontfix, firefox39 wontfix, firefox40 fixed, b2g-v2.2 fixed, b2g-master fixed)

Details

Attachments

(1 attachment)

Reporter

Description

4 years ago
STR:

 1. Build B2G with B2G_DEBUG=y and MOZ_ENABLE_WARNINGS_AS_ERRORS=1
 2. Flash and reboot
 3. Touch to unlock screen

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 179.654]
0xb4ffa55e in mozilla::GeckoTouchDispatcher::DispatchTouchMoveEvents (this=0xafd2dfa0, this@entry=0xaf887ba0, aVsyncTime=...) at ../../../gecko/widget/gonk/GeckoTouchDispatcher.cpp:172
172           MOZ_ASSERT(mTouchMoveEvents.empty());
(gdb) bt
#0  0xb4ffa55e in mozilla::GeckoTouchDispatcher::DispatchTouchMoveEvents (this=0xafd2dfa0, this@entry=0xaf887ba0, aVsyncTime=...) at ../../../gecko/widget/gonk/GeckoTouchDispatcher.cpp:172
#1  0xb4ffa69c in mozilla::GeckoTouchDispatcher::NotifyVsync (this=0xaf887ba0, this@entry=0xafd2dfa0, aVsyncTimestamp=...) at ../../../gecko/widget/gonk/GeckoTouchDispatcher.cpp:103
#2  0xb4ffa6c8 in mozilla::GeckoTouchDispatcher::DispatchTouchNonMoveEvent (this=0xafd2dfa0, aInput=...) at ../../../gecko/widget/gonk/GeckoTouchDispatcher.cpp:153
#3  0xb4ff9dcc in DispatchToMethod<mozilla::GeckoTouchDispatcher, void (mozilla::GeckoTouchDispatcher::*)(mozilla::MultiTouchInput), mozilla::MultiTouchInput> (arg=..., method=
    (void (mozilla::GeckoTouchDispatcher::*)(mozilla::GeckoTouchDispatcher * const, mozilla::MultiTouchInput)) 0xb4ffa6a5 <mozilla::GeckoTouchDispatcher::DispatchTouchNonMoveEvent(mozilla::MultiTouchInput)>, 
    obj=<optimized out>) at ../../../gecko/ipc/chromium/src/base/tuple.h:393
#4  RunnableMethod<mozilla::GeckoTouchDispatcher, void (mozilla::GeckoTouchDispatcher::*)(mozilla::MultiTouchInput), Tuple1<mozilla::MultiTouchInput> >::Run (this=<optimized out>)
    at ../../../gecko/ipc/chromium/src/base/task.h:310
#5  0xb42cd9b0 in MessageLoop::RunTask (this=0xaf887cc0, task=0xabf4fb00) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:361
#6  0xb42d0876 in MessageLoop::DeferOrRunPendingTask (this=<optimized out>, pending_task=...) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:369
#7  0xb42d273c in DoWork (this=<optimized out>) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:456
#8  MessageLoop::DoWork (this=0xaf887cc0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:435
#9  0xb42ce2a8 in base::MessagePumpDefault::Run (this=0xafdef920, delegate=0xaf887cc0) at ../../../gecko/ipc/chromium/src/base/message_pump_default.cc:34
#10 0xb42ce224 in MessageLoop::RunInternal (this=this@entry=0xaf887cc0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:233
#11 0xb42ce23e in RunHandler (this=0xaf887cc0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:226
#12 MessageLoop::Run (this=this@entry=0xaf887cc0) at ../../../gecko/ipc/chromium/src/base/message_loop.cc:200
#13 0xb42d442c in base::Thread::ThreadMain (this=0xafdf2460) at ../../../gecko/ipc/chromium/src/base/thread.cc:170
#14 0xb42d2a20 in ThreadFunc (closure=<optimized out>) at ../../../gecko/ipc/chromium/src/base/platform_thread_posix.cc:39
#15 0xb6e91174 in __thread_entry (func=0xb42d2a19 <ThreadFunc(void*)>, arg=0xafdf2460, tls=0xaf887dd0) at bionic/libc/bionic/pthread_create.cpp:105
#16 0xb6e9130c in pthread_create (thread_out=0xafdf2468, attr=<optimized out>, start_routine=0xb42d2a19 <ThreadFunc(void*)>, arg=0x78) at bionic/libc/bionic/pthread_create.cpp:224
#17 0x00000000 in ?? ()
(gdb) p mTouchMoveEvents
$1 = {<std::priv::_Vector_base<mozilla::MultiTouchInput, std::allocator<mozilla::MultiTouchInput> >> = {_M_start = 0xaadeaa00, _M_finish = 0xaadeaa20, 
    _M_end_of_storage = {<std::allocator<mozilla::MultiTouchInput>> = {<std::__stlport_class<std::allocator<mozilla::MultiTouchInput> >> = {<No data fields>}, <No data fields>}, 
      _M_data = 0xaadeaa80}}, <No data fields>}
Reporter

Updated

4 years ago
OS: Linux → Gonk (Firefox OS)
Hardware: x86_64 → All
Reporter

Updated

4 years ago
Blocks: 1146987
Flags: needinfo?(bugmail.mozilla)
Keywords: regression
Reporter

Comment 1

4 years ago
Build ID               20150331144843
Gaia Revision          febc780ed1ba8e52d5797f36316a952548eda053
Gaia Date              2015-03-06 02:42:35
Gecko Revision         n/a
Gecko Version          40.0a1
Device Name            mako
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.kanru.20141107.093658
Firmware Date          Fri Nov  7 09:37:09 CST 2014
Bootloader             MAKOZ20i
Thanks for catching this!
Assignee: nobody → bugmail.mozilla
Flags: needinfo?(bugmail.mozilla)
The assertion is actually wrong. In the resampling case, we leave one move event in the queue to be resampled in the future. In fact that's the reason I added the flag in the first place, instead of just using mTouchMoveEvents.size() as the condition. The flag really means "do we have touch moves pending in the queue that we still need to process".
Attachment #8586053 - Flags: review?(mchang)
Attachment #8586053 - Flags: review?(mchang) → review+

Updated

4 years ago
Blocks: 1146907, CAF-v2.2-metabug
No longer blocks: 1146987
blocking-b2g: --- → 2.2?
Assuming that was a typo
Blocks: 1146987
No longer blocks: 1146907
https://hg.mozilla.org/mozilla-central/rev/d813ce9b4a71
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
blocking-b2g: 2.2? → 2.2+
Comment on attachment 8586053 [details] [diff] [review]
Remove assertion

NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): bug 1146987
User impact if declined: debug builds with bug 1146987 may trigger asserions and crash
Testing completed: none really, it just takes out the incorrect assertion that was causing crashes
Risk to taking this patch (and alternatives if risky): very low, affects debug builds only
String or UUID changes made by this patch: none
Attachment #8586053 - Flags: approval-mozilla-b2g37?
Attachment #8586053 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+

Updated

8 months ago
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.