Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #29180

Closed (moved)
Open
Opened Jan 25, 2019 by Mark Smith@mcs

MAR download stalls when about dialog is opened

In #28885 (moved), Georg encountered a bug that causes the browser update to stall. Here are the steps that Kathy and I used to reproduce it:

  1. Start a clean copy of Tor Browser 8.5a5 on a 64-bit Linux system.
  2. Set app.update.auto to false and app.update.log to true.
  3. Open the about dialog and click "Update to 8.5a6" to begin downloading the MAR file.
  4. Quickly close and reopen the about dialog. The download will stall and not make any further progress.

The following was logged to the browser console: AUS:SVC UpdateService:downloadUpdate - no support for downloading more than one update at a time

This problem is fallout from the fact that when the about dialog is opened, the browser cancels the download and starts a new one. Here is the code from the startDownload() function inside browser/base/content/aboutDialog-appUpdater.js: ... this.aus.pauseDownload(); let state = this.aus.downloadUpdate(this.update, false); ...

Looking at the code in toolkit/mozapps/update/nsUpdateService.js, we see that pauseDownload() cancels the first download via nsIRequest.cancel(), which does not take effect immediately. Cleanup of the Downloader occurs inside an onStopRequest() listener and that entire process is asynchronous.

One possible fix is to not pause and restart the download when the about dialog is opened. Kathy and I do not yet know if that would introduce other problems.

To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#29180