A Lua script to check the health of Devuan Linux package mirrors. The master repo is at https://sledjhamr.org/cgit/apt-panopticon/ and the master issues tracker is at https://sledjhamr.org/mantisbt/project_page.php?project_id=13 https://sledjhamr.org/cgit/apt-panopticon/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
7.0 KiB

  1. <table>
  2. <tr>
  3. <th></th>
  4. <th class="TTitem">
  5. <div class="hoverWrapper0">
  6. FTP
  7. <div id="hoverShow0">
  8. <h1>FTP tests</h1>
  9. <p>The FTP tests have not been written yet.</p>
  10. </div>
  11. </div>
  12. </th>
  13. <th class="TTitem">
  14. <div class="hoverWrapper0">
  15. HTTP
  16. <div id="hoverShow0">
  17. <h1>HTTP tests</h1>
  18. <p>There are two styles of HTTP tests - actual HTTP downloads and HTTP HEAD tests. &nbsp;
  19. Actual downloads happen when other tests need the files to be downloaded. &nbsp;
  20. HEAD tests are where apt-panopticon probes things in detail. &nbsp;
  21. For each mirror (including the DNS round robin domain), and for each IP of that mirror -
  22. </p>
  23. <ul>
  24. <li>Chose a small collection of package files to test, and the Release files for each release.</li>
  25. <li>Send a HTTP HEAD request for each of those files.</li>
  26. <li>Carefully inspect and log the response.</li>
  27. <li>Retry the request if needed, and log that.</li>
  28. <li>If the mirror replies with a redirect to the same mirror, then try that and keep checking.</li>
  29. <li>If the mirror replies with a redirect to a different server, then probe that mirror the same way.</li>
  30. <li>If a redirect loop is detected, log that and give up.</li>
  31. </ul>
  32. </div>
  33. </div>
  34. </th>
  35. <th class="TTitem">
  36. <div class="hoverWrapper0">
  37. HTTPS
  38. <div id="hoverShow0">
  39. <h1>HTTPS tests</h1>
  40. <p>The HTTPS tests are very similar to the HTTP tests detailed above, though obviously they are tried with HTTPS requests instead of HTTP requests. &nbsp;
  41. The validity of the HTTPS certificate for each server is tested as well.
  42. </p>
  43. </div>
  44. </div>
  45. </th>
  46. <th class="TTitem">
  47. <div class="hoverWrapper0">
  48. RSYNC
  49. <div id="hoverShow0">
  50. <h1>RSYNC tests</h1>
  51. <p>The RSYNC tests have not been written yet.</p>
  52. </div>
  53. </div>
  54. </th>
  55. <th class="TTitem">
  56. <div class="hoverWrapper0">
  57. DNS round robin
  58. <div id="hoverShow0">
  59. <h1>DNS round robin</h1>
  60. <p>The "DNS round robin" column lists the IP addresses for each mirror that is part of the DNS round robin, or DNS-RR. &nbsp;
  61. The IPs are linked to the log for that specific IP when used via the DNS round robin, and is followed by the number of ERRORs, WARNINGs, or TIMEOUTs if any.
  62. </p>
  63. </div>
  64. </div>
  65. </th>
  66. <th class="TTitem">
  67. <div class="hoverWrapper0">
  68. Protocol
  69. <div id="hoverShow0">
  70. <h1>Protocol tests</h1>
  71. <p>The Protocol test will give a WARNING if the protocol is changed during a redirect, HTTP -> HTTPS for example. &nbsp;
  72. While apt HTTPS transport is now the default in Beowulf / Buster, not everyone with an older release will have that installed,
  73. so redirecting HTTP to HTTPS will break apt for those people. &nbsp;
  74. An ERROR is given instead if that happens for mirrors in the DNS round robin. &nbsp;
  75. Servers in the DNS round robin will not have the HTTPS certificate for the round robin domain, so redirecting to HTTPS for that is an ERROR.
  76. </p>
  77. </div>
  78. </div>
  79. </th>
  80. <th class="TTitem">
  81. <div class="hoverWrapper0">
  82. Redirects
  83. <div id="hoverShow0">
  84. <h1>Redirect tests</h1>
  85. <p>Mirrors that redirect /DEVUAN/ back out to deb.devuan.org is an ERROR. &nbsp;
  86. /DEBIAN-SECURITY/ packages must be redirected to a Debian mirror, specifically a mirror hosting Debian security updates. &nbsp;
  87. However, some Devuan mirrors might also be Debian mirrors, so this is just a WARNING.
  88. </p>
  89. </div>
  90. </div>
  91. </th>
  92. <th class="TTitem">
  93. <div class="hoverWrapper0">
  94. URL sanity
  95. <div id="hoverShow0">
  96. <h1>URL sanity tests</h1>
  97. <p>The URL sanity test replaces "/" in URLS with "///", to see if the mirror can cope with that. &nbsp;
  98. This might happen due to a minor mis-configuration by the apt user, but decent web servers should cope with that. &nbsp;
  99. The result for a mirror that does not cope is a failed download for that user, so this is an ERROR. &nbsp;
  100. We care about this coz apt has had multiple bugs in the past where they might let URLs like that slip through.
  101. </p>
  102. </div>
  103. </div>
  104. </th>
  105. <th class="TTitem">
  106. <div class="hoverWrapper0">
  107. Integrity
  108. <div id="hoverShow0">
  109. <h1>Integrity tests</h1>
  110. <p>Actually download files, then check things like PGP keys, SHA256 check sums, and file size. &nbsp;
  111. For packages, pick the smallest one that has been recently updated.
  112. </p>
  113. </div>
  114. </div>
  115. </th>
  116. <th class="TTitem" colspan='2'>
  117. <div class="hoverWrapper0">
  118. Updated
  119. <div id="hoverShow0">
  120. <h1>Updated tests</h1>
  121. <p>Make sure the Release files are up to date by checking their internal "Date" field. &nbsp;
  122. If they are up to date, download and check updated Packages.xz files, and actual packages. &nbsp;
  123. For actual packages, pick the smallest one that has been recently updated.
  124. </p>
  125. <p>Also shown is the mirrors scheduled time between updates, with "m" meaning minutes and "h" meaning hours. &nbsp;
  126. If this is showing a WARNING, it's likely that the mirror hasn't updated yet, but is due to update after this test was run.
  127. </p>
  128. <p>
  129. pkgmaster.devuan.org is the master that the other mirrors sync to, so it's untested.
  130. </p>
  131. </div>
  132. </div>
  133. </th>
  134. <th class="TTitem" colspan='2'>
  135. <div class="hoverWrapper0">
  136. Speed range
  137. <div id="hoverShow0">
  138. <h1>Speed range</h1>
  139. <p>The speed test tries to guess at a minimum and maximum speed range for each mirror. &nbsp;
  140. It does this by measuring the reported speeds from the curl commands that actually download files. &nbsp;
  141. Since apt-panopticon is trying hard to download everything from all mirrors all at the same time, this guess will be low. &nbsp;
  142. Also, the computer running the apt-panopticon might have a network connection that is busy with other things. &nbsp;
  143. Not to mention that obviously if the computer this is running on is one of the mirrors, it might get a wildly exaggerated speed,
  144. not having to go through the rest of the Internet tends to help. &nbsp;
  145. Finally, the tested mirror may have a bigger network connection than the computer running the test, so wont show it's true maximum. &nbsp;
  146. So take this speed measurement with a grain of salt, it's more of an indication, the <a href="../apt-panopticon_cgp/index.php">full graphs</a> might be more useful.
  147. </p>
  148. </div>
  149. </div>
  150. </th>
  151. <th class="TTitem" colspan='2'>
  152. <div class="hoverWrapper0">
  153. Weekly statistics
  154. <div id="hoverShow0">
  155. <h1>Weekly statistics</h1>
  156. <p>This is the percentage of time, over the last week, that the mirror was up, and the percentage of time the mirror was up to date. &nbsp;
  157. Note that if the mirror has a low uptime, then there wasn't much chance to check if it was up to date.
  158. </p>
  159. </div>
  160. </div>
  161. </th>
  162. </tr>