Closed Bug 1206786 Opened 9 years ago Closed 9 years ago

Crash on menu item long touch

Categories

(B2GDroid Graveyard :: General, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sgiles, Assigned: sgiles)

Details

Attachments

(1 file, 1 obsolete file)

To reproduce:

1. Launch B2G Droid
2. Open the settings app
3. Touch down the 'Wi-Fi' menu item and hold - after about a second, the app crashes.

Output from GDB at crash:
`
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 20426]
0x8236634e in mozilla::layers::APZThreadUtils::AssertOnControllerThread () at ~/code/mozilla/mozilla-central/gfx/layers/apz/util/APZThreadUtils.cpp:44
44	  MOZ_ASSERT(sControllerThread == MessageLoop::current());
`
Note: this is with a build using `ac_add_options --enable-android-apz`
Assignee: nobody → sgiles
0x82a88eb8 in mozilla::layers::APZThreadUtils::AssertOnControllerThread () at /Users/sam/code/mozilla/mozilla-central/gfx/layers/apz/util/APZThreadUtils.cpp:47
47	  MOZ_ASSERT(sControllerThread == MessageLoop::current());
(gdb) bt
#0  0x82a88eb8 in mozilla::layers::APZThreadUtils::AssertOnControllerThread () at /Users/sam/code/mozilla/mozilla-central/gfx/layers/apz/util/APZThreadUtils.cpp:47
#1  0x82a8446a in mozilla::layers::AsyncPanZoomController::HandleGestureEvent (this=0x9b491900, aEvent=...)
    at /Users/sam/code/mozilla/mozilla-central/gfx/layers/apz/src/AsyncPanZoomController.cpp:1039
#2  0x82a84792 in mozilla::layers::GestureEventListener::HandleInputTimeoutLongTap (this=0x966c2540)
    at /Users/sam/code/mozilla/mozilla-central/gfx/layers/apz/src/GestureEventListener.cpp:421
#3  0x826c78b0 in MessageLoop::RunTask (this=0x76683000, task=0x95abb580) at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:364
#4  0x826caafe in MessageLoop::DeferOrRunPendingTask (this=this@entry=0x76683000, pending_task=...)
    at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:372
#5  0x826caeb2 in MessageLoop::DoDelayedWork (this=0x76683000, next_delayed_work_time=0x7660c588)
    at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:486
#6  0x826e11f2 in mozilla::ipc::MessagePump::Run (this=0x7660c578, aDelegate=0x76683000) at /Users/sam/code/mozilla/mozilla-central/ipc/glue/MessagePump.cpp:104
#7  0x826c84e8 in MessageLoop::RunInternal (this=this@entry=0x76683000) at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:234
#8  0x826c8502 in RunHandler (this=0x76683000) at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:227
#9  MessageLoop::Run (this=0x76683000) at /Users/sam/code/mozilla/mozilla-central/ipc/chromium/src/base/message_loop.cc:201
#10 0x834cc33a in nsBaseAppShell::Run (this=0x766f0700) at /Users/sam/code/mozilla/mozilla-central/widget/nsBaseAppShell.cpp:156
#11 0x8399c868 in nsAppStartup::Run (this=0x8b6784e0) at /Users/sam/code/mozilla/mozilla-central/toolkit/components/startup/nsAppStartup.cpp:281
#12 0x839cfc54 in XREMain::XRE_mainRun (this=this@entry=0x763cd980) at /Users/sam/code/mozilla/mozilla-central/toolkit/xre/nsAppRunner.cpp:4296
#13 0x839d0094 in XREMain::XRE_main (this=this@entry=0x763cd980, argc=argc@entry=5, argv=argv@entry=0x7663d308, aAppData=aAppData@entry=0x7182fdd8 <sAppData>)
    at /Users/sam/code/mozilla/mozilla-central/toolkit/xre/nsAppRunner.cpp:4389
#14 0x839d02a2 in XRE_main (argc=5, argv=0x7663d308, aAppData=0x7182fdd8 <sAppData>, aFlags=<optimized out>)
    at /Users/sam/code/mozilla/mozilla-central/toolkit/xre/nsAppRunner.cpp:4491
#15 0x839d4fbe in GeckoStart (env=<optimized out>, data=<optimized out>, appData=0x7182fdd8 <sAppData>)
    at /Users/sam/code/mozilla/mozilla-central/toolkit/xre/nsAndroidStartup.cpp:51
#16 0x718038f4 in Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun (jenv=0x7171f5a8, jc=<optimized out>, jargs=0x21300005)
    at /Users/sam/code/mozilla/mozilla-central/mozglue/android/APKOpen.cpp:390
#17 0x415113d0 in dvmPlatformInvoke () from /Users/sam/code/c/jimdb-arm/lib/YT9112BGXD/system/lib/libdvm.so
#18 0x41542052 in dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*) () from /Users/sam/code/c/jimdb-arm/lib/YT9112BGXD/system/lib/libdvm.so
#19 0x41543a3a in dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*) () from /Users/sam/code/c/jimdb-arm/lib/YT9112BGXD/system/lib/libdvm.so
#20 0x4151a864 in dvmJitToInterpNoChain () from /Users/sam/code/c/jimdb-arm/lib/YT9112BGXD/system/lib/libdvm.so
#21 0x4151a864 in dvmJitToInterpNoChain () from /Users/sam/code/c/jimdb-arm/lib/YT9112BGXD/system/lib/libdvm.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)



NOTE:  Even if we change the assertion to assert `AndroidBridge::IsJavaUiThread()` this fails in exactly the same way.


I think this has something to do with the GestureHandler and where it posts the timeout tasks too?
Kats, any idea?
Flags: needinfo?(bugmail.mozilla)
sgiles asked me about this on IRC. It looks like the PostDelayedTask call at http://mxr.mozilla.org/mozilla-central/source/gfx/layers/apz/src/GestureEventListener.cpp?rev=91d6e262b662#478 is getting scheduled on the wrong thread. On B2GDroid with --enable-android-apz I would expect that it ends up invoking http://mxr.mozilla.org/mozilla-central/source/widget/android/AndroidContentController.cpp#50 but according to sgiles it's not hitting that.
Flags: needinfo?(bugmail.mozilla)
Attachment #8665600 - Flags: review?(bugmail.mozilla)
Attachment #8665600 - Flags: review?(bugmail.mozilla) → review+
Adds r= to comment.  (Previous patch r+'d)
Attachment #8665600 - Attachment is obsolete: true
Keywords: checkin-needed
Status: NEW → ASSIGNED
https://hg.mozilla.org/mozilla-central/rev/6c56d2155392
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: