Commit Graph

2404 Commits

Author SHA1 Message Date
marius 8388ce0304 fixed typo, bin/start --cron-tasks now works 2015-08-27 13:35:35 -05:00
David Anderson 819283fe06 server: fix bug affecting tables with > 32 bit IDs
Some of the DB functions (e.g. update()) weren't handling 32 bit IDs
2015-08-13 14:05:53 -07:00
David Anderson a87d039f49 server: more 64-bit ID fixes
negative values are stored in app_version_id fields to represent
anonymous platform versions.
So need to use %ld rather than %lu for these fields.

Also there were a couple of more changes of int do DB_ID_TYPE
2015-07-29 17:32:57 -07:00
David Anderson 12cb97ff4a scheduler: fix 64-bit ID bug; change default MAX_APP_VERSIONS to 100 2015-07-29 15:55:01 -07:00
David Anderson 1af264747f validator: fix 64-bit ID problem 2015-07-28 16:19:31 -07:00
David Anderson 8cd8c8e7ee server software: handle 64-bit database IDs
The SETI@home result table is about to run out of 32-bit IDs,
so we need to move to 64-bit result IDs.
This will happen to the workunit table at some point too.

I changed the server C++ code to use the "long" type for all DB IDs
(and to use appropriate conversion codes like %lu).
"long" is 64 bit on 64-bit machines.
For uniformity I did this for all tables,
even ones (like app) that will never get big.

I chose NOT to change the DB schema for now.
The new code will work with 32-bit ID fields in the DB.
As projects approach the 32-bit limit on a table they can change
its ID field, and fields that reference this table, to BIGINT.
This is likely to happen only on the result and workunit tables.
I put functions in html/ops/db_update.php
to change the IDs of these tables.
2015-07-23 10:11:08 -07:00
Eric J Korpela f2d6de3e6e Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2015-07-13 15:14:59 -07:00
David Anderson efb2db8fc0 transitioner_catchup.php: fix it. 2015-07-10 10:24:40 -07:00
David Anderson 74e6a5fb10 scheduler: don't mark jobs as abandoned if request lists jobs; from William Stilte 2015-07-08 13:49:29 -07:00
David Anderson e66a572838 scheduler: if app_info.xml refers to non-existent app, tell user the app name 2015-07-02 13:02:50 -07:00
David Anderson e987a51c5e scheduler: don't let random factor in version selection be < .1 2015-06-09 20:12:38 -07:00
David Anderson bc9747789e size_regulator: make the DB access more efficient
The query to get counts of unsent results for various size classes
did a sequential scan, which isn't practical for large projects.
All we care about is the count up to a certain (low) limit,
so I replaced it with an enumeration with a limit, and count the results.
2015-06-03 00:30:18 -07:00
Eric J Korpela 83e832c328 Allow machines that don't report android version to get work if
min_android_version in plan class <= 0
2015-05-12 09:30:43 -07:00
David Anderson 1c6267f2f1 scheduler: fix possible bug if use assigned jobs with FCGI scheduler
Need to end the enumeration.
2015-04-27 10:10:32 -07:00
David Anderson 5ad43a6509 validator: add --wu_id N option for debugging single WU 2015-04-03 20:00:13 -07:00
David Anderson 638503e1ee server: add restrict_wu_to_host() function 2015-03-30 11:32:01 -07:00
David Anderson fdebbf9dd4 transitioner: debug --wu_id option 2015-03-20 14:49:31 -07:00
David Anderson d81f7ae67b transitioner: add --wu_id option so you can debug a particular WU 2015-03-17 23:39:19 -07:00
David Anderson 49d0e6225d scheduler: parse "Android 4.3" as well as "Android 4.3.0" 2015-02-18 08:28:02 -08:00
Eric J Korpela 8f33da07fc Way to be consisent with the types of versions in plan classes. Not. 2015-02-12 17:02:30 -08:00
Eric J Korpela 53a5151cf2 - SCHED: Scheduler didn't have a means of parsing android version setting
from plan_class_spec.xml so the min/max_android_version settings weren't
  functioning
