Commit Graph

630 Commits

Author SHA1 Message Date
David Anderson e4172f1535 update_versions: fix bug related to MYSQLI changes
PHP tools now need chdir into html/inc before including DB-related files
2014-09-28 01:47:59 -07:00
David Anderson 2d99dccc2e update_versions: fix bug when have > 1 URLs for file 2014-09-19 08:48:19 -07:00
David Anderson 4850d0236c update_versions: handle files that are both gzipped and replicated 2014-09-17 10:30:48 -07:00
David Anderson 2fa78ba328 make_project: don't generate Apache 2.4 directives because they break 2.2
... but put in comments saying what changes are needed.
2014-08-18 00:14:58 -07:00
David Anderson 25fc233f4d make_project: change httpd conf syntax for Apache 2.4
Add

Require all granted

as well as (for 2.2)

Order allow,deny
Allow from all

See http://httpd.apache.org/docs/2.4/upgrading.html#run-time
2014-08-17 23:58:30 -07:00
Rom Walton 7feae3ae7f tools: make sure update_versions actually puts the api_version into the xml_doc field. 2014-07-31 14:28:39 -04:00
David Anderson 09832f4335 update_versions: remove unused code 2014-07-29 11:28:13 -07:00
David Anderson 44906a92b4 update_versions: msg tweak 2014-07-29 11:26:06 -07:00
David Anderson cd64b384da update_versions: version.xml can specify API version
Normally update_version gets the API version from the executable,
by scanning for the string API_VERSION.
However, if the project compresses executables this won't work.
So let it be specified in version.xml.
2014-07-29 11:11:48 -07:00
David Anderson aa04502db4 create_work: allow targeting commands in stdin job descriptions 2014-07-25 00:51:51 -07:00
David Anderson 870cbb0079 create_work program: add --hr_class cmdline argument 2014-07-02 00:17:20 -07:00
David Anderson b4dba535c0 web: fix typo 2014-06-21 13:40:02 -07:00
David Anderson 032d4529a2 update_versions: allow <beta/> in version.xml, to specify beta app version 2014-06-06 09:47:33 -07:00
David Anderson 558d76212f server: fix race condition when creating targeted jobs.
We were creating the workunit, then updating its transitioner_flags field.
If the transitioner runs inbetween,
it would (incorrectly) create results for the workunit.
Solution: set transitioner_flags during insert.
2014-06-02 19:01:44 -07:00
David Anderson 03850d103d create_work: error out if bad ID arg in "--target_host ID" etc.
Actually we just check that the arg is nonzero.
We could look up the DB record (e.g. the host record)
but that would slow down mass job creation.
2014-05-21 09:20:33 -07:00
David Anderson cecee4bc9e create_work: make targeting work with stdin-based job creation 2014-05-02 00:24:59 -07:00
David Anderson 3a82ec871f create_work: fix bug when using remote input files 2014-04-25 22:15:47 -07:00
David Anderson 944e5a3b29 job submission: generate physical name for remote input files
Don't require job submitters to come up with (unique) names
for remote input files.  Just use "jf_MD5".
2014-04-21 13:19:10 -07:00
David Anderson 46d90b2b60 server: improve support for remote input files
A "remote input file" is located on a data server other than the project server.
Previously these could be specified only in the input template,
which was of limited utility.
Add new ways of specifying remote input files:
1) in the create_work program, a remote input file can be specified
  with command-line args
  --remote_file name URL nbytes MD5
  or by the same syntax in stdin when creating multiple jobs
2) add a variant of create_work() called create_work2(),
  which takes a vector of INFILE_DESC structures that can specify
  either local or remote files
2014-04-20 23:52:51 -07:00
David Anderson 65ec42da6c remote job submission: fix bug 2014-04-14 12:33:43 -07:00
David Anderson 39edd6d3f8 remote job submission: improve error reporting 2014-04-12 10:05:59 -07:00
David Anderson fec574f4e8 create_work: increase the efficiency of bulk job creation
The job submission RPC handler (PHP) originally ran the
create_work program once per job.
This took about 1.5 minutes to create 1000 jobs.
Recently I changed this so that create_work only is run once;
it does one SQL insert per job.
Disappointingly, this was only slightly faster: 1 min per 1000 jobs.

This commit changes create_work to create multiple jobs per SQL insert
(as many as will fit in a 1 MB query, which is the default limit).
This speeds things up by a factor of 100: 1000 jobs in 0.5 sec.
2014-04-10 23:53:19 -07:00
David Anderson 99a21e3443 remote job submission: create batches more efficiently
Change the "submit_batch" RPC handler to use the new feature of create_work
that lets you create multiple jobs in one command.
2014-04-07 10:14:32 -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 92fec3e4ae admin web: enhance badge admin page
- add delete button
- show # of badges assigned
- don't use separate head/tail function are admin pages
- add badge assign task for new projects
- turn on db_dump, update_uotd, update_forum_activities,
  update_profile_pages, notify for new projects
