Feature #15750

Help people who download from a broken mirror

Added by sajolida 2018-07-26 16:58:52 . Updated 2020-04-14 15:26:48 .

Status:
Confirmed
Priority:
Normal
Assignee:
Category:
Installation
Target version:
Start date:
2018-07-29
Due date:
% Done:

33%

Feature Branch:
Type of work:
Research
Blueprint:

Starter:
Affected tool:
Installation Assistant
Deliverable for:

Description

Even if people don’t really complain about it we quite often have some broken mirror in our pool for several hours and each time that probably represent dozen of affected users.

We could maybe be more useful to these users by either:

  • Automatically checking that the mirror is responsive before initiating the download. Could this be done with some JS in mirror-dispatcher.js?
  • Providing a link to a different mirror after the user clicked on the “Download Tails” button as a way of trying again.

As a consequence, that would also help us relax when maintaining the mirror pool.

With data from March 2019, we had ~3000 clicks on “Download” each day and ~40 mirrors. That’s 75 failed downloads for 1 day of downtime per mirror.


Subtasks

Feature #15754: Add a link to try download from another mirror Resolved

0

Feature #15755: Test the download mirror before using it on the download page Confirmed

0

Feature #17615: Make the Upgrader work its way around broken mirrors Confirmed

0


Related issues

Related to Tails - Feature #16143: Clean up mirror-dispatcher.js Confirmed 2018-11-19

History

#1 Updated by sajolida 2018-07-26 17:02:29

  • Description updated
  • Assignee set to intrigeri
  • QA Check set to Info Needed

intrigeri: as the author of mirror-dispatcher.js, how complicated do you think it would be to check that the mirror is working before dispatching it?

For example, could the client check that the trace (https://mirrors.edge.kernel.org/tails/project/trace) can be retrieved without error before replacing the mirror URL on the page?

#2 Updated by intrigeri 2018-07-27 08:31:42

  • Assignee changed from intrigeri to sajolida

> intrigeri: as the author of mirror-dispatcher.js,

FTR Ulrike is the primary author of that code.

> how complicated do you think it would be to check that the mirror is working before dispatching it?

> For example, could the client check that the trace (https://mirrors.edge.kernel.org/tails/project/trace) can be retrieved without error before replacing the mirror URL on the page?

I think it should be a simple matter of programming™. Only issues I foresee:

  • This code is also run from Tails Upgrader so care will need to be taken not to break that (e.g. the Upgrader will need to ensure the JS code uses Tor to check the mirror).
  • Semantics will change a bit but the current design does not seem totally adverse to that.

#3 Updated by sajolida 2018-08-06 18:45:44

  • Assignee deleted (sajolida)
  • QA Check deleted (Info Needed)

#4 Updated by Anonymous 2018-08-07 14:33:12

sajolida wrote:

> For example, could the client check that the trace (https://mirrors.edge.kernel.org/tails/project/trace) can be retrieved without error before replacing the mirror URL on the page?

That seems like a good idea. As intrigeri said though, this must not break the Upgrader.

#5 Updated by Anonymous 2018-08-07 14:33:54

  • Assignee deleted (None)

I’m interested in looking into this → not before the summit though.

#6 Updated by Anonymous 2018-08-16 10:29:12

  • Target version set to Tails_3.11

#7 Updated by Anonymous 2018-11-19 15:00:32

#8 Updated by CyrilBrulebois 2018-12-16 14:04:43

  • Target version changed from Tails_3.11 to Tails_3.12

#9 Updated by anonym 2019-01-30 11:59:32

  • Target version changed from Tails_3.12 to Tails_3.13

#10 Updated by Anonymous 2019-03-18 15:51:48

  • Target version changed from Tails_3.13 to Tails_3.15

I’m still interested in doing that but not right now. Feel free to steal this ticket from me.

#11 Updated by sajolida 2019-06-19 09:54:46

  • Description updated

#12 Updated by sajolida 2019-06-19 09:58:30

  • Assignee deleted ()
  • Target version deleted (Tails_3.15)

@u: Based on the discussion here I’m assigning Feature #15755 to you instead which is the ticket about the cooooode. I’m assigned alraedy assigned to Feature #15754 which could be a workaround until then.