Commit Graph

2860 Commits

Author SHA1 Message Date
Charlie Fenton 3c23af7d0a Mac: Fix substantial build breaks in reorganized hostinfo_unix.C.
svn path=/trunk/boinc/; revision=12776
2007-05-30 09:51:04 +00:00
Charlie Fenton 6047425623 fix compile break
svn path=/trunk/boinc/; revision=12775
2007-05-30 09:50:54 +00:00
David Anderson 1e7e58875a - client: add cmdline options --exit_before_start and --exit_after_finish.
This cause the core client to exit immediately before or after
    running a job,
    letting you examine the contents of the slot directory.
- scheduler: changed max # of CPUs used in daily_result_quota
    limit from 4 to 8, and make it a compile-time parameter
- feeder/scheduler: make the number of work items in shared
    memory configurable (in config.xml).
    The element is <shmem_work_items>
- feeder: make the size of the work item query configurable
    (<feeder_query_size)
- feeder: remove code related to removing infeasible results
    from shared mem.
    This mechanism was never needed,
    and I think a timeout would accomplish the same effect.

client/
    app.C
    app_start.C
    client_state.C,h
    cs_cmdline.C
sched/
    feeder.C
    sched_array.C
    sched_config.C,h
    sched_send.C
    sched_shmem.C,h
    sched_util.C
    show_shmem.C

svn path=/trunk/boinc/; revision=12771
2007-05-29 21:45:01 +00:00
David Anderson 588a4ab398 - Unix: 'make install' copies certificate authority file
to client directory

client/
    Makefile.am

svn path=/trunk/boinc/; revision=12757
2007-05-28 16:27:21 +00:00
David Anderson 56408dbbbe - Add GUI RPC to set projects debts (short and long term).
Lets you set all of them at once, as suggested by Nicolas Alvarez.
    fixes #131

client/
    gui_rpc_server_ops.C
html/user/
    sample_index.php
lib/
    boinc_cmd.C
    gui_rpc_client.h
    gui_rpc_client_ops.C

svn path=/trunk/boinc/; revision=12749
2007-05-26 21:15:58 +00:00
David Anderson 4f81994be6 - Add a mechanism for a project to shut down gracefully.
If <ended>1</ended> is included in config.xml,
    this gets send to clients,
    and they display a "Project ended - OK to detach" message.

client/
    client_state.C
    client_types.C,h
    scheduler_op.C
clientgui/
    VIewProjects.cpp
    VIewProjectsGrid.cpp
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
    gui_rpc_client_print.C
sched/
    sched_config.C,h
    server_types.C

svn path=/trunk/boinc/; revision=12742
2007-05-24 16:07:21 +00:00
David Anderson 9f07182cf6 - client, Unix: always use 1 (rather than slot#) in ftok().
Slot is already encoded in path.
- client, Linux: get memory size from /proc/meminfo
    rather than sysconf()
    
client/
    app_start.C
    hostinfo_unix.C

svn path=/trunk/boinc/; revision=12731
2007-05-23 20:36:49 +00:00
David Anderson 95c95ce653 - client: unscrambled some of the #ifdefs in hostinfo_unix.C
In Linux case, if measured RAM size is negative, print some info.

client/
    hostinfo_unix.C

svn path=/trunk/boinc/; revision=12728
2007-05-23 16:23:20 +00:00
David Anderson 2fcd2cb7d5 - lib/filesys: do timed retry of delete/rename on Unix as well as Win
- client: sleep 1 sec (not 60) before retry statefile write
- client: parse <credit> in workunit XML
- scheduler: better error messages if insert_wu_tags() fails

api/
    graphics2_unix.C
client/
    client_state.C
    client_types.C
lib/
    filesys.C
sched/
    sched_send.C

svn path=/trunk/boinc/; revision=12720
2007-05-23 03:55:53 +00:00
David Anderson 17a83ada30 - feeder: fixed SQL query again
sched/
    feeder.C

svn path=/trunk/boinc/; revision=12707
2007-05-22 02:58:01 +00:00
David Anderson 188c49c6d5 svn path=/trunk/boinc/; revision=12702 2007-05-21 14:51:33 +00:00
David Anderson 826e65f8d0 - client simulator: fix cpu_sched_rr_only bug
- boinc_cmd: canonicalize URLs
- user web: fix link to Top Teams
- back end: remove code related to alternate download dir

client/
    cpu_sched.C
    sim.C
html/
    inc/
        stats_sites.inc
    user/
        stats.php
lib/
    boinc_cmd.C
sched/
    file_deleter.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12694
2007-05-18 22:02:51 +00:00
David Anderson f7e650191a - client: change Win program launch to suppress hourglass cursor
- client simulator: add --cpu_sched_rr_only and --dual_dcf options

client/
    app.h
    app_start.C
    client_types.C,h
    cpu_sched.C
    cs_scheduler.C
    sim.C,h
    work_fetch.C

svn path=/trunk/boinc/; revision=12671
2007-05-15 20:29:26 +00:00
David Anderson 5bbcc6b3b6 - client: fix bug where:
1) client wakes up from hibernate
    2) one or more network ops start (e.g. because backoff expired)
    3) ops fail because DNS system isn't up yet
    4) connect to reference site fails too
    5) user sees "please create physical connection",
        even though there's been a physical connection the whole time.
    Solution:
    - keep track of "last wakeup time": the last time the
        time of day (measured in poll_slow_events())            increased by more than 10 times the polling interval.
        This must be either coming out of hibernation,
        or the user resetting the system clock.
    - When a network operation fails, try to contact the reference site
        only if it's more than 30 seconds after the last wakeup time.

