Commit Graph

551 Commits

Author SHA1 Message Date
David Anderson cbe14c89fa - finished up the above
svn path=/trunk/boinc/; revision=13693
2007-09-27 21:28:32 +00:00
David Anderson aadcc979cd - client: first pass at fixing a fundamental design flaw:
there's a single GUI_HTTP object,
    and it works only if used sequentially,
    i.e. an op is started only after the previous one ends.
    This breaks if a GUI RPC triggerse and op while
    a project-list fetch (initiated by the client itself) is in progress.
    Or if two managers are connected at the same time,
    and both do HTTP ops.
    The solution: have a separate GUI_HTTP object for each GUI_RPC_CONN,
    and an additional one for use by the client itself.

svn path=/trunk/boinc/; revision=13692
2007-09-27 21:03:15 +00:00
David Anderson f1f5930579 - client: removed everything related to screensaver
(deciding which app to use, implementing blanking interval, etc.)
    This logic is all now in the screensaver itself.
- GUI RPC: removed get/set screensaver mode RPCs
- API: added a "backwards_compatible_graphics" flag to BOINC_OPTIONS.
    V6 apps should set this.
    If set, the runtime library checks for graphics messages
    from the client, and launches/kills the graphics app (if any).
    The app will then work graphically with pre-V6 clients.
- removed some old files

svn path=/trunk/boinc/; revision=13651
2007-09-25 16:04:45 +00:00
Charlie Fenton 09033009e0 if running as a daemon, don't set disable_graphics, remove "No application graphics will be available" message.
svn path=/trunk/boinc/; revision=13511
2007-09-02 14:00:45 +00:00
David Anderson 449e3fa257 - client: change the way upload/download throughput
estimates are maintained.
	The old way took concurrency into account but ignored compression;
	the new way does the converse.
- client: maintain new stat: recent average transfer rates.
	This track average up/down throughputs
	(over wall clock time, not just while xfers are active)
	with a half-life of 1 day.
	Will eventually add a new pref: don't fetch new work if
	either of these is above a threshold

svn path=/trunk/boinc/; revision=13407
2007-08-17 18:05:39 +00:00
David Anderson 4e1f0b7019 - client: add a <data_dir> option in cc_config.xml;
tells the client to use this as the data directory
- scheduler: improve the message telling the client that
    more disk or memory is needed;
    tell them the minimum amount needed to
    send any of the jobs rejected,
    rather than the amount needed for the first job rejected
- manager: fix text in "connect now" dialog

