Hi Ariel,

Ariel Machado wrote:
> Do we have an alternative download mirror or an ETA for cgit access to be
> available again?

First let me answer that question.  I don't want to say that the
attack has been mitigated.  It's still in process.  But we do have the
CGIT interface online again.  It's going to be slower because the
attack is still hammering away at it.  But it seems sufficiently
acceptable with some patience.  Hopefully that will continue.

And so your CI builds should be back online again now.

> Our CI builds rely on Conan recipes that reference the git project to
> download source of package dependencies, in this case gnu-config:
> https://github.com/conan-io/conan-center-index/blob/master/recipes/gnu-config/all/conandata.yml

First let me say that though I sysadmin this system that I did not set
this system up.  Savannah is a resource that I have been honored to
maintain for my time maintaining it.  It was here before me.  At some
point I am hoping it will be here after I have gone.  I just have the
keys for it for this time.  Hopefully others will feel the same that
it is a sacred duty to maintain and to leave Savannah in better shape
than it was found.

I am not saying this following to make an official statement that
things must be one way or must be another way.  Just that as a
practical matter I am trying my best to keep the system running and
some kinds of things make it harder and harder.  And as such there are
things that help and there are things that hinder.

Having said all of that if it were me I would never have enabled that
feature of cgit of providing tar.gz files of git commit hashes.  It's
okay for one-off types of human activities.  And cgit I am sure was
created to improve upon gitweb and to provide a nicer human browsing
experience.  If it were only humans browsing then it would be fine.

But the feature itself exists and therefore people have written in the
use of it into automated processes.  Once we get automated processes
involved that changes the calculus significantly!  It can keep up with
humans using it but it can't keep up with other machines using it.  I
think this feature must eventually be removed.  I am not in a hurry to
remove it.  But as use of these types of uses increases it becomes
intolerable because it focuses compute effort upon the cgit server and
that does not scale.  It creates increasing work on the cgit server as
all of the many of the herd thunder along building and asking the cgit
server to do more and more work for them.  It will become increasingly
impossible for one centralized server to serve the larger and ever
increasing herd of users asking it to do more work.

Philosophically I think things must be designed to scale-out where the
workload is distributed among the herd of systems building the
software.  As more systems build the work must be distributed among
the machines doing the building.  If as more systems build it creates
more work on the upstream centralized cgit server than that becomes
unsustainable at some point.  Instead things must distribute the work.

> This recipe attempts to download by getting
> "http://git.savannah.gnu.org/cgit/config.git/snapshot/config-191bcb948f7191c36eefe634336f5fc5c0c4c2be.tar.gz";

Fortunately this is a small file bundle and the files in it are
relatively small making this one of the more lightweight hits on the
system.  It's fine.

But as this type of process expands to more projects and is used
other places then it is heavier on heavier projects.  Let's say that
this was happening for the Emacs project or another of the heavier
ones.  Doing an emacs checkout and tar up of a git hash to distribute
such a tar file then becomes a heavy workload upon the server.

The way I have set up CI/CD servers in the past always includes a
local mirror of all remote git repositories.  Then the CI/CD servers
pull from the local mirror to the build systems.  That way the CI/CD
had a reliable LAN path to the local mirror and everything is
self-contained at that point.  That way the git mirroring could fail
due to Internet glitches and upstream glitches and the local CI/CD
build was unaffected by it.

The mirror can be updated upon upstream commit event by notification.
That way as soon as a push event happens upstream the downstream
mirrors can pull the change and then kick off an automated build.
Personally I have used email but Corwin uses a UDP notification which
is fancier and very light weight.

Bob

  • ... Bob Proulx
    • ... Carlo Wood via Discussion of savannah-announce and any user-oriented topic
      • ... Bob Proulx
        • ... Carlo Wood via Discussion of savannah-announce and any user-oriented topic
          • ... Bob Proulx
    • ... Ariel Machado
      • ... Bob Proulx
        • ... David Pirotte
          • ... Bob Proulx

Reply via email to