Closed Bug 1230397 Opened 9 years ago Closed 9 years ago

B2G safe mode code writes preferences off the main thread

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(firefox45 fixed)

RESOLVED FIXED
2.6 S3 - 12/18
Tracking Status
firefox45 --- fixed

People

(Reporter: dbaron, Assigned: fabrice)

References

Details

(Keywords: assertion)

Attachments

(1 file)

The B2G safe mode code reads preferences off the main thread.  I noticed this because I have a patch in my tree to remove the B2G ifdefs around the preference thread checks.

#0  0xb2ed54d6 in pref_HashPref (key=key@entry=0xb542d027 "b2g.safe_mode", value=..., value@entry=..., type=type@entry=PREF_STRING, flags=flags@entry=0) at /home/dbaron/builds/ssd/mozilla-central/mozilla/modules/libpref/prefapi.cpp:704
#1  0xb2ed56fc in PREF_SetCharPref (pref_name=0xb542d027 "b2g.safe_mode", value=0xb505a579 "no", set_default=<optimized out>) at /home/dbaron/builds/ssd/mozilla-central/mozilla/modules/libpref/prefapi.cpp:256
#2  0xb2ed86a0 in mozilla::Preferences::SetCString (aPref=0xb542d027 "b2g.safe_mode", aValue=0xb505a579 "no") at /home/dbaron/builds/ssd/mozilla-central/mozilla/modules/libpref/Preferences.cpp:1491
#3  0xb407b1e4 in nsAppShell::CheckPowerKey (this=0xb129d100) at /home/dbaron/builds/ssd/mozilla-central/mozilla/widget/gonk/nsAppShell.cpp:939
#4  0xb406c82a in android::NotifyConfigurationChangedArgs::notify (this=0xae6ba380, listener=...) at /home/dbaron/builds/ssd/mozilla-central/mozilla/widget/gonk/libui/InputListener.cpp:39
#5  0xb406cc6a in android::QueuedInputListener::flush (this=0xae682b80) at /home/dbaron/builds/ssd/mozilla-central/mozilla/widget/gonk/libui/InputListener.cpp:175
#6  0xb40748d2 in android::InputReader::loopOnce (this=0xae685000) at /home/dbaron/builds/ssd/mozilla-central/mozilla/widget/gonk/libui/InputReader.cpp:307
#7  0xb406cd5c in android::InputReaderThread::threadLoop (this=<optimized out>) at /home/dbaron/builds/ssd/mozilla-central/mozilla/widget/gonk/libui/InputReader.cpp:838
#8  0xb6df4a5e in android::Thread::_threadLoop (user=0xae682bb0) at system/core/libutils/Threads.cpp:767
#9  0xb6df4590 in thread_data_t::trampoline (t=<optimized out>) at system/core/libutils/Threads.cpp:95
#10 0xb6e4218c in __thread_entry (func=0xb6df4559 <thread_data_t::trampoline(thread_data_t const*)>, arg=0xae621880, tls=0xae57fdd0) at bionic/libc/bionic/pthread_create.cpp:105
#11 0xb6e42324 in pthread_create (thread_out=0xbe877544, attr=<optimized out>, start_routine=0xb6df4559 <thread_data_t::trampoline(thread_data_t const*)>, arg=0x78) at bionic/libc/bionic/pthread_create.cpp:224
Flags: needinfo?(fabrice)
Summary: B2G safe mode code reads preferences off the main thread → B2G safe mode code writes preferences off the main thread
See Also: → 1215494
Since the front-end waits for a pref change, dispatching to the main thread works fine and is not racy.
Assignee: nobody → fabrice
Flags: needinfo?(fabrice)
Attachment #8696115 - Flags: review?(dbaron)
Attachment #8696115 - Flags: review?(dbaron) → review+
https://hg.mozilla.org/mozilla-central/rev/30de91786784
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → 2.6 S3 - 12/18
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: