If one or more profiles cannot be migrated due to insufficient disk space, dialog should appear telling user that his or some of his profiles aren't available due to lack of space, what the user might want to do, and to refer user to Release Notes for more info.
Bhuvan, unfortunately we need this pre-beta too.
Yes. NSFileSpec has a method to get the available disk space. Don and I will communicate on the error code he needs to return in this case and that error will be handled accordingly.
Setting component to profile manager to get this on the right radar.
*** Bug 14070 has been marked as a duplicate of this bug. ***
Steve, what happens when you are out of space....e.g. what happens after the info screen? We aren't sure if it's dogfood. More info please
We need more info to assist in PDT+ vs. PDT- decision. What happens? Thanks!
Here is what I think happens. Migration operation fails. No profilel information will be set in the registry. After migration, the next command is to start the apprunner with the migrated profile. This operation should fail and throw an alert box, "failed to start communicator with the <profile name>". Grace, will you please try to simulate this bug scenario ? You have to make one of your drives really full and leave less than required space for profile migration. Update the bug with the results.
Results from testing: Migration progress bar is displayed then control returns to console prompt, Migration operation fails, mozregistry.dat is create with 0 bytes, no message is given the user as to what happened.
We will release note this for Dogfood. [PDT-]
More info, I have a case where the user gets a partial migration. Some of her folders are missing and she wasn't getting any mail messages in her inbox. This scenario is for a POP account with 3000+ messages in inbox and 3000+ messages in a subfolder of the inbox. I'm still investigating...she cleaned up disk space and migration seems to be taking too long. See bug 20514
Don, we need to know when this has happened so we can put up a dialog. Please inform us how we can tell when this error has occured and then assign the bug back.
I haven't looked at the migration code in a LONG time. Is this bug still the same as when it was orignally logged? There seems to be a lot of obfuscating (ooh, big word) information. I'm going to treat it as originally logged, i.e. we're not returning a sufficient error code when there is a lack of space.
Ok. I looked at it. The problem is that the ProcessPrefs function which is called by Profile.cpp doesn't have an "out" parameter to return non-XPCOM errors. This will have to be added so that we can return a meaningful error. There is another part of this that concerns me. We are bailing out of the migration code if there is not enough space but the code in Profile.cpp doesn't do anything other than bail out as well. There should at least be a generic error handling condition in the profile.cpp code for the case where ProcessPrefs fails. All it does now is "return rv;". All along we could have at least put up a modal dialog that said, "Error during migration. Please create a new Profile" or something like that. At least it would have prevented mysterious "crash-like" behavior.
changing platform to all
Fixing component to Profile Migration. Don, your concern about our error handling is covered by bug 15037 since we'll have to do something smart with the error returned to fix that bug.
This is on beta 1 PRD/QA beta status - adding beta1 for consideration
Putting dogfood in the keyword field.
Removing PDT- (from 10/26)
Putting on PDT+ radar for beta1. Not for dogfood, removing that keyword.
Ok, the backend fix for this is in. There's now a new public method called GetError that you can used to find out if the migration failed because of disk space. The error number is 200. So, to call this you already have: rv = pPrefMigrator->ProcessPrefs(showProgressAsModalWindow); You need to add: rv = pPrefMigrator->GetError(PRUint32 pointer) Then check the value for 200. (Currently that's the only specific error value we have but it's expandable!) If it is 200 you'll need to show a dialog saying that there wasn't enough disk space to do the migration and whatever other processing you want. I heard you were going to take them to the "Create New" process but that's up to the Profile Manager team. Reassigning to the Profile Manager team for the "second half" of this bug fix.
Fixing component now that this is back in our court.
per PDT, can you provide an updated ETA. We're considering making this a PDT- for beta1
This definitely is not a beta stopper. Came into our plate very late. Please re-evalute this. This can be a pdt- bug. Changing to pdt-.
*** Bug 29144 has been marked as a duplicate of this bug. ***
Wrong patch. It is the patch for bug 30156. Ignore that. This bug has more issues due to the time at which the migration activity occurs (no parent dialog to provide context for auto migration failure, which is the most common case. Need to talk to windows & js gurus). This will not be done in M15. Moving to M16.
note, error value 200 and the signature for GetError() have changed. see the code. NS_ERROR_NOT_ENOUGH_SPACE_TO_MIGRATE is now the error we are returning. see related bug #36249
I think migration module (bug 36249) should own the idea of displaying a dialog if there isn't enough disk space. I will add code to make Profile Manager respond to the error codes passed back by the migration module. Seth & Varada, we need to talk more about this on finalizing the flow of the events. Adding nsbeta2 keyword.
Putting on [nsbeta2+] radar for beta2 fix.
Bhuvan, You'd mentioned that you had a fix for this. If not, I think this might be one to cut until beta3.
I am sorry....Fix is in hand...just need to be tested on other platforms (Mac, Linux)...
OK. If you can get this in today that would be great.
Fixed. Pref migrator on encoutering disk space problems can return back to profile manager with options like create a new profile or just cancel the application session. Create Profile Wizard is presented to enable profile creation. On Cancel, we quit the app.. (single 4x profile case) If user has multiple 4x profiles, the profile manager window comes up. Then on receiving a new profile request from pref migrator, create profile wizard will be shown as a modal dialog. On requesting Cancel, the control goes back to the profile manager sitting in the background.
build 200071709 retry allows user to free space to migrate cancel/create new take back to profile manager