Commit Graph

9 Commits

Author SHA1 Message Date
David Anderson b38bf1d983 stage_file and remote file management: fix bug with .md5 file mod time
In some cases of file staging (both remote and via stage_file)
we'd do the following:
1) create the .md5 file (in check_download_file())
2) move or copy the file into the download dir

This can result in the file having a later mod time than the .md5 file,
which causes process_input_template() to reject the .md5 file.

Solution: touch the .md5 file after the move or copy
2017-05-25 20:26:36 -07:00
David Anderson eda1699d7c remote job submission: fix from Lucas 2017-02-16 10:59:32 -08:00
David Anderson 0b6cb9e0d5 input file management: standardize creation of .md5 files
Files in the download dir can have accompanying ".md5" files
containing their MD5 and size.
This eliminates the need to calculate these when creating a job using the file.

The .md5 files were being created by stage_file (local staging)
but not by remote file management.
In fact, the latter wasn't checking for file immutability violations.

I changed remote file management to add this check,
and to create the .md5 file.
The latter is done in a new function shared with stage_file.
2017-01-29 11:54:18 -08:00
David Anderson a7a05ca184 stage_file: add --verbose option 2015-03-16 13:58:08 -07:00
David Anderson 35950cf193 stage_file: if arg is a dir, stage all files in that dir 2015-03-11 12:26:24 -07:00
David Anderson c3cbf29af3 create_work: add --stdin option for more efficient batch creation
Previously if you wanted to create lots of jobs from a script (e.g. PHP)
you had to run create_work once per job.
With the --stdin option you run it once,
passing it a file (view stdin) with one line per job.
Each line can specify a command line and/or a set of input files.

On my server this gives a performance of about 1000 jobs per minute,
which is less than I would have expected,
but all the time is spent in doing MySQL inserts
so that's as good as we can do for now.

Also fix a bug in stage_file.
2014-04-07 09:07:00 -07:00
David Anderson 97229c0fcf Server: enable gzipped input files, and fix bugs in MD5 caching
The docs said that putting <gzip/> for a file in your input template
would cause it to be transferred in gzip form.
But most of the server-side implementation was missing.

- in process_input_template(), parse <gzip/>,
  and add <gzipped_url> elements to the output.
- stage_file was generating MD5 cache files containing only the MD5,
  but process_input_template() expected them to contain file size as well.
  Change stage_file to write both,
  and change process_input_template() to write an error message
  if it finds a bad MD5 file.
- remove stuff from process_input_template() related to
  "generated_locally", a feature that doesn't exist anymore.
2014-03-26 15:15:16 -07:00
David Anderson 5cbccf7126 - server: add stage_file to project setup; add error checking to stage_file 2013-03-01 15:31:42 +01:00
BOINC Admin 3da910bfda - scheduler: when adding a new HOST_APP_VERSION, check if there's already one for that (host, app, platform, plan class). If there is, use it and update the app version ID. This way, when a new app version is released, it will use the runtime and reliability statistics of the previous one, instead of starting from scratch. - add a script "stage_file" for staging an input file. This checks for immutability violations, moves or copies the file to the download hierarchy, computes and stores its MD5, and makes a gzipped version if needed. - add some files missing from git repo 2013-02-26 16:28:17 +01:00