Justin Wood (Callek) wrote:
On 12/16/2010 3:33 PM, Paul B. Gallagher wrote:
Ray_Net wrote:
Sometimes downloading a file is doing:
1. put a 0 length of the original file.
2. download the new file in another location.
3. Copy the new file over the 0 bytes- file.
4. Remove the "new file in another location".
It could be that the auto-update do step 1, step 2... but in the middle
of the step 2 ...your "AT&T-DSL problems" stop the process... leaving
your seamonkey.exe empty.
If that's what the developers are doing, it's irresponsible and unsafe.
The right way to do this is to download the entire installer and then
run it locally.
I can imagine a local power outage causing the installer to fail in
mid-update, but I can't imagine the developers are so stupid as to do
what you describe.
We're not... what basically happens in an update is:
(1) Ping the update server to see if there is an update available for
your version.
-- -- This sends data that indicates what "update channel" you are on
(release in your case) and what version you are on.
(2) IFF You have an update available, and you are set to automatically
get the update (minor update)... we then branch, "is there a partial
update available?" (go to step 3). Or "if not..." (go to step 5)
(3) We download the "partial update" [define: partial update, is a diff
of the binary bits from past release to new release. This diff is always
going to be smaller than what a full update would be [if not then there
will not be a partial available]. This download is downloaded in full
before we trigger the update. [I *think* this includes a cycle
redundancy check]
(4) We tell the SeaMonkey startup path that an update is available, so
on next SeaMonkey launch, it instead launches the patching utility,
which attempts to patch the binary files; it does not do this "in place"
but instead tries to cleanly patch the files in the SeaMonkey directory
[including adding new files and removing no-longer-wanted files in some
cases]. If this fails in any way, we fail-over to the full update path
though still let SeaMonkey start up so as not to block on the process,
we also alert the user that there was a problem and what we are doing
next. If no errors are detected (go to step 7)
(5) Full Update: Download the relevant full update and after a Cycle
Redundancy Check, inform the SeaMonkey startup path that we have an
update available.
(6) On next start of SeaMonkey Perform the full update [which is
basically an installer-install, but done silently, so that user
interaction is not needed] If this fails in any way, we abort the
process and allow the previously installed SeaMonkey version to launch,
including a warning to users about the failure.
(7) Witness your newly updated SeaMonkey [if there is any
profile-migration procedures, these are done on demand with a new
version, once the profile loads; and not during the actual binary update
process]
It is most likely that there is corrupt sectors on your disk drive,
and/or a virus/malware (or virus scan/malware scan) interference going
on, as far as I see it; but would be happy to learn what the cause is if
you figure it out.
This whole process is from memory, so if I missed any steps, or misspoke
perhaps KaiRo or someone can correct me.
The correct term is "Cyclic Redundancy Check" which verifies the data using an
algorithm that feeds upon the prior data so it is not going to miss any extra or
missing zeros (or ones).
_______________________________________________
support-seamonkey mailing list
[email protected]
https://lists.mozilla.org/listinfo/support-seamonkey