Closed Bug 894887 Opened 11 years ago Closed 3 years ago

Investigate using a symlinked profile folder instead of using profiles.ini

Categories

(Firefox for Android Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: mfinkle, Unassigned)

References

Details

Attachments

(4 files)

Brad mentioned that someone on the Performance team had an idea to avoid loading profiles.ini to find the "current" profile during startup. Instead we could just symlink the "current" salted profile folder to a folder named... "active-profile" (or something), then we would always just pass "-profile <path/to/active-profile>" to GeckThread when starting the thread.

We should look into this idea:
* Can we make sure the symlink is always updated to the correct profile? There are more than a few ways to switch profiles. 
* Does the symlink work OK within Gecko platform?
Also:
* Will the profile folder always exist on a file system that supports symlinks?
Also:
* Content providers and DB access use their own methods of depending on the profile folder or profile name.
Blocks: 807322
Using a developer build, strict mode is turned on and will flag any "on main thread" I/O. I ran Fennec on a few devices. We definitely hit the strict mode violation when accessing Profiles.ini, in fact we hit two strict mode violations. Here are the durations:

                           1st    |   2nd
* Nexus S (Gingerbread):  1285ms  |  1280ms
* Xperia Tablet (JB):      411ms  |   408ms
* Nexus 4 (JB):            335ms  |   320ms

I'll attach the logs. I don't know if the 2nd violation is truly a separate issue or a cascade from the initial violation.
Nexus S log
peria tablet log
Nexus 4 log
The first violation looks like it happens when opening the file. The second violation happens when reading the contents into the bufferedreader.
(In reply to Mark Finkle (:mfinkle) from comment #3)

> violations. Here are the durations:
> 
>                            1st    |   2nd
> * Nexus S (Gingerbread):  1285ms  |  1280ms
> * Xperia Tablet (JB):      411ms  |   408ms
> * Nexus 4 (JB):            335ms  |   320ms

Of course, wrapping the code in System.currentTimeMillis() to try to time the actual problem yields times that are 10-12 times lower than the duration listed with the StrictMode violation. I don't know what the duration values really mean.
Phone: Samsung S3
Version: Android 4.2
Trace can be found here: https://dl.dropboxusercontent.com/u/11916346/geckoprofile.trace

GeckoProfile takes ~86.6ms on startup
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: