Re: Corruption detection failure.
Posted:
17 Oct 2010 12:46
by tharrison1
Sometime over the past several hours, the file downloaded. It appears to be intact, and now it does behave as a "file I have already" for library purposes. The successful download overwrote the most recent truncated version without its name being adjusted, pointing to the b0rked download being "overwriteable" rather than "overwriting", that is, Shareaza let it be overwritten rather than Shareaza let it overwrite other files because of its peculiar status.
I don't know if it discovered a better-behaved source (or simply a complete one, if the odd-behaving source was genuinely an incomplete source) and downloaded it from that or if the oddly-behaving source eventually switched to a third behavior; from send 30% of the file as if it were the whole file and with an odd don't-verify-me flag somehow set and then claim to have 7% of the file but actually send 13 and then idle the connection rather than break it or send more to simply send the damn thing like normal and call it a day. If so, it should have had the third behavior all along and both of the first two represent bugs. (At first you might imagine that it could have been a partial source and then become a complete source, but that would require an additional, complete source out there. And then my client should have discovered that additional source through the mesh and the initial search should probably also have found the additional source. The sole exception I can think of is if the additional source was an ed2k lowid source on the same server as "my" source, using a non-Shareaza client, so unable to share directly with me, and the probability of that seems very low. Even then that just explains the transition from behavior 2 to behavior 3. The Shareaza source getting a corrupt chunk at the 30% mark that knocked it back to 7%, getting a small piece to reach 13%, and then being bumped to the end of the lowid source's queue could explain the other behavior transitions. The Shareaza source still has bugs a) sending a partial file as if complete and then b) sending what it has of a partial file and then idling rather than breaking the connection though. And mine still has bugs c) not comparing the ed2k hashes and spotting corruption and d) silently overwriting files instead of renumbering them. Four bugs in 2.5.3.0 all witnessed to affect the same single download, two on the sending end and two on the receiving, under circumstances that ought to maximize compatibility.)
Re: Corruption detection failure.
Posted:
19 Oct 2010 04:19
by ailurophobe
Some of what you were seeing I can explain.
Shareaza re-downloads chunks based on the file verification hashsets, if no chunk ever fails these checks (you have no hashset or it gets corrupted after being downloaded) the file will complete, after being completed Shareaza computes all the file hashes for it, if these do not match what it was expecting the file becomes "unverified" but still stays completed and is not re-downloaded, such files are marked red and IIRC untrusted (you should get a pop-up when opening them). Since Shareaza identifies files based on the file hash and this has a different hash from what you were downloading, Shareaza considers it an entirely new file.
The reason for a Shareaza client not showing all hashes would be that it did not have them. So it was a file it was downloading from ED2K but had not yet completed. The other hashes would be calculated after completing.
Re: Corruption detection failure.
Posted:
20 Oct 2010 16:29
by ailurophobe
Actually, with ED2K it is not particularly rare not to find a source somebody else is using. They could simply be using a server that other Shareaza has on their server list, but you do not. Or the other Shareaza could have gotten the source from source exchange from no longer present source despite it not being on any server either of you know. Or you might even have found that source but it failed to answer you for some reason.
Also since we already know that there was something odd with the file (it completed without actually being complete), the other odd behaviour was most likely caused by the same problem. So it would actually be just one problem with many symptoms, not several problems. As you correctly noted yourself, this is more likely than having several independent problems at the same time. No idea what the problem was or even where. Honestly there is no real way to know at this point either.