Change Log 5.9.11

From BOINC Wiki
Jump to: navigation, search

Change Log 5.9.11, May 11, 2007

  • client: improve error message when can't link app version
  • GUI RPC: add new element d_boinc to DISK_USAGE; tells how much disk space BOINC is using (not including projects).
  • Mac: Refresh Disk Usage pane only on every 10th call to reduce CPU overhead, but refresh once per second the first 3 times to work around a bug drawing the legends. (Also included in 5.9.10 Mac release, added to boinc_core_release_5_9_10 tag.)
  • Finally fixed a long-standing bug which caused the PieCtrl legend to be clipped to a small rectangle when first drawn on Macs. If the legend changed so it required more space, this bug would also clip to the former size the first time it was updated. This problem did not occur on Windows.
NOTE: I currently can't build on Windows or Linux, so please verify that my modified code works OK on those platforms.
  • Mac: removed the hack which refreshed once a second the first 3 times to work around this bug.
  • A better fix for Mac PieCtrl legend clipping bug: wxPieCtrl::Refresh() calls new wxPieCtrlLegend::MeasureText() method to caclulate size of the legend area and SetSize() of legend window before OnPaint() is called. Apparently, calling SetSize() from within the OnPaint() function doesn't adjust the "invalid" area to be repainted until a return to the event loop, so the added area didn't get painted until the next OnPaint() call. Also, the wxMemoryDC bitmap was being created at the smaller size, so that was also clipping the drawing.
  • Mac: include size of BOINC Manager bundle in BOINC total disk usage displayed in Disk Usage pane Pie Chart.
  • Possible fix for a crashing condition when the manager is shutdown from the system tray icon.
  • client simulator: make it compile on Win
  • client: parse version_num in active_task to avoid spurious error msg
  • fixes SVN ticket #164: Aborting a Task
  • client: add constructor/destructor for APP_VERSION, WORKUNIT, RESULT
  • client: with anonymous platform, don't link app version twice
  • Account manager:
• if an account is detach_when_done, set dont_request_more_work
• check done_request_more_work even for first-time projects
  • boinc_cmd: add --network_available and --get_cc_status options
  • client: fix big that caused duplicate app versions to appear in state file (this was harmless, BTW)
  • Fix a build break in the manager.
  • One more rework of Mac PieCtrl following Frank Weiler's suggestions.
Eliminated wxPieCtrlLegend class completely, integrated legend drawing into the PieCtrl class itself, greatly simplifying it.
  • Mac only: create CViewResources::GetViewRefreshRate() to update PieCtrl only every 10 seconds to reduce CPU overhead instead of doing it with a counter in CViewResources::OnListRender().
  • 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.
  • MGR: show (in Project/status) if a sched RPC is in progress
  • Change the 'ProductName' in the resource structures to 'BOINC client' instead of 'BOINC core client'
  • client: in statefile read, set avp->platform before linking.
  • 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: 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: 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.
• 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.
  • MGR: Increase the connection timeout to one minute to account for slow machines during boot-up.
  • client: change Win program launch to suppress hourglass cursor
  • client simulator: add --cpu_sched_rr_only and --dual_dcf options