On Monday, 16 December 2019 at 11:04:38 UTC, Sönke Ludwig wrote:
As you may have already noticed, the main registry server,
code.dlang.org got unreachable yesterday. This was caused by an
old VPS of mine getting terminated. The registry had already
moved to a different server years ago, but, without me
realizing it, the DNS entry still pointed to the old one, with
a "temporary" HTTP proxy forwarding to the new server being set
up.
By now the DNS entry has been corrected, an up-to-date TLS
certificate is in place, and the registry is running stable.
There are still reports of people not being able to access
code.dlang.org, which is apparently caused by intermediate DNS
servers still reporting the old IP address and should start
working during the next few hours. A temporary workaround is to
specify --registry=http://31.15.67.41/ on the dub command line.
Unfortunately both fallback servers have been down for a while
now, so that this resulted in a total blackout. I plan to move
the main registry to a powerful dedicated server in January,
which will fix all memory resource related issues that
sometimes show up, and could then keep the current VPS as a
relatively reliable fallback server. Both together should
guarantee virtually 100% uptime, although more fallback servers
are of course highly desirable.
In addition to that, I plan to separate the repository polling
process form the web and REST frontend, as the former appears
to be the main cause for failures (a GC memory leak of some
kind and a possibly codegen related crash when being compiled
with DMD being the two known issues, which both need further
investigation).
Hi Sonke,
Thanks a lot for taking care of the issues so quickly and taking
actions.
I was a bit sad yesterday not being able to upgrade, but now the
new registry server is a lot faster here! It makes browsing the
registry a pleasure.
---------------
For all future readers, here is something you can do in case of
DUB failure.
What to do if the DUB registry is down:
- Checkout all dependencies manually.
$ git clone https://hosting.com/mydep.git mydep
$ cd mydep
$ git checkout <desired-tag>
- Add those dependencies as local packages:
$ dub add-local .
$ cd ..
- Build your project normally. The local packages should override
the online packages.
$ dub build
---------------