Closed Bug 306961 Opened 20 years ago Closed 20 years ago

App update should handle file sharing violations better [was: Restart should also quit talkback]

Categories

(Toolkit :: Application Update, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.8final

People

(Reporter: asaf, Assigned: darin.moz)

References

Details

(Keywords: fixed1.8, late-l10n, Whiteboard: [needs review beng])

Attachments

(1 file)

If talkback is open (due to previous Crash), the mac updater tries to override the talkback app files while it's running. It looks like we want the internal restart to also quit talkback.
How bad is it if we don't fix this? What happens when we overwrite the talkback files while it is running? It sounds like this should block the 1.5 release, but I just want to make sure I understand what we're dealing with here. Thx!
Flags: blocking1.8b5?
I'm not sure what's the impact, especially on other OSes.
On anything but windows, we should be able to write the talkback files and not obviously affect execution. On windows, the writing will simply fail (and presumably the app update will fail).
The only files that will fail on Windows are the EXE and any DLLs it has loaded (which vary rarely change, by the looks of things). Its data files are fine - I tried an update with it open, and nothing bad happened, it just switched to the new build ID when I closed and reopened it.
So it sounds like this would only be a serious problem (to talkback) if we got new talkback binaries that we wanted to deliver with app update. Is that correct? If so, I think that's a pretty rare event and if it did become necessary, we could try to roll out a fix for this problem before hand (but not necessarily for 1.5)
Asa: this could prevent app update from working on windows. even though we might not change the talkback binary, if the user is forced to download a complete update for some reason, then they could be screwed by this bug.
Flags: blocking1.8b5? → blocking1.8b5+
->darin
Assignee: nobody → darin
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.8beta5
OS: MacOS X → Windows XP
Hardware: Macintosh → PC
My plan is to make it so that we fail gracefully when we detect that a file is in use. Instead of triggering the download of the complete archive, which we do when the partial update could not be applied due to incompatibilities, we should just try to apply the partial patch again the next time the user starts their browser. We'd want to inform the user that this is going to happen.
I think that solution would also help with bug 307384.
Blocks: 307384
Changing the summary and component to reflect the current approach.
Component: XRE Startup → Software Update
Product: Toolkit → Firefox
Summary: Restart should also quit talkback → App update should handle file sharing violations better [was: Restart should also quit talkback]
Target Milestone: mozilla1.8beta5 → Firefox1.5
QA Contact: nobody → software.update
My approach to this problem is to make updater.exe write an error code to update.status in the failure case. So, instead of just "failed" it will write "failed: 2" to indicate an IO error. Then, Firefox's update service will inspect this error code and take action accordingly.
Attached patch v1 patchSplinter Review
OK, this patch does the trick. I'm not sure if the dialog text is the best, but it seems reasonable to me. I'm open to better wording.
Attachment #198086 - Flags: review?(bugs)
Whiteboard: [needs review beng]
Mike, can you look this over?
Attachment #198086 - Flags: approval1.8b5? → approval1.8b5+
Wording seems fine for now and for the fact that this is a low-percentage use case. If you're looking for a little polish, though, we might want to give some simple hints as to how to fix the problem. Also took the ":" out of the dialog title and went to one-space-after a period formatting: +updaterIOErrorTitle=Software Update Failed +updaterIOErrorText=One or more files could not be updated. Please make sure all other applications are closed and that you have permission to modify files, and then restart %S to try again. BTW, I'm assuming that if this error is encountered twice, we go to download the full update package, right? Since I can definitely see cases where people will just never think of shutting down Talkback ...
Mike: thanks for the wording suggestion. I like it much better. > BTW, I'm assuming that if this error is encountered twice, we go to download the > full update package, right? Since I can definitely see cases where people will > just never think of shutting down Talkback ... No, we just keep re-trying. Downloading the full update would not help if talkback.exe were running.
fixed-on-trunk, fixed1.8
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Keywords: fixed1.8
Resolution: --- → FIXED
Product: Firefox → Toolkit
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: