Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Component/s: CVS repository
-
Labels:None
Description
From Sourceforge:
Over the past few weeks we have noticed a number of performance issues
with the server hosting anonymous CVS for your project. These issues
have been tracked down to excessive pserver usage for access to your
project's content. We are taking immediate action to reduce end-user
impact by disabling access to your pserver CVS repository.
Please advise:
1. Are you aware of anything that may be causing excessive load
(auto-updater using CVS, etc.)
2. Is there anything you can do to immediately mitigate the impact of #1
so that we can restore function to your project?
Thank you
Issue Links
| This issue has a non-specific relationship to: | ||||
| MDLSITE-195 | Set up new master server with the same accounts and features as we were using at Sourceforge |
|
|
|
| MDLSITE-192 | Move development CVS away from Sourceforge |
|
|
|
Activity
- All
- Comments
- History
- Activity
- Source
- Test Sessions
Yes, indeed time to bring back all the old plans.
I'll ask them about their stats - that would indeed be useful.
Running a mirror is a lot easier than it used to be, because Sourceforge now support rsync mirroring of the repository:
rsync -av rsync://moodle.cvs.sourceforge.net/cvsroot/moodle/moodle .
rsync -av rsync://moodle.cvs.sourceforge.net/cvsroot/moodle/contrib .
rsync -av rsync://moodle.cvs.sourceforge.net/cvsroot/moodle/mysql .
rsync -av rsync://moodle.cvs.sourceforge.net/cvsroot/moodle/lang .
We just need to have some organisations committing to providing a 99.99% uptime server with frequent rsync updates (every 15 minutes, say). Perhaps we can start with some good documentation that we can point to:
I'd say running rsync every 15 minutes is a bit too much. I'd bet there's hardly anyone that needs anonymous access with less than 60 minutes replication interval.
Otherwise the master server can get quite busy every 15 minutes when the slaves try to sync their copies (I know the Moodle CVS is not that big, but there's a lot of hashing and checksumming going on while rsync tries to compute the differences).
Saludos. Iñaki.
Actually, because of OS caching I usually find subsequent rsync runs to be very fast, but these are certainly details I hope Sourceforge will help us work out.
Sourceforge are starting deeper research into this, but it may take a while. Meanwhile the server will stay disabled for us.
He said they were seeing up to 130 concurrent cvs processes at once and that this doesn't sound like normal usage. It's possible someone somewhere has a rampant automatic process running. I don't think it's moodle.org because all ours run access the CVS under my development account.
I hope it's not a malicious DOS from someone.
I've asked for raw logs so we can help them with the research.
I'm pretty sure it's not our git import. iirc that only runs once at 6am every day (NZ time) and I'm pretty sure it's running as Martin's dev account anyway, not anon.
My proposal:
- The SourceForge CVS Server will be used just by people with developer accounts.
- We will accept proposals of mirroring, having a server at Moodle that takes the data from SourceForge every 15/30/60 minutes. The Moodle server will serve the mirrors. Every mirror will have an account in to Moodle server in order to rsync.
- To ensure the correctness of the version in every mirror, we will post in Moodle a MD5 or SHA1 of the sum of all files so automatic check can be done.
- The SourceForge CVS Server will be used just by people with developer accounts.
- We will accept proposals of mirroring, having a server at Moodle that takes the data from SourceForge every 15/30/60 minutes. The Moodle server will serve the mirrors. Every mirror will have an account in to Moodle server in order to rsync.
- To ensure the correctness of the version in every mirror, we will post in Moodle a MD5 or SHA1 of the sum of all files so automatic check can be done.
I've sync with moodle cvs once a day through anon acount for more than a half year. The client IP is 61.167.60.4. I just stopped it a moment ago.
I do so because I want to merge the lastest change to our special moodle package for Chinese.
Hope this message can help you a little.
That's pretty much what we're working on, David, except:
1) The intermediate server is not necessary since anyone can rsync from sourceforge directly.
2) Rsync takes care of those checksums automatically.
Thanks, Sunner! That doesn't sound extreme by itself ... but I wonder how many people are doing the same thing. ![]()
MartinD - we have a server @ the planet where we can offer anon cvs from. It is the eduforge.org server. Just tell me and we'll set it up. Today I'm on freenode #moodle as I don't have skype on my laptop :-/
until more anon cvs mirrors arrive, I can help too (if needed) with one server here @ Europe. It's used only by me and some friends and temporarily we can use it. No problem with that. It's plenty of CPU/disk/transfer.
I'm pretty sure that some institutions will help soon, but until then... it can be used, absolutely. Just say yes and I'll start syncing the stuff (hourly is ok?)
Ciao ![]()
I'm happy to report we have been able to provided a dedicated server to this cause. Its all setup, i'd just like people to test that its functioning correctly ![]()
I've set it up to look the same as the sf mirror. Unfortunately we have some dns delays so ip will have to be used for the time being.
Login to the CVS server with;
cvs -d:pserver:anonymous@212.219.207.22:/cvsroot/moodle login
To checkout moodle:
cvs -z3 -d:pserver:anonymous@212.219.207.22:/cvsroot/moodle co moodle
Or contrib:
cvs -z3 -d:pserver:anonymous@212.219.207.22:/cvsroot/moodle co contrib
(etc)
It should be updating every 10mins - please test!
Bloody brilliant, Dan! Working great.
How long is the rsync taking? 10 minutes might be a bit short, especially if the rsync takes longer than ten minutes. 30 minutes or even an hour should be fine.
About the names, I was planning to set up moodle.org aliases for each official mirror:
uk.cvs.moodle.org (I've actually already pointed this to your server as a test and it works fine)
uk2.cvs.moodle.org
us.cvs.moodle.org
us2.cvs.moodle.org
Does that sound OK? If anyone has a better naming scheme please let me know right away! These things are hard to change later!
Its taking about 2mins at present (but thats with no changes happening).
Can I just say a huge thanks to all who have jumped to the rescue with offers of servers, brilliant work. I just checked out the latest stable as a test in under 30 seconds, wow, SF used to take up to 10 mins, then I suppose there are not many using this yet and I am also in the UK. Can I ask if the "cvs update -dp" will be implemented too. Its nice to see all able hands to the pump in a time like this. The mirror naming sounds perfect to me too.
I've updated http://docs.moodle.org/en/CVS_for_Administrators with details of the first mirror. Thanks CLEO and LUNS!
One great thing Dan did was to keep the paths the same as Sourceforge. I think all the mirrors should do that too.
Martin L it would be great if you run another one in the US. Moodlerooms offered one there too. Eloy, I hope we won't need to use your personal server.
The more we have the lower the load for everyone!
Not really had a great amount of load so far
8 different users, which makes me wonder what was happening with sf.net
I've sent this to the helpdesk at moodle.com too, but just in case I wanted to say that I've setup a new mirror at:
:pserver:anonymous@193.146.78.18:/cvsroot/moodle
It's provided by Mondragon Unibertsitatea and located in the Basque Country (Spain, Europe).
Saludos. Iñaki.
Great Iñaki!
I hope Martin will "alias" that in xx.cvs.moodle.org (DNS) soon. Perfect!
FYI: I contacted with Rediris (http://rediris.es) 2 days ago. They answered they were analysing how they could add a moodle cvs mirror to their "forge" (https://forja.rediris.es/). I hope they will collaborate.
- although I don't know if the "standard" path (/cvsroot/moodle) will be respected.
Ciao ![]()
Eloy, the standard path shouldn't be a problem. forja.rediris.es is using GForge (like the machine I've setup) which is a derivative of earlier Sourceforge code versions, and that's the standard path for CVS repositories ![]()
Saludos. Iñaki.
Great to know that!
Then, I hope they will!
Sweeeet, abrazos, ciao, Eloy ![]()
Awesome Iñaki! Done! I chose es.cvs.moodle.org - I hope this will be OK.
I've started the process here @ Lincoln to get approval for some space on one of our VM's - may take a week or so to get final approval though....
![]()
Dan
We plan to upgrade the server that hosts the CVS mirror from Debian Sarge to Etch in a couple of weeks. This means some downtime (4-6 hours or so). I don't think much people are using our mirror (will check the logs just to make sure).
But the question is: how should we advertise these planned outages so people can know them in advance?
Saludos. Iñaki.
Iñaki: Beware of Etch... http://moodle.org/mod/forum/discuss.php?d=71497 ![]()
Hi Martin L,
thanks for the head up! This machine is not running a production Moodle site (just the local free software group). I'm much more worried about the Gforge installation running there. ![]()
Saludos. Iñaki.
I've just made a mailing list on Sourceforge called moodle-outage where people can subscribe to get email about outage of any Moodle sites, including CVS mirrors. It'll take a while to appear.
https://sourceforge.net/mail/?group_id=30935
Once it does we should include that information on the CVS Mirrors page: http://docs.moodle.org/en/CVS_for_Administrators
I think i've found our CVS abuse culprit. I've just had a quick count of the the CVS connection logs on our server.
Most IP addresses connecting < 100 times, then a netblock which seems to be the source of the unusual connection.
2 216.10.74.43
50 216.10.74.40
114 216.10.74.36
401 216.10.74.35
7706 216.10.74.38
71665 216.10.74.46
Those ~80,000 connections strike me as slightly unusual ![]()
After some research at the ARIN WHOIS Database, I found that the range 216.10.64.0 - 216.10.79.255 is from Forona Technologies, Inc (http://www.forona.com) And more concretely, the range 216.10.74.32 - 216.10.74.63 from which we have those connections is from ohloh (http://www.ohloh.net) which is an Open Source Directory. We should get in contact with them as soon as possible.
Aha, excellent work, Dan (and Dave). ohloh.net, that makes sense (they generate very cool stats of our project, among others).
http://www.ohloh.net/projects/25
I've posted on the ohloh.net forums: http://www.ohloh.net/forums/8/topics/347
Excellent catch! I had done a reverse lookup, but never made the connection between Forona and Ohloh. These guys should have an rsync update and run cvsps (or whatever it is they use) locally.
Started some work on Eduforge yesterday but wasn't very productive. Will keep ppl posted...
Martin - let me know what I can do to help, I'm going to be working tomorrow with various things and could probably add some eduforge stuff to my list.
Yeah thanks David I also didn't make the Ohloh connection.
By my calculations they are connecting approx once every 30 seconds for the last month on average.. which seems a little bit excessive, even if doing the initial pull!
Dan, keep your stats and check them in a week or so to see if they keep punching your cvs, because the initial pull should be finished by now.
In the last ~30 hours:
18868 216.10.74.36
Presumably thats the contrib pull - I really dont think they should be incrementally pulling every commit..
The log is connnection log from the cvsd, usally one per 'action'.
Dan, has it settled down now? http://www.ohloh.net/forums/8/topics/347
Its been fine since yesterday, i'll update after a few more days.
Migration to Eduforge of authenticated CVS for developers is tracked at MDLSITE-195 ...
CVS usage is now at completely normal usage patterns from what I can see.
By the way, I don't know what other mirrors are seeing, but we have 5-10 daily accesses or so.
Saludos. Iñaki.
Yep, my logs show 50-200 daily connections from 5-15 different IPs. I guess that, once SF will be 100% out more people will arrive to mirrors (more if we deny anon access to the new developer server).
Ciao ![]()
btw, I have been getting this since yesterday when I do anonymous CVS update for MOODLE18_STABLE branch on eu.cvs.moodle.org
anonymous CVS update for HEAD is working fine.
Here is the error message:
In C:\amp\moodle\moodle18p\moodle: "C:\Program Files\TortoiseCVS\cvs.exe" -q update -d -P
CVSROOT=:pserver:anonymous@eu.cvs.moodle.org:/cvsroot/moodle
Empty password used - try 'cvs login' with a real password
? config.php
? dbg-wizard.php
? admin/README.txt
? admin/example.csv
? admin/example.xls
? admin/example_teachersenroll.csv
? admin/treeprint.php
? admin/uploadcourse.php
? mod/assignment/turnitin
? mod/assignment/turnitinlib.php
? theme/ilearn_1_0_0
cvs update: failed to create lock directory for `/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images' (/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images/#cvs.lock): Permission denied
cvs [update aborted]: failed to obtain write lock in repository `/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images'
cvs [update aborted]: end of file from server (consult above messages if any)
Error, CVS operation failed
I'm still experiencing this problem as of today (Oct 2, 2007), although I'm getting mixed result. The CVS update for head branch was working fine (I'm using TortoiseCVS for windows as you could see), but the update for MOODLE18_STABLE failed again. Here is the error message:
In C:\amp\moodle\moodle18p\moodle: "C:\Program Files\TortoiseCVS\cvs.exe" -q update -d -P
CVSROOT=:pserver:anonymous@eu.cvs.moodle.org:/cvsroot/moodle
Empty password used - try 'cvs login' with a real password
? config.php
? dbg-wizard.php
? admin/README.txt
? admin/example.csv
? admin/example.xls
? admin/example_teachersenroll.csv
? admin/treeprint.php
? admin/uploadcourse.php
? mod/assignment/turnitin
? mod/assignment/turnitinlib.php
? theme/ilearn_1_0_0
cvs update: failed to create lock directory for `/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images' (/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images/#cvs.lock): Permission denied
cvs [update aborted]: failed to obtain write lock in repository `/cvsroot/moodle/moodle/lang/en_utf8/help/enrol/authorize/images'
cvs [update aborted]: end of file from server (consult above messages if any)
Error, CVS operation failed
Is the eu.cvs.moodle.org currently overloaded right now or this issue was caused by something else? Thanks!
We don't care about this anymore because we have our own very fast CVS server and fast CVS mirrors around the world. ![]()
Very sad they have stopped the service BEFORE contacting. Are we planning then to have our own anonymous cvs service? Also the developers one?
I think it could be interesting to know some numbers from SF about current usage to know a bit more WHAT we would need to replace/provide it.
Perhaps we could "distribute" it along some servers (contributed by institutions... with "free" internet resources) instead of centering it over one moodle.org server....
Ciao