client/
    client_state.C,h
    net_stats.C

svn path=/trunk/boinc/; revision=12665
2007-05-14 21:45:02 +00:00
David Anderson bd8b0aed41 - core client: on attach to project,
if the initial sched request failed,
		the manager would show "communicating" for 60 sec,
		then time out and show "failed to attach".
		But the project would actually be attached.
		This was due to a logic error,
		but I fixed it in a more fundamental way:
		by considering an attach to be complete immediately,
		without waiting for a successful scheduler RPC.

		This was originally done to ensure that the URL and account key were valid.
		But when using the BOINC Manager, we've already verified
		both of these before doing the attach project RPC.

		When using boinc_cmd, you now have to check for messages
		indicating a bad URL or account key.
		I changed things to print these messages on every sched RPC.

		Implementation: the notion of "tentative project" no longer exists.

	client/
		client_state.C,h
		client_types.C,h
		cs_account.C
		cs_benchmarks.C
		cs_scheduler.C
		gui_rpc_server_ops.C
		scheduler_op.C
		sim.C
		sim_util.C

svn path=/trunk/boinc/; revision=12663
2007-05-14 19:18:45 +00:00
David Anderson c31aa48a50 - core client: in statefile read, set avp->platform
before linking.
	- core client: when parse app_info.xml,
		set platform to primary platform.
		Otherwise anonymous platform mechanism doesn't work.
	- GUI RPC: in attach project RPC, check for
		already attached even in config file case

	client/
		cs_statefile.C
		gui_rpc_server_ops.C
		scheduler_op.C
		time_stats.C

svn path=/trunk/boinc/; revision=12662
2007-05-14 17:36:16 +00:00
Rom Walton 9c06b48c2d - Change the 'ProductName' in the resource structures to
'BOINC client' instead of 'BOINC core client'

    client/win/
        boinc_cmd.rc
        boinc_ss.rc
    clientgui/
        BOINCGUIApp.rc

svn path=/trunk/boinc/; revision=12659
2007-05-12 15:20:19 +00:00
Charlie Fenton 1bf67eddda Mac: Determine size of BOINC Manager bundle in core client if it was launched by Manager rather than in the Manager itself, to get correct information when controlling a remote computer.
svn path=/trunk/boinc/; revision=12651
2007-05-11 07:05:29 +00:00
Rom Walton 67078e9e67 - Fix a build break in the manager.
client/
        app.h
    lib/
        common_defs.h