2015-02-12 16:58:06 -08:00
David Anderson 57e8f8cf5d sample_substr_validator: bug fix for --reject_if_present 2015-01-31 18:30:36 -08:00
David Anderson 0fd3ea7226 sample_substr_validator: add --reject_if_present option.
See http://boinc.berkeley.edu/trac/wiki/ValidationIntro
2015-01-28 13:53:12 -08:00
David Anderson 918dcd9179 db_purge: fix typo that cause SQL error 2015-01-26 10:20:13 -08:00
Julien Nabet d75222ebf3 cppcheck: Prefer prefix ++/-- operators for non-primitive types 2015-01-14 21:18:29 +01:00
David Anderson b1ee6b00c4 scheduler, FCGI: flush log file after each request. From Nicolas. 2015-01-09 20:40:02 -08:00
David Anderson 947b7b3f1e scheduler: support Android version limits in XML plan class spec
Note: Android clients report the Linux kernel version in host.os_version.
A month or two ago we added the Android version,
which can't always be inferred from the Linux version.
This will only work for devices running this new client.
2015-01-05 16:32:30 -08:00
David Anderson 86c81fc587 db_purge: add --app cmdline option 2014-12-23 16:35:14 -08:00
David Anderson afd8783b60 server: add <hr_class_static> option
For projects (like Lattice) that assign a WU's HR class when it's created,
we don't want the mechanism that clears the HR class
if there are error results and no in-progress of completed results.
This option suppresses this.
2014-12-10 23:18:40 -08:00
David Anderson 9411118774 client: fix bug where GPU jobs non suspended
There was a bug where, when you suspend GPU activity,
GPU jobs show as suspended but are not actually suspended.
This was because of recent changes to distinguish GPU and non-GPU coprocs.
Change things so that coprocs are by default GPUs.
If you want to declare a non-GPU coproc in your cc_config.xml,
you much put <non_gpu/> in its <coproc> element.
2014-12-08 20:38:56 -08:00
David Anderson 7100992f82 start script: skip 'run_in_ops' in forming log/out/lock/pid filenames
Tasks and daemons written in PHP are generally run with a command of the form
run_in_ops script.php
The start script would, by default, base log/out/lock/pid filenames
on "run_in_ops".
This forced you to specify the filenames in config.xml, e.g.
<output>script.out</output>

Fix this by skipping the run_in_ops and using the next string
to form default filenames.
2014-12-03 14:23:03 -08:00
David Anderson d2c760f102 scheduler: fix crash due to uninitialized var 2014-11-25 22:44:11 -08:00
David Anderson 373d345e0f scheduler: OS version constraints in plan class XML spec for Linux/Android
The OS version# constraints (os_min_version, os_max_version)
were only supported for Win and Mac.
Make them work for Linux and Android too.
Note: for Android, we get the Linux kernel version.
This isn't the same as the Android version, but it may be enough
2014-11-22 13:19:54 -08:00
David Anderson db501739a6 client: timestamp all writes to stderr 2014-11-14 13:07:24 -08:00
David Anderson ecc5ef9496 Assimilator: don't error out if unrecognized args
(app-specific code might parse them)
2014-11-12 09:58:14 -08:00
David Anderson 2829e7f368 sched_customize.cpp: add another example, and remove S@h-specific code 2014-10-31 15:02:13 -07:00
David Anderson 3471cb5e38 scheduler: add <cpu_vendor_regex> option to plan class XML spec
Lets you limit an app version to a particular CPU vendor (AMD, Intel).
2014-10-27 10:36:32 -07:00
David Anderson 6eabd34068 server: extend script_validator and script_assimilator to pass extra args
You can arrange to pass result IDs, runtime, etc.
to your validation and assimilation scripts.  See
http://boinc.berkeley.edu/trac/wiki/ValidationSimple#Usingscriptinglanguages
http://boinc.berkeley.edu/trac/wiki/AssimilateIntro#Usingscriptinglanguages
2014-10-24 14:22:07 -07:00
David Anderson 9f3fe162d0 make_project, upgrade: copy new server programs 2014-10-23 11:57:05 -07:00
David Anderson d2488ef87f server: add script_assimilator.cpp: support for script-based assimilators.
Also fix bug in script_validator.cpp
2014-10-22 10:24:40 -07:00
David Anderson 302aa8c7aa server: add script_validator: a validator framework for Python, Perl, bash etc.
Added script_validator, a validator that invokes scripts of your choice
to check and compare results.
These can be in any language you want.
2014-10-21 22:14:57 -07:00
David Anderson d1b2c57c37 client, Android: clear out project directory on project reset.
When a project is reset, the client deletes all the files from its dir
that BOINC knows about.
However, there may be other files, created by its apps.
On Android, where space is likely to be scarce,
delete these when the project is reset.

Maybe we should do this on all projects.
But we'd need to not to delete user-created files
like app_config.xml, and anonymous-platform stuff
like app_info.xml and the app files.
2014-10-21 22:06:22 -07:00
David Anderson 9ba4e985b6 server: fixes/improvements to validator_test 2014-10-14 10:25:28 -07:00
David Anderson 870ec73327 scheduler: fix crash bug caused by recent checkin 2014-10-09 08:56:03 -07:00
David Anderson 323d61bcee scheduler: fix bug that would send work for miner_asic only if other types requested also 2014-10-08 10:18:16 -07:00
David Anderson 1eda7de1ac scheduler: add <nthreads_cmdline> option to plan class XML spec
When using XML plan class spec, the "mt" plan class would
correctly set avg_ncpus, but wouldn't pass a cmdline arg to the app.
So you'd get jobs where BOINC thinks it's using N CPUs,
but it's actually using only one.
2014-10-07 04:03:35 -07:00
David Anderson 526aff6e0d scheduler: fix msg typo.
Note: the "reliable" mechanism isn't yet implemented for
score-based scheduling, and it's not real clear how to do this.
2014-09-23 12:37:50 -07:00
David Anderson 027689bd7c Plan class XML spec: let you exclude particular Vbox versions 2014-09-23 10:58:29 -07:00
David Anderson c2a0421074 scheduler: add support for miner_asic coprocessor type
I.e. treat miner ASICs as a distinct processor type;
send miner_asic jobs only if the client requests them.

Note: I was planning to do this in a more general way,
in which the scheduler wouldn't have a hard-wired list of processor types.
However, that would be a large code change,
so for now I just added miner_asic to the list of processor types
(nvidia, ati, intel_gpu),
and made various changes to get things to work.

Also: in the job dispatch logic, try to send coproc jobs
before CPU jobs.
That way if e.g. there's a limit on jobs in progress,
we'll preferentially send coproc jobs.
2014-09-21 21:08:09 -07:00
David Anderson 7a84dabbbc scheduler: fix bug that broke enforcement of per-app job limits
The old scheduler worked as follows:
    scan jobs; for each job
        get_app_version
        do various checks
        add_job_to_reply
The check for per-app job limits was in get_app_version,
and the incrementing of per-app job count is in add_job_to_reply.

The new (score-based) scheduler works as follows:
    scan jobs; for each job
        get_app_version
        add to list
    sort list by score
    scan list; for each job
        do various checks
        add_job_to_reply

So the limit check (in get_app_version) was ineffective
because it happens before we've incremented counts.

Fix: do the limit check (also) in the "scan list" loop.

Bigger picture: we need to restructure app version selection;
job limit enforcement doesn't belong there any more.
2014-09-16 11:07:36 -07:00