2013-12-23 21:02:55 -08:00
David Anderson a33e76e656 admin web: add "SQL rule" field to badge form 2013-12-13 00:07:36 -08:00
David Anderson 50863972b4 update_versions: handle <is_wrapper> flag 2013-11-07 11:49:04 -08:00
David Anderson 438cd78b13 Remote job submission: add C++ APIs for query_batches() and query_batch()
- Add program (tools/remote_submit_test.cpp) for testing C++ API for remote job submission.
- Rename Condor-specific API to query_batch_set().
2013-10-22 15:27:34 -07:00
David Anderson 0c8e30d0e9 Translation: update templates, and fix tools for generating templates 2013-10-15 22:46:18 -07:00
David Anderson c6346bef5f Translation system: fixes and updates
Add script (compare_pot) for comparing templates module comments,
   and sending reminder emails if they differ.
Add script (buid_pos) for generating all templates and comparing
   them with current versions.
2013-10-15 11:19:59 -07:00
David Anderson 34933c8cd6 make_project: revert change that doesn't work with Apache 2.2 2013-09-17 23:13:49 -07:00
David Anderson ffd4b89905 make_project: add HTTP config file items for Apache 2.4 2013-09-05 06:03:04 -07:00
David Anderson 223f448739 Server: fix "make install" file permission 2013-08-23 22:05:59 -07:00
David Anderson ef82d5d9fb server: fix compile error on systems that don't define MAXPATHLEN 2013-08-22 17:01:45 -07:00
David Anderson 3faf18c7b4 remote_submit script: exit with nonzero status if error
Also, suppress warnings from simplexml_load_string()
2013-07-16 13:18:46 -07:00
David Anderson 78f7610f6e remove dependency of boinc_api.h on str_replace.h (and hence config.h)
Any files that use strlcpy() or strlcat() must directly include str_replace.h
2013-06-06 17:31:46 -07:00
David Anderson b9f0733c06 server: replace strcpy() with strlcpy() various places 2013-06-03 22:42:53 -07:00
David Anderson 3ce09f1efe create_work: job input template can specify size class 2013-05-21 20:24:02 -07:00
David Anderson 8e2524f55f Unix build: Makefile changes for "make install", from Steffen Moeller
"make install" followed by make_project should now work
2013-05-20 15:19:13 -07:00
David Anderson f1c7b6a97d fix some Clang warnings; from Steffen Moeller 2013-05-20 12:58:52 -07:00
David Anderson ac66666ed6 fix PHP warnings 2013-05-05 01:26:17 -07:00
David Anderson 1a1a01c103 - server: initialize result.size_class and workunit.size_class to -1 2013-05-03 15:09:45 -07:00
David Anderson 0c430ce1fa Add support for multi-size apps
See http://boinc.berkeley.edu/trac/wiki/MultiSize
The components of this include:
- DB changes:
    add size_class to workunit and result
    n_size_classes to app; >1 means multi-size
- size_regulator daemon program: change results states
    from INACTIVE to UNSENT carefully
- size_census program; writes quantile info in flat files
- transitioner: when creating results for multi-size apps,
    set server state to INACTIVE
- sched shmem (feeder): read quantile info from flat files,
    store in shared memory
- scheduler (score-based scheduling): for multi-size apps,
    add component to score function for size class.
- show_shmem: show result size class
- make_work (and other callers of count_unsent_results()):
    count both INACTIVE and UNSENT
- create_work: add --size_class cmdline option

Also:
- if get MySQL errors in upgrade, don't rewrite db_version
2013-04-25 00:27:35 -07:00
David Anderson 0eaaca174a - make_project: don't write <cgi_url> in config.xml; it's not used 2013-04-13 21:32:10 -07:00
David Anderson 77ee073f58 - client: show error notice if a GPU exclusion (in cc_config.xml)
has an invalid URL, type, or app
- server, create_work() function: if a <file_info> in input template
    lists URLs, they're directories; append filename to each one
2013-03-05 16:57:51 +01:00
David Anderson 48e1de5348 - remote job submission: bug fixes, and avoid divide by zero
in adjust_user_priority.  From Niclas Lockner.
2013-03-05 16:42:44 +01:00
David Anderson 3c029c7613 - client: job scheduler tweak to avoid CPU idleness in situation
where GPU jobs use different CPU fractions
- single-job submission: default platform is that of server
2013-03-05 15:57:34 +01:00
David Anderson c9ce9eeccc - single job submission: update the setup script to use the
current app version directory structure.
2013-03-05 15:57:34 +01:00
David Anderson d4a40a8841 - admin web: remove outdated code that tried to show SVN version
in the admin main page
2013-03-05 15:05:20 +01:00