svn path=/trunk/boinc/; revision=12646
2007-05-11 03:49:25 +00:00
David Anderson 3c7d66df91 svn path=/trunk/boinc/; revision=12644 2007-05-11 03:27:25 +00:00
David Anderson a37403a673 - scheduler: add <workload_sim> config option.
If set, the scheduler will use EDF simulation,
    together with the in-progress workload reported by the client,
    to avoid sending results that
    1) will miss their deadline, or
    2) will cause an in-progress result to miss its deadline, or
    3) will make an in-progress result miss its deadline
        by more than is already predicted.
    If this option is not set, or if the client request doesn't
    include a workload description (i.e. the client is old)
    use the existing approach, which assumes there's no workload.
    NOTE: this is experimental.  Production projects should not use it.
- EDF sim: write debug stuff to stderr instead of stdout
- Account manager:
    - if an account is detach_when_done, set dont_request_more_work
    - check done_request_more_work even for first-time projects
- update_uotd: generate a file for use by Google gadget
- user_links(): use full URLs (so can use in Google gadget)

client/
    acct_mgr.C
    work_fetch.C
html/
    inc/
        uotd.inc
        util.inc
    user/
        uotd_gadget.php (new)
sched/
    Makefile.am
    edf_sim.C
    sched_config.C,h
    sched_resend.C
    sched_send.C,h
    server_types.C,h

svn path=/trunk/boinc/; revision=12639
2007-05-10 21:50:52 +00:00
David Anderson a3c22a1bf7 - client: add constructor/destructor for APP_VERSION, WORKUNIT, RESULT
- client: with anonymous platform, don't link app version twice

client/
    client_types.h
    client_state.C
    cs_apps.C
    cs_files.C
    cs_prefs.C
    cs_scheduler.C
    cs_statefile.C
    sim_util.C
html/
    uotd.inc
sched/
    edf_sim.h
    server_types.h

svn path=/trunk/boinc/; revision=12638
2007-05-10 16:23:10 +00:00
David Anderson ca2dead91d - client simulator: make it compile on Win
- client: parse version_num in active_task to avoid spurious error msg

	client/
		app.C
		sim.C
	win_build/
		sim.vcproj

svn path=/trunk/boinc/; revision=12636
2007-05-10 16:07:45 +00:00
David Anderson e6f92b3188 - Client simulator: added --dcf_dont_use and --dcf_stats options
(alternate ways of computing DCF)

    client/
        cpu_sched.C
        sim.C,h
        sim_util.C

svn path=/trunk/boinc/; revision=12628
2007-05-09 15:23:10 +00:00
David Anderson c08eddf7fe - GUI RPC: add new element d_boinc to DISK_USAGE;
tells how much disk space BOINC is using
        (not including projects).
    - added project.max_infeasible_count to client simulator

    client/
        gui_rpc_server_ops.C
        sim.C,h
        sim_util.C
    clientgui/
        ViewResources.cpp
    lib/
        filesys.C
        bui_rpc_client.h
        bui_rpc_client_ops.C

svn path=/trunk/boinc/; revision=12615
2007-05-08 23:12:40 +00:00
David Anderson 44a7509e35 - core client: improve error message when can't link app version
client/
		client_state.C
		cs_statefile.C

svn path=/trunk/boinc/; revision=12614
2007-05-08 22:07:21 +00:00
David Anderson f6a06c60ac - client simulator:
- Add --server_uses_workload option
            (simulate server that does EDF simulation)
        - Add simulation of exponential backoff when don't get work.
            Otherwise it will keep asking forever.
        - move non-interesting stuff to sim_util.C
    - change simulator code to use ' instead of " in compiled translations
    
    client/
        makefile_sim
        sim_util.C
        sim.C,h
        work_fetch.C
    html/inc/
        translation.inc
    sched/
        edf_sim.C
        edf_sim.h (new)

svn path=/trunk/boinc/; revision=12604
2007-05-08 01:55:28 +00:00
David Anderson 2853649d28 - core client: add <no_alt_platform> config option;
eliminates use of alternate platforms.

    client/
        client_state.h
        cs_platforms.C
        cs_statefile.C
        log_flags.C,h

svn path=/trunk/boinc/; revision=12600
2007-05-07 19:38:27 +00:00
David Anderson f7a12ca7d4 - core client: fix bug in code to ignore unknown platforms.
client/
		cs_scheduler.C

