Bernd, I think that the result file record includes a md5sum that you could check during validation and assimilation to confirm that it is the same file. This would prevent improper assimilation.
How often have you seen this? thanks, Kevin > Message: 2 > Date: Tue, 24 Jul 2012 09:58:56 +0200 > From: Bernd Machenschalk <[email protected]> > Subject: [boinc_dev] file upload problem > To: BOINC Developers Mailing List <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi! > > We recently had a case where a result file was uploaded multiple > times over and over again, even after the result was reported. > > One of the uploads happened between validation and assimilation, > resulting in assimilation of a 'canonical' result that has never > been validated (and > was actually broken). > > Certainly this one incident is mainly the result of a misbehaving > Client (7.0.3 IIRC), but in any case I think the server code should be robust > against such clients. > > I can think of a couple of options to prevent this from happening > again in the future: > > - Move the result files from the upload directory when the result is > reported; validate and assimilate it from this new location > (scheduler would need > to touch (move) result files) > > - Make the file upload handler check the result status in the DB > (fuh needs DB access, additional DB load) > > - My current favorite: While receiving a file, the file upload > handler appends ".part" to the filename. Only when the upload was > successfully > completed, the file is renamed to the result file name, but only if > there is not already a file with that desired name yet. (the > antique_file_deleter > will eventually clean up partial uploads, too). Anything that still > could go wrong with that behavior? > > Best, > Bernd > _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
