Closed
Bug 639353
Opened 15 years ago
Closed 15 years ago
hang during keyboard input
Categories
(Core Graveyard :: Widget: Android, defect)
Tracking
(fennec2.0+)
RESOLVED
FIXED
| Tracking | Status | |
|---|---|---|
| fennec | 2.0+ | --- |
People
(Reporter: justdave, Assigned: blassey)
Details
Attachments
(2 files)
|
1.05 KB,
patch
|
crowderbt
:
review+
|
Details | Diff | Splinter Review |
|
2.22 KB,
patch
|
dougt
:
review+
|
Details | Diff | Splinter Review |
Mozilla/5.0 (Android; Linux armv7l; rv:2.0b13pre) Gecko/20110306 Firefox/4.0b13pre Fennec/4.0b6pre
HTC Evo 4G, Android 2.2
Went to https://rcam.target.com/ and started typing my username.
My username is 10 letters, after typing the 9th letter, Fennec completely froze up, and the OS offered to force quit. Repeated this 3 times, then went on IRC and mentioned it, then tried again and it worked the 4th time without hanging.
blassey said this was a conceivable regression from a recent commit involving syncing state between java and C and I ought to file it anyway.
| Assignee | ||
Updated•15 years ago
|
Component: General → Widget: Android
Product: Fennec → Core
QA Contact: general → android
| Assignee | ||
Comment 1•15 years ago
|
||
I also hit this while editing this bug
| Assignee | ||
Updated•15 years ago
|
tracking-fennec: --- → 2.0+
| Assignee | ||
Comment 2•15 years ago
|
||
this is my theory of what's going on:
480 private static final ReentrantLock mGeckoSyncLock = new ReentrantLock();
481 private static final Condition mGeckoSyncCond = mGeckoSyncLock.newCondition();
482 private static boolean mGeckoSyncAcked;
483
484 // Block the current thread until the Gecko event loop is caught up
485 public static void geckoEventSync() {
486 GeckoAppShell.sendEventToGecko(
487 new GeckoEvent(GeckoEvent.GECKO_EVENT_SYNC));
<----------------------------------- context switch, acknowledgeEventSync() runs, mGeckoSyncAcked is true
488 mGeckoSyncLock.lock();
489 mGeckoSyncAcked = false;
490 while (!mGeckoSyncAcked) {
491 try {
492 mGeckoSyncCond.await(); <-------- we wait here, but since acknowledgeEventSync() already ran we won't get singnaled
493 } catch (InterruptedException e) {
494 break;
495 }
496 }
497 mGeckoSyncLock.unlock();
498 }
499
500 // Signal the Java thread that it's time to wake up
501 public static void acknowledgeEventSync() {
502 mGeckoSyncLock.lock();
503 mGeckoSyncAcked = true;
504 try {
505 mGeckoSyncCond.signal();
506 } finally {
507 mGeckoSyncLock.unlock();
508 }
509 }
Assignee: nobody → blassey.bugs
Attachment #517349 -
Flags: review?(crowderbt)
Updated•15 years ago
|
Attachment #517349 -
Flags: review?(crowderbt) → review+
| Assignee | ||
Comment 3•15 years ago
|
||
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 4•15 years ago
|
||
This is a really scary change - holding a lock while calling sendEventToGecko probably isn't the best thing.
can we instead use a tristate value for mGeckoSyncAcked?
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
| Assignee | ||
Comment 5•15 years ago
|
||
Attachment #517434 -
Flags: review?(doug.turner)
Updated•15 years ago
|
Attachment #517434 -
Flags: review?(doug.turner) → review+
| Assignee | ||
Comment 6•15 years ago
|
||
Status: REOPENED → RESOLVED
Closed: 15 years ago → 15 years ago
Resolution: --- → FIXED
Updated•4 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•