Profiles lost when the startup profile selector is enabled
Categories
(Toolkit :: Startup and Profile System, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr128 | --- | unaffected |
firefox137 | --- | unaffected |
firefox138 | - | unaffected |
firefox139 | + | fixed |
People
(Reporter: jhirsch, Assigned: mossop)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: dataloss, regression, Whiteboard: [fidefe-profile-management])
Attachments
(2 files)
We've had two reports today of nightly users whose systems were restarted by a macos update (including force-shutting down nightly) or a crash. After restarting, their profile groups were gone. It looks like they rebooted into the state where SelectableProfileService.currentProfile is null, as last seen in bug 1943559.
Reporter | ||
Updated•4 months ago
|
Updated•4 months ago
|
Reporter | ||
Updated•4 months ago
|
Reporter | ||
Updated•4 months ago
|
Reporter | ||
Comment 1•4 months ago
|
||
So far it does appear that users can recover the profile group connection in a tedious and painful way: first, look through the profile groups directory and get a list of potential storeIDs from the sqlite file names (for example, "Profile Groups/5cd06f6a.sqlite"). Then, enable the browser toolbox in a new profile, and in the console, run this snippet, swapping in the storeID. This seems to consistently attach the running profile to a lost profile group:
// Here we use "5cd06f6a" as an example storeID.
SelectableProfileService.groupToolkitProfile.storeID = "5cd06f6a";
Services.prefs.setStringPref("toolkit.profiles.storeID", "5cd06f6a");
await SelectableProfileService.uninit();
await ProfilesDatastoreService.uninit();
await ProfilesDatastoreService.init();
await SelectableProfileService.maybeSetupDataStore();
Assignee | ||
Comment 2•4 months ago
|
||
I can reproduce this without a crash or macOS update. It impacts anyone who has the profile selector to show on startup because bug 1953884 doesn't take that case into account.
Assignee | ||
Updated•4 months ago
|
Assignee | ||
Updated•4 months ago
|
Assignee | ||
Comment 3•4 months ago
|
||
I've requested that we disable nightly updates while we figure this out so we don't impact more users.
Assignee | ||
Updated•4 months ago
|
Comment 4•4 months ago
|
||
Set release status flags based on info from the regressing bug 1953884
Assignee | ||
Updated•4 months ago
|
Updated•4 months ago
|
Reporter | ||
Comment 7•4 months ago
|
||
Thanks for marking this an S1.
It impacts anyone who has the profile selector to show on startup
Ugh, that's terrible news--by default we enable the profile selector at startup when a user creates their second profile, so this likely impacts the majority of nightly profiles users.
Assignee | ||
Comment 8•4 months ago
|
||
Assignee | ||
Comment 9•4 months ago
|
||
Bug 1953884 made the storeID pref always set and used the presence of storeID in profiles.ini to
determine whether profiles had previously been created. However it missed the startup code in
nsToolkitProfileService which always sets the storeID in profiles.ini if there is one set in prefs.
This means that users who had never used the profiles feature had the profiles created pref set to
true but no entry for the current profile was added to the database. This causes bustage when we
attempt to display various parts of the UI.
This adds a check to a point in startup when we know we should have found an entry for the current
profile in the database. If one doesn't exist we either create one if there are other profiles in
the database or we reset the prefs and profiles.ini to what they should look like if no profiles
have ever been created.
This should also resolve bug 1943559.
Comment 10•4 months ago
|
||
Comment 11•4 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e6eddf11a9c4
https://hg.mozilla.org/mozilla-central/rev/df8710fa2766
Updated•4 months ago
|
Description
•