Commit Graph

84 Commits

Author SHA1 Message Date
David Anderson 5b8a15a92b Eliminate some compile warnings in vda/.
Added virtual destructors.
Fixed some sprintf warnings but not all; that seems like an infinite rat-hole.
2020-05-02 11:49:28 -07:00
Christian Beer 0cf3c556d8 Server: use MAXPATHLEN for char arrays when they contain filenames
This prevents out-of-bounds access by functions that already use MAXPATHLEN.

Fixes CID 120041, 120042, 120043, 120044, 120045 reported by Coverity
2016-04-25 09:33:26 +02:00
Christian Beer e8804e36b1 use snprintf to prevent buffer overflow
fixes places missed with 52f494e
fixes CID 27968 found by Coverity
2015-11-30 17:27:10 +01:00
Christian Beer 7c8be3f478 initialize variable before use
fixes CID 28021 found by Coverity
2015-10-21 17:36:09 +02:00
Christian Beer 52f494ef98 use snprintf to prevent buffer overflow
fixes CID 27968 found by Coverity
2015-10-21 17:30:58 +02: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
David Anderson 5ef03c7553 manager, VDA: fix some cppcheck warnings (from Julien Nabet) 2015-01-15 13:10:34 -08:00
Julien Nabet d75222ebf3 cppcheck: Prefer prefix ++/-- operators for non-primitive types 2015-01-14 21:18:29 +01: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 f25cf0836a Include <cmath> instead of <math.h> various places 2013-05-27 16:44:22 -07:00
David Anderson f30097d175 server: compile fix for recent gcc 2013-05-25 13:54:50 -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 7b5eace475 volunteer data archival simulator: a few tweaks 2013-05-14 12:27:04 -07:00
David Anderson ea114741b9 volunteer data archival: various fixes 2013-05-09 14:53:26 -07:00
David Anderson 90ed2048ea - restore 2 commits erased by Charlie's Dec 10 commit 2013-03-04 17:17:10 +01:00
David Anderson 2a120631a4 - scheduler: build fixes for FreeBSD. From RustyBSD. 2013-03-04 15:23:38 +01:00
David Anderson acd1ad07ae - tweaks
svn path=/trunk/boinc/; revision=26146
2012-10-11 05:37:23 +00:00
David Anderson b1d1e21de4 - remote job submission: start writing a general-purpose
cmdline tool for remote job submission (not done)
- remote job submission: support the 4 file modes described
    in the documentation (not done)


svn path=/trunk/boinc/; revision=26067
2012-08-31 06:11:06 +00:00
David Anderson d02ff6e1c5 - fix typo
svn path=/trunk/boinc/; revision=26063
2012-08-28 06:33:53 +00:00
David Anderson 0483da30f4 - server: compile fix
- server: add nfiles_on_host(),
    a support function for "locality scheduling lite".


svn path=/trunk/boinc/; revision=26061
2012-08-26 21:24:18 +00:00
David Anderson 32da1a7e37 - server: add support for having a mixture of CPU-intensive
and non-CPU-intensive applications.
    An app can be specified as non-CPU-intensive in project.xml,
    and this attribute can be set or cleared using the admin web interface.
    Note: support for this was added to the client in 2011,
    but we didn't add server-side support at that time.
    This change is in 6.12 and later clients.


svn path=/trunk/boinc/; revision=26060
2012-08-25 04:09:24 +00:00
David Anderson a9e78b6459 - volunteer storage: fix the way that hosts are classified as alive/dead
- add a config item vda_host_timeout.
        A host that hasn't done a scheduler RPC for this long
        is considered dead.
    - a host that's not running a version 7+ client is considered dead
    - host.cpu_efficiency (an otherwise unused field) is used
        as a flag for dead hosts
    - the scheduler clears the flag if the client is v7+
    - vdad sets the flag for hosts where last RPC is old
    - before choosing a host for chunk download,
        vdad checks its client version.


svn path=/trunk/boinc/; revision=26059
2012-08-24 19:06:41 +00:00
David Anderson 2ebc7de2cb - file_upload_handler: bug fix
- volunteer storage: buf fixes


svn path=/trunk/boinc/; revision=26056
2012-08-22 18:23:01 +00:00
David Anderson e79d3ea4c8 - client: change the way project disk share is computed.
- Allow projects to report "desired disk usage" (DDU).
        If the client learns that a project wants disk space,
        it can shrink the allocation to other projects.
    - Base share computation on DDU rather than disk usage.
    - Introduce the notion of "disk resource share".
        This is defined (somewhat arbitrarily) as resource share
        plus 1/10 of the largest resource share.
        This is intended to ensure that even zero-share projects
        get enough disk space to store app versions and data files;
        otherwise they wouldn't be able to compute.