svn path=/trunk/boinc/; revision=13387
2007-08-16 17:33:41 +00:00
David Anderson eaed993f4c - User web and client: added a new pref "suspend_if_no_recent_input"
that lets you suspend computation after a specified period of idleness.
        This is necessary to allow some machines to go into low-power mode
        when they're not being used.
    - Change the wording of some existing prefs; for example, changed
        "Do work while computer is in use?" to
        "Suspend work while computer is in use".
        The former is confusing - if you say yes, BOINC may in fact
        NOT do work while the computer is in use,
        due to other factors (time of day, etc.)
    TODO: HOST_INFO::users_idle() should be changed so that it
        returns the idle time
        (rather than telling you whether we've been idle for X)

svn path=/trunk/boinc/; revision=13193
2007-07-19 23:22:19 +00:00
David Anderson 79adf59f98 - client: if can't write state file, don't immediately exit,
but don't do anything other than handle GUI RPCs.
    After 50 secs, print an "about to exit" message.
    After 60 seconds, exit

svn path=/trunk/boinc/; revision=13162
2007-07-16 20:30:21 +00:00
David Anderson 0a7422f5f7 - Manager: in grid views, don't sort unless needed (from Frank)
- client: show OS name/version in message at startup

svn path=/trunk/boinc/; revision=13161
2007-07-16 18:09:54 +00:00
David Anderson 32d1665178 - client: print time zone message at startup
- Manager: removed ForceRefresh() calls in grid views;
		reduces CPU usage, still seems to work (from Frank Weiler)

svn path=/trunk/boinc/; revision=13155
2007-07-14 20:04:47 +00:00
David Anderson b9d7ecdc1a - client: run_if_user_active pref applies to both
network transfers and CPU usage.
    (Note: maybe we should have a separate pref for this).

svn path=/trunk/boinc/; revision=13131
2007-07-10 17:49:51 +00:00
Charlie Fenton 9eca89dbb3 CC: value of stress_shmem_debug log flag sets number of shared memory segments to make unavailable.
svn path=/trunk/boinc/; revision=13024
2007-06-26 03:36:49 +00:00
Charlie Fenton 7f3d1004dd Fix build break for Windows & OS2
svn path=/trunk/boinc/; revision=13020
2007-06-25 14:26:47 +00:00
Charlie Fenton 7bb1b1a0d4 CC: Add logic to scheduler, etc. for systems which limit the number of shared memory segments per process and / or system-wide.
svn path=/trunk/boinc/; revision=13015
2007-06-25 11:46:15 +00:00
David Anderson dd2064ab6c - manager: v6 graphics fixes. doesn't work yet
client/
		client_state.C
	lib/
		gui_rpc_client_ops.C

svn path=/trunk/boinc/; revision=12963
2007-06-19 20:30:55 +00:00
David Anderson 9850a17167 - GUI RPC: add graphics_exec_path and slot_path fields to RESULT.
These let the Manager run the graphics app.
    Graphics apps have physical name *v6graphics*
- Separated ACTIVE_TASK::write() and ACTIVE_TASK::write_gui().
    These need to write largely disjoint set of items.
- code cleanup: remove a zillion "else"s in parsing code
- code cleanup: change a zillion match_tag(buf, "<foo/>"
    to parse_bool(buf, "foo")

client/
    app.C,h
    client_state.C
    client_types.C,h
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
sched/
    server_types.C

svn path=/trunk/boinc/; revision=12938
2007-06-14 23:08:43 +00:00
David Anderson 53c7492299 - parse_str(): remove unnecessary checks
- client: allow app_info.xml to have multiple versions

lib/
    parse.C
client/
    client_state.C
    scheduler_op.C

svn path=/trunk/boinc/; revision=12930
2007-06-13 19:54:24 +00:00
David Anderson f8af50e685 - client: fetch all-projects list at startup if it doesn't exist
- client: if result in statefile is labeled with unsupported platform,
    set its platform to primary
    (this completes the fix of 11 June, hopefully fixes #262)

client/
    client_state.C
    cs_statefile.C

svn path=/trunk/boinc/; revision=12907
2007-06-12 16:15:53 +00:00
David Anderson c02a7d30fe - client: a few more network_status_debug messages
client/
		client_state.C
		net_stats.C

svn path=/trunk/boinc/; revision=12805
2007-06-01 22:55:00 +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 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 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 188c49c6d5 svn path=/trunk/boinc/; revision=12702 2007-05-21 14:51:33 +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 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 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 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 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
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
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
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
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
Rom Walton ac6974b62b Rom 19 Apr 2007
- Fix a minor compile problem on 64-bit Windows platforms with the
        call to SetTimer.
    - fixes #80: Introduce the notion of an alternate platform for 64-bit
        Windows clients, which can also run 32-bit Windows apps.
        
      TODO: We'll need to refactor the whole platform section in the
        scheduler request creation section so that it can handle
        multiple alternate platforms and for Linux/Mac.
        
    api/
        windows_opengl.C
    client/
        client_state.C, .h
        cpp.h
        cs_scheduler.C

svn path=/trunk/boinc/; revision=12421
2007-04-19 20:53:16 +00:00
David Anderson 3eaea4fb71 *** empty log message ***
svn path=/trunk/boinc/; revision=12347
2007-04-11 21:49:57 +00:00
David Anderson 11869bc0be *** empty log message ***
svn path=/trunk/boinc/; revision=12333
2007-04-09 02:17:26 +00:00
David Anderson 1411e4c003 *** empty log message ***
svn path=/trunk/boinc/; revision=12324
2007-04-05 23:15:20 +00:00
David Anderson d5bd5c1a79 *** empty log message ***
svn path=/trunk/boinc/; revision=12323
2007-04-05 18:17:15 +00:00
Rom Walton f05cba02bf *** empty log message ***
svn path=/trunk/boinc/; revision=12297
2007-04-03 13:14:30 +00:00
David Anderson 8ee50511de *** empty log message ***
svn path=/trunk/boinc/; revision=12277
2007-03-28 21:30:45 +00:00
David Anderson 035642f298 *** empty log message ***
svn path=/trunk/boinc/; revision=12244
2007-03-19 19:13:40 +00:00
David Anderson 138f17af40 *** empty log message ***
svn path=/trunk/boinc/; revision=12216
2007-03-13 19:33:27 +00:00
David Anderson 2b67a5e84e *** empty log message ***
svn path=/trunk/boinc/; revision=12185
2007-03-04 02:30:48 +00:00
David Anderson a00e58d887 *** empty log message ***
svn path=/trunk/boinc/; revision=12155
2007-02-24 20:53:12 +00:00
David Anderson 6b4803d969 *** empty log message ***
svn path=/trunk/boinc/; revision=12146
2007-02-23 20:24:52 +00:00
David Anderson 81effa6a7b *** empty log message ***
svn path=/trunk/boinc/; revision=12127
2007-02-21 16:26:51 +00:00
David Anderson b2f27dcbf4 *** empty log message ***
svn path=/trunk/boinc/; revision=12120
2007-02-20 04:18:02 +00:00
David Anderson e66b1572ef *** empty log message ***
svn path=/trunk/boinc/; revision=12073
2007-02-12 23:53:16 +00:00
David Anderson 7579884c81 *** empty log message ***
svn path=/trunk/boinc/; revision=12069
2007-02-10 04:13:08 +00:00