svn path=/trunk/boinc/; revision=12597
2007-05-07 17:49:21 +00:00
David Anderson a6521f58e7 - core client: when parsing statefile or scheduler reply,
if get an app_version with unknown platform name, ignore it.
		This means that, e.g. if someone moves a BOINC directory
		from Intel to PowerPC Mac, things will still work right.

	client/
		client_state.C,h
		cs_platforms.C
		cs_scheduler.C
		cs_statefile.C

svn path=/trunk/boinc/; revision=12579
2007-05-06 20:22:39 +00:00
David Anderson a8016c461c - another multi-platform fix (missing \n)
client/
		client_types.C

svn path=/trunk/boinc/; revision=12578
2007-05-06 19:48:17 +00:00
Charlie Fenton 630a0f16be Mac: On Intel Macs, support PowerPC Mac as a secondary platform.
svn path=/trunk/boinc/; revision=12576
2007-05-06 09:11:19 +00:00
David Anderson 71bb6ef5c3 - Oops! Small mistake in multi-platform changes.
client/
		cs_scheduler.C

svn path=/trunk/boinc/; revision=12564
2007-05-05 00:06:21 +00:00
David Anderson d1adc3ab49 sim-related stuff
svn path=/trunk/boinc/; revision=12563
2007-05-04 23:05:17 +00:00
David Anderson 7619242655 - Core client: small changes to make the client simulator act reasonably.
- change > to >= for check for running beyond sched period
        - adjust debts before calculating anticipated debt
    
    client/
        client_types.h
        cpu_sched.C
        sim.C

svn path=/trunk/boinc/; revision=12546
2007-05-03 21:22:24 +00:00
David Anderson 4a1741e220 - Core client: handle multiple platforms correctly.
Remove the tacet assumption that a host can handle
        applications for a single platform.
        With the Apr 30 scheduler changes,
        a project may (at different times)
        send app versions for the same app and version number,
        but different platforms.
        Before we would have ignored all but the first;
        now we handle them correctly.

        Implementation notes:
        - Add APP_VERSION.platform, RESULT.platform,
            and RESULT.version_num.
            If these are missing from an XML doc
            (e.g. an existing state file or a scheduler reply
            from a project not running current server)
            then set to the primary platform.
        - Continue to write workunit.version_num
            and active_task.version_num to state file,
            even though these are no longer part of the struct.
            This allows users to revert to an older version.

    client/
        app.C
        check_state.C
        client_state.C,h
        client_types.C,h
        cs_apps.C
        cs_scheduler.C
        cs_statefile.C
        sim.C

svn path=/trunk/boinc/; revision=12542
2007-05-03 17:14:30 +00:00
Walt Gribben ad78eb2db5 - Add cs_platform.C to Makefile.am
client/
        Makefile.am

svn path=/trunk/boinc/; revision=12534
2007-05-02 23:08:46 +00:00
Rom Walton a100628ee8 - fixes #154:
* refactored the alternate platform mechinism so that we
          can support multiple alternate platforms.
        * moved everything to cs_platforms.C since we expect the
          kind of sprawl that is in host_info.C on the *nix
          environments.
    - Clean up some warnings
          
    client/
        acct_setup.C
        client_state.C, .h
        client_types.h
        cs_platforms.C (Added)
        cs_scheduler.C
        cs_statefile.C
        http_curl.C
    lib/
        str_util.h

svn path=/trunk/boinc/; revision=12531
2007-05-02 17:53:35 +00:00
David Anderson 8d20224376 - core client: if platform is different from platform in state file,
print a message but don't reset projects
        (otherwise people running on 64-bit machines would lost
        in-progress jobs when switching to 64-bit client)
        
    client/
        client_state.C

svn path=/trunk/boinc/; revision=12513
2007-04-30 21:49:27 +00:00
David Anderson 5184dedb1e David 26 Apr 2007
- core client: set config settings to default values before
        parsing cc_config.xml.
        Otherwise, if you have a lot of log flags set,
        and tell the client to reread a config file that
        doesn't specify ANY log flags,
        you'll end up with all the flags still set.
        (from Sebastian Masch)
    - make_project: add cmdline args for update_stats in initial config

    tools/
        make_project
    client/
        log_flags.C,h

