savannah-hackers-public
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers-public] Diagnosing Problematic mirrors


From: Assaf Gordon
Subject: [Savannah-hackers-public] Diagnosing Problematic mirrors
Date: Fri, 3 Nov 2017 14:38:18 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

Hi,

This is in relation to:
 "fxt-0.3.4 didn't get propagated on all mirrors"
 https://savannah.gnu.org/support/?109408
 https://lists.gnu.org/archive/html/savannah-hackers/2017-11/msg00004.html

Symptom:
Requesting this URL:
  http://download.savannah.nongnu.org/releases/fkt/fxt-0.3.4.tar.gz

Redirects to some mirrors where the file is missing, e.g:
   http://mirror6.layerjet.com/nongnu/fkt/fxt-0.3.4.tar.gz

I don't have a solution yet, but here are some steps to diagnose where the problem is:


Step 1: Check time stamps
=========================
On the primary GNU server, this is the non-gnu time stamp:

  $ curl https://download-mirror.savannah.gnu.org/releases/00_TIME.txt
  1509739201
  Fri Nov  3 20:00:01 UTC 2017

NOTE:
If you request the timestamp from "download.savannah.gnu.org",
you'll be redirected to a mirror... so download it from "download-mirror" (which serves files directly from the gnu/savannah server).



Step 2: Check timestamps on mirrors
===================================

Now let's check the time stamps on the mirrors.
The propagation of this file (00_TIME.txt) is used by savannah's mirmon
to check the validate of the mirrors.


Download the (non-gnu) mirror list:

  wget https://download-mirror.savannah.gnu.org/releases/00_MIRRORS.txt

