Opened 17 years ago

Closed 16 years ago

Last modified 15 years ago

#136 closed Defect (fixed)

Failure to update debt values when networking is disabled

Reported by: Richard Haselgrove Owned by: davea
Priority: Minor Milestone: Undetermined
Component: Client - Daemon Version:
Keywords: Cc:

Description

BOINC 5.8.16 updates STD and LTD every 60 seconds - this can be monitored in real time using remote GUI RPC tools such as BOINCView.

When networking is disabled, the re-calculation of debt values stops: new values are generated on task exit, but not (as far as I can see) at any intermediate stage.

On multi-CPU hosts, this results in reschedule_CPU events acting on stale data, and continually assigning more and more CPUs to a project which has a modest positive STD and no deadline pressure.

Example seen: project with +9274 STD, resource share 3/8, running on 4 of 8 CPUs (so STD should already have been reducing) - over a period of 50 minutes, started 4 additional tasks so the one project was running 8/8, 3 other projects had running tasks preempted in the process. No project was under deadline pressure: the project which took over all CPUs had between 2 and 3 weeks to run on all tasks. As soon as a task exited and debts were recalculated, the running project had STD of -2897, and a pre-empted project had STD of +7627.

Dual Xeon Clovertown workstation, Windows Vista Business, BOINC 5.8.16 installed as a service.

Change History (7)

comment:1 Changed 17 years ago by KSMarksPsych

Component: UndeterminedClient - Daemon
Owner: set to davea
Priority: UndeterminedMinor

comment:2 Changed 17 years ago by davea

Resolution: wontfix
Status: newclosed

This is the correct behavior. Debts are adjusted only when rescheduling CPUs (which happens every hour by default) or when computer work requests (which happens only if network is enabled)

comment:3 Changed 16 years ago by Richard Haselgrove

Resolution: wontfix
Status: closedreopened

I am re-opening this ticket because the bug I reported last year is still present in BOINC v5.10.45, and because the remarks made by David Anderson on closure are simply not true.

I have written a small program (available on request - Windows only) which logs STD and LTD every 60 seconds. I have posted a graph of the resulting output here.

The graph clearly shows that debts are recalculated continuously, and the period of static debt caused by suspending network activity from 14:05 to 14:17.

Further discussion in the SETI message board Boinc resource share.

comment:4 Changed 16 years ago by davea

Resolution: fixed
Status: reopenedclosed

In the current client, debts are adjusted:

  • every minute if network is enabled
  • when a job finishes are becomes runnable
  • every hour in any case.

If you set <debt_debug/> in your cc_config, debt changes will be printed in the message log.

If you see behavior that's different from this, please post the message log.

comment:5 Changed 16 years ago by Richard Haselgrove

I still see no reason why the processing of debt values should change depending on whether networking is enabled or disabled. For example, it has just been announced that CPDN servers will be powered down this coming Tuesday, and may indeed be inaccessible for 36 hours from Monday night to Wednesday morning. CPDN recommends that networking be disabled under these circumstances.

So if I increase my cache to 3 days, and then disable networking, will task switching be all over the place, as it was with v5.8.16 last year? I'll test and report back.

comment:6 Changed 16 years ago by Richard Haselgrove

Confirmed - BOINC is currently operating as DA described the second time round, with continuous debt calculation while networking is enabled, and hourly/event driven recalculation when networking is disabled - 'event driven' seems to include cc_config reloads and manager startups, and possibly even user keyboard interaction, as well as the CPU rescheduling that David originally mentioned.

I still think that the decision not to recalculate even short-term debt while networking is suspended is a design defect (aka bug). Please review message 727884 in the SETI discussion I linked earlier, and in particular look at the graphs of unstable, positive-feedback type oscillation I've posted there.

comment:7 Changed 15 years ago by Richard Haselgrove

Code in changeset [17300] (18 Feb 2009, BOINC v6.6.9) should finally fix this problem!

Note: See TracTickets for help on using tickets.