svn path=/trunk/boinc/; revision=12490
2007-04-26 21:57:42 +00:00
David Anderson c7822ecb79 David 25 Apr 2007
- eliminate spurious "work fetch too big" message

	client/
		work_fetch.C

svn path=/trunk/boinc/; revision=12478
2007-04-25 20:25:23 +00:00
Eric J. Korpela 8a8ffc8ef9 Eric K 24 Apr 07
-  Exteded the "altername_platform" mechanism to x86_64 linux
       and solaris.  The current alternate platforms found by configure
       are...
	 x86_64-pc-linux-gnu    -> i686-pc-linux-gnu
	 sparc64-sun-solaris    -> sparc-sun-solaris
	 sparc-sun-solaris      -> sparc-sun-solaris2.7
	 powerpc64-apple-darwin -> powerpc-apple-darwin
    -  The alternate platform can be overridden on the configure command line
         --with-boinc-alt-platform="platformname"

    m4/
        boinc_platform.m4
    sched/
        Makefile.am
    client/
        client_state.C
        cs_scheduler.C
        client_state.h


svn path=/trunk/boinc/; revision=12467
2007-04-25 02:02:24 +00:00
David Anderson 7e2b39c4db David 24 Apr 2007
- Server: add new database field host.error_rate.
        Stores a dynamic estimate of the fraction of the hosts's
        results that fail validation (updated by the validator).

    client/
        sim.C
        cs_prefs.C
    db/
        boinc_db.C,h
    html/ops/
        db_update.php
    sched/
        handle_request.C
        sched_msgs.h
        validator.C

svn path=/trunk/boinc/; revision=12466
2007-04-24 23:21:42 +00:00
Rom Walton 3307404373 Fix build break introduced when windows_x86_64 support was added.
svn path=/trunk/boinc/; revision=12456
2007-04-23 22:25:19 +00:00
David Anderson 07395c8f47 svn path=/trunk/boinc/; revision=12454 2007-04-23 20:35:55 +00:00
Rom Walton f98df5beff Fix: Win x64's alternate platform is really windows_intelx86 not windows_x86_64.
svn path=/trunk/boinc/; revision=12437
2007-04-20 20:36:38 +00:00
David Anderson 5059b146e8 David 20 Apr 2007
- Advanced prefs: remove incorrect multiplication by 86400

	client/
		cs_prefs.C
	clientgui/
		DlgAdvPreferences.cpp

svn path=/trunk/boinc/; revision=12436
2007-04-20 20:29:13 +00:00
David Anderson b686f89d85 David 20 Apr 2007
- make_project: add periodic tasks to default config.xml:
        dp_dump, update_uotd, update_forum_activities, update_stats,
        update_profile_pages
    - backend_lib.C: refuse to create a job for which some necessary
        parameter (rsc_fpops_est, rsc_fpops_bound, etc.) is missing
    - Unix build: don't include std_fixes.h in config.h.
        std_fixes.h is (I think) deprecated
    - sched_util: default sched log level is MSG_NORMAL
    - client: add ".txt" to job log filename
    - compile fixes

    configure.ac
    api/
        reduce_main.C
    client/
        file_names.C
    lib/
        str_util.h
    sched/
        sample_work_generator.C
        sched_msgs.h
    tools/
        backend_lib.C

svn path=/trunk/boinc/; revision=12430
2007-04-20 17:14:08 +00:00
Rom Walton ffeeae9f26 Quick bug fix for the core client.
svn path=/trunk/boinc/; revision=12427
2007-04-20 16:28:35 +00:00
Rom Walton 9eda52126b Rom 19 Apr 2007
- Match the client-side and server-side XML for alternate
        platforms.
    - Print both the max active memory usage and max idle
        memory usage after all the preference information has
        been parsed.
        
    client/
        cs_prefs.C
        cs_scheduler.C

svn path=/trunk/boinc/; revision=12425
2007-04-20 03:11:48 +00:00