And check the time stamp on each:

  $ for i in $(awk '/http/ { print $3}' 00_MIRRORS.txt) ; do \
      A=${i#*//}; B=${A%%/*}; \
      printf "%-40s" "$B" ; \
      curl -s $i/00_TIME.txt | tail -n1 ; \
    done
  mirror.csclub.uwaterloo.ca              Fri Nov  3 16:00:01 UTC 2017
  babyname.tips                           Thu Nov  2 21:30:01 UTC 2017
  mirror.netcologne.de                    Fri Nov  3 15:30:01 UTC 2017
  ftp.cc.uoc.gr                           Thu Nov  2 21:00:01 UTC 2017
  mirror.infotronik.hu                    Fri Nov  3 10:45:01 UTC 2017
  mirror1.hostiran.ir                     Fri Nov  3 14:30:01 UTC 2017
  download-mirror.savannah.gnu.org        Fri Nov  3 20:15:01 UTC 2017
  nongnu.askapache.com                    Fri Nov  3 20:00:01 UTC 2017
  savannah.c3sl.ufpr.br                   Fri Nov  3 18:45:01 UTC 2017
  mirror.lihnidos.org                     Fri Nov  3 13:00:01 UTC 2017
  mirrors.up.pt                           Fri Nov  3 19:45:01 UTC 2017
  mirrors.up.pt                           Fri Nov  3 19:45:01 UTC 2017
  nongnu.uib.no                           Fri Nov  3 08:30:01 UTC 2017
  mirror.rackdc.com                       Thu Nov  2 22:00:01 UTC 2017
  ftp.igh.cnrs.fr                         Fri Nov  3 19:30:01 UTC 2017
  savannah.spinellicreations.com          Fri Nov  3 04:30:01 UTC 2017
  gnu.mirrors.pair.com                    Fri Nov  3 08:45:01 UTC 2017
  www.mirrorservice.org                   Fri Nov  3 19:15:01 UTC 2017
  savannah-nongnu-org.ip-connect.vn.ua    Fri Nov  3 14:45:01 UTC 2017
  mirror.cedia.org.ec                     Fri Nov  3 18:15:01 UTC 2017
  ftp.yzu.edu.tw                          Fri Nov  3 13:15:01 UTC 2017
  mirror6.layerjet.com                    Fri Nov  3 15:30:01 UTC 2017
  mirror.easyname.at                      Fri Nov  3 01:00:01 UTC 2017
  mirror2.klaus-uwe.me                    Fri Nov  3 20:00:01 UTC 2017
  ftp.acc.umu.se                          Fri Nov  3 05:00:01 UTC 2017
  mirror.freedif.org                      </body></html>
  www.namesdir.com                        Thu Nov  2 20:30:01 UTC 2017


Seems like most mirrors have a recent time stamp, including the offending "mirror6.layerjet.com".
This is why savannah's mirmon indicates they are up to date.

(mirror.freedif.org is broken, and it is detected as such on
the mirmon page, http://download.savannah.gnu.org/mirmon/savannah/#vn ).



Step 3: Check the missing file
==============================

  $ for i in $(awk '/http/ { print $3}' 00_MIRRORS.txt) ; do \
       A=${i#*//}; B=${A%%/*}; \
       printf "%-40s" "$B" ; \
       curl -I -s $i/fkt/fxt-0.3.4.tar.gz | head -n1 ; \
   done
  mirror.csclub.uwaterloo.ca              HTTP/1.1 200 OK
  babyname.tips                           HTTP/1.1 200 OK
  mirror.netcologne.de                    HTTP/1.1 200 OK
  ftp.cc.uoc.gr                           HTTP/1.1 200 OK
  mirror.infotronik.hu                    HTTP/1.1 200 OK
  mirror1.hostiran.ir                     HTTP/1.1 200 OK
  download-mirror.savannah.gnu.org        HTTP/1.1 200 OK
  nongnu.askapache.com                    HTTP/1.1 200 OK
  savannah.c3sl.ufpr.br                   HTTP/1.1 200 OK
  mirror.lihnidos.org                     HTTP/1.1 200 OK
  mirrors.up.pt                           HTTP/1.1 200 OK
  mirrors.up.pt                           HTTP/1.1 200 OK
  nongnu.uib.no                           HTTP/1.1 200 OK
  mirror.rackdc.com                       HTTP/1.1 200 OK
  ftp.igh.cnrs.fr                         HTTP/1.1 200 OK
  savannah.spinellicreations.com          HTTP/1.1 200 OK
  gnu.mirrors.pair.com                    HTTP/1.1 200 OK
  www.mirrorservice.org                   HTTP/1.1 200 OK
  savannah-nongnu-org.ip-connect.vn.ua    HTTP/1.1 200 OK
  mirror.cedia.org.ec                     HTTP/1.1 200 OK
  ftp.yzu.edu.tw                          HTTP/1.1 200 OK
  mirror6.layerjet.com                    HTTP/1.1 404 Not Found
  mirror.easyname.at                      HTTP/1.1 200 OK
  mirror2.klaus-uwe.me                    HTTP/1.1 200 OK
  ftp.acc.umu.se                          HTTP/1.1 200 OK
  mirror.freedif.org                      HTTP/1.1 404 Not Found
  www.namesdir.com                        HTTP/1.1 200 OK

So it seems that even though the timestamp file was sync'd,
some files are not (at least on "mirror6.layerjet.com".

The file "/fkt/fxt-0.3.4.tar.gz" was uploaded on 03-Aug-2017.

We cant check also with a more recent file (this sed
file was uploaded by me on 29-Oct-2017):

  $ for i in $(awk '/http/ { print $3}' 00_MIRRORS.txt) ; do\
         A=${i#*//}; B=${A%%/*}; \
         printf "%-40s" "$B" ; \
         curl -I -s $i/sed/sed-4.4.89-490b.tar.xz | head -n1 ; \
    done
  mirror.csclub.uwaterloo.ca              HTTP/1.1 200 OK
  babyname.tips                           HTTP/1.1 200 OK
  mirror.netcologne.de                    HTTP/1.1 200 OK
  ftp.cc.uoc.gr                           HTTP/1.1 200 OK
  mirror.infotronik.hu                    HTTP/1.1 200 OK
  mirror1.hostiran.ir                     HTTP/1.1 200 OK
  download-mirror.savannah.gnu.org        HTTP/1.1 200 OK
  nongnu.askapache.com                    HTTP/1.1 200 OK
  savannah.c3sl.ufpr.br                   HTTP/1.1 200 OK
  mirror.lihnidos.org                     HTTP/1.1 200 OK
  mirrors.up.pt                           HTTP/1.1 200 OK
  mirrors.up.pt                           HTTP/1.1 200 OK
  nongnu.uib.no                           HTTP/1.1 200 OK
  mirror.rackdc.com                       HTTP/1.1 200 OK
  ftp.igh.cnrs.fr                         HTTP/1.1 200 OK
  savannah.spinellicreations.com          HTTP/1.1 200 OK
  gnu.mirrors.pair.com                    HTTP/1.1 200 OK
  www.mirrorservice.org                   HTTP/1.1 200 OK
  savannah-nongnu-org.ip-connect.vn.ua    HTTP/1.1 200 OK
  mirror.cedia.org.ec                     HTTP/1.1 200 OK
  ftp.yzu.edu.tw                          HTTP/1.1 200 OK
  mirror6.layerjet.com                    HTTP/1.1 404 Not Found
  mirror.easyname.at                      HTTP/1.1 200 OK
  mirror2.klaus-uwe.me                    HTTP/1.1 200 OK
  ftp.acc.umu.se                          HTTP/1.1 200 OK
  mirror.freedif.org                      HTTP/1.1 404 Not Found
  www.namesdir.com                        HTTP/1.1 200 OK






Step 4: mirroring source
========================

The official mirroring instructions are here:
   https://www.gnu.org/server/mirror.html

The recommended mirroring command is:
(Scroll down to "Mirroring nongnu releases from Savannah" section).

    rsync -rltpHS --delete-excluded \
        rsync://dl.sv.gnu.org/releases/ /your/dir

The problematic file is certainly there:

  $ rsync -rltpHS --delete-excluded  \
         rsync://dl.sv.gnu.org/releases/fkt/ | grep "0\.3"
  -rw-rw-r--      1,088,432 2014/08/18 06:06:38 fxt-0.3.0.tar.gz
  -rw-rw-r--      1,095,022 2015/03/06 02:37:13 fxt-0.3.1.tar.gz
  -rw-rw-r--      1,121,530 2016/10/17 09:37:05 fxt-0.3.2.tar.gz
  -rw-rw-r--      1,122,946 2017/03/22 11:38:06 fxt-0.3.3.tar.gz
  -rw-rw-r--      1,123,143 2017/08/03 09:00:29 fxt-0.3.4.tar.gz

So if the mirror's operator are running this command as-is,
the should be getting the file, and it should "just work".

================

One thing I notice is that this specific mirror ("mirror6.layerjet.com" from france) was recently finicky, as indicated by the mirmon stats:
  http://download.savannah.gnu.org/mirmon/savannah/#fr

Perhaps they had some intermittent problems,
and their synchronization is broken?


We can contact them and alert them to this issue,
or temporarily drop them from the list.


What do you think ?

regards,
 - assaf


P.S.
In the examples above I checked on http mirrors,
but I repeated it with ftp mirrors as well.
Only "mirror6.layerjet.com" seems to be missing this file.












reply via email to

[Prev in Thread] Current Thread [Next in Thread]