- server: use host.d_boinc_max (which wasn't being used)
    to start d_project_share reported by client.
- volunteer storage: change the way hosts are allocated to chunks.
    Allow hosts to store several chunks of the same file, if needed


svn path=/trunk/boinc/; revision=26052
2012-08-22 04:02:52 +00:00
David Anderson 446bc4ca28 - client: take GPU exclusions into account when making
initial work request to a project
- client: put some casts to double in NVIDIA detect code.
    Shouldn't make any difference.
- volunteer storage: truncate file to right size after retrieval


svn path=/trunk/boinc/; revision=26051
2012-08-20 23:41:27 +00:00
David Anderson 52068b5f2d - client: print log msgs (enabled by task_debug) if the client
times out on quitting or aborting a task, and has to kill it.
- volunteer storage: bug fixes


svn path=/trunk/boinc/; revision=26050
2012-08-20 19:48:57 +00:00
David Anderson c0058ee5eb - volunteer storage: various
svn path=/trunk/boinc/; revision=26043
2012-08-17 23:27:44 +00:00
David Anderson b029e352c9 - scheduler: if sending GPU description to pre-7.0 client,
call it CUDA instead of NVIDIA


svn path=/trunk/boinc/; revision=26042
2012-08-17 06:10:25 +00:00
David Anderson 0d42a4aa5c - file upload handler: add an #ifdef for disabling locking of files
while writing to them.
    It's not clear to me that this locking is beneficial,
    and it may be causing filesystem problems at WCG
- volunteer storage stuff


svn path=/trunk/boinc/; revision=26021
2012-08-15 21:27:38 +00:00
David Anderson 8290ce1d11 - volunteer storage stuff
svn path=/trunk/boinc/; revision=26015
2012-08-13 23:15:50 +00:00
David Anderson b6234edc95 - db_purge: fix typo that cause bad DB query when using assignments
svn path=/trunk/boinc/; revision=26010
2012-08-12 06:54:20 +00:00
David Anderson 7335c036fc - server: volunteer storage bug fixes.
Note to self: jerasure's decoder program loops or crashs
        if there are no missing chunks.

svn path=/trunk/boinc/; revision=25995
2012-08-08 21:37:51 +00:00
David Anderson 2dd5276300 - client: parse <network_wifi_only> in prefs
- server: compile fix


svn path=/trunk/boinc/; revision=25991
2012-08-07 22:49:40 +00:00
David Anderson 1189951953 - volunteer storage. Seems to be working, at least in simulation
svn path=/trunk/boinc/; revision=25974
2012-08-03 16:41:00 +00:00
David Anderson da7e40f142 - use <cmath> instead of <math.h>. Seems to be needed on Debian.
svn path=/trunk/boinc/; revision=25938
2012-08-01 21:21:38 +00:00
David Anderson 405f567c81 - code cleanup: in foo.cpp, include foo.h first
svn path=/trunk/boinc/; revision=25933
2012-08-01 20:04:05 +00:00
David Anderson ab120dea9e - web: after post to a thread, show thread in user's chosen order
instead of newest first.


svn path=/trunk/boinc/; revision=25931
2012-08-01 17:57:56 +00:00
David Anderson 6e816094bd - volunteer data storage: intermediate checkin
svn path=/trunk/boinc/; revision=25890
2012-07-25 21:41:32 +00:00
David Anderson ac20215eb8 - volunteer storage: implement "vda status" command
svn path=/trunk/boinc/; revision=25887
2012-07-23 21:53:09 +00:00
David Anderson 9a84980792 - lib: treat MINGW32 like CYGWIN32 (in 1 place - should do everywhere?)
from Oliver


svn path=/trunk/boinc/; revision=25874
2012-07-17 03:59:12 +00:00
David Anderson 78f74661aa - distributed storage: move chunk_size to VDA_FILE.
Add some missing code.


svn path=/trunk/boinc/; revision=25854
2012-07-07 19:44:48 +00:00
David Anderson 68f9880615 - client: remove "device" entry from CUDA_DEVICE_PROP,
and change types of mem-size fields from int to double.
    These fields are size_t in NVIDIA's version of this;
    however, cuDeviceGetAttribute() returns them as int,
    so I don't see where this makes any difference.
- client: fix bug in handling of <no_rsc_apps> element.
- scheduler: message tweaks.
    Note: [foo] means that the message is enabled by <debug_foo>.



svn path=/trunk/boinc/; revision=25849
2012-07-05 20:24:17 +00:00
David Anderson 8d8662adb2 - more code cleanup
svn path=/trunk/boinc/; revision=25838
2012-07-02 19:31:34 +00:00
David Anderson 19458ba4de - Compile fixes for Fedora core 17. From Christian B. Fixes #1194.
- Fix various #include issues.

CODING STYLE LAW (minimal inclusion principle):
    If foo.cpp requires <blah.h>,
    #include <blah.h> in foo.cpp, NOT foo.h


svn path=/trunk/boinc/; revision=25837
2012-07-02 18:51:02 +00:00
David Anderson 5e87181d81 - client: it's possible for a host to get app versions for
a given app that have different platforms and different version #s.
    The client was erroneously deleting the one w/ the lower version
    when it was no longer in use.
    Fix: in garbage collection, consider one version to supercede another
    only if they have the same platform


svn path=/trunk/boinc/; revision=25770
2012-06-18 17:57:33 +00:00
David Anderson 0cc0370f02 - client, GUI RPC: detect and export the PCI bus, device, and domain #s.
- scheduler: increase #GPU limit from 8 to 64


svn path=/trunk/boinc/; revision=25761
2012-06-15 20:49:11 +00:00
David Anderson e9362c80ff - scheduler: send <dont_use_dcf> only if client is 7.0.28 or later.
svn path=/trunk/boinc/; revision=25759
2012-06-14 17:14:52 +00:00
David Anderson 54078e92c4 - fixes of various (non-critical) fd and memory leaks.
Fixes #1188.  From Julien.
- fix bugs in setting scheduler output buffer size
- code formatting


svn path=/trunk/boinc/; revision=25750
2012-06-10 05:38:34 +00:00
David Anderson d2d9110584 - add script to repair damaged user.global_prefs fields
- compile warning fixes


svn path=/trunk/boinc/; revision=25707
2012-05-23 00:25:19 +00:00