Strider-CD / strider

Open Source Continuous Integration & Deployment Server
http://strider-cd.github.io/
4.59k stars 432 forks source link

Why do tests take so long? #612

Closed Pithikos closed 9 years ago

Pithikos commented 9 years ago

I am running a custom script with the only test being: exit 0

Now this rather ridiculously simple test takes more than 2 minutes. Why is this? I don't install or do anything else. I just exit 0. I would expect this to take some milliseconds..

Otherwise the software seems really sexy!

jaredly commented 9 years ago

That is rather surprising. What plugins are enabled? On Oct 21, 2014 5:39 AM, "Johan" notifications@github.com wrote:

I am running a custom script with the only test being: exit 0

Now this rather ridiculously simple test takes more than 2 minutes. Why is this? I don't install or do anything else. I just exit 0. I would expect this to take some milliseconds..

Otherwise the software seems really sexy!

— Reply to this email directly or view it on GitHub https://github.com/Strider-CD/strider/issues/612.

niallo commented 9 years ago

Do you have an issue with DNS configuration?

On Tue, Oct 21, 2014 at 5:34 AM, Jared Forsyth notifications@github.com wrote:

That is rather surprising. What plugins are enabled? On Oct 21, 2014 5:39 AM, "Johan" notifications@github.com wrote:

I am running a custom script with the only test being: exit 0

Now this rather ridiculously simple test takes more than 2 minutes. Why is this? I don't install or do anything else. I just exit 0. I would expect this to take some milliseconds..

Otherwise the software seems really sexy!

— Reply to this email directly or view it on GitHub https://github.com/Strider-CD/strider/issues/612.

— Reply to this email directly or view it on GitHub https://github.com/Strider-CD/strider/issues/612#issuecomment-59920158.

Niall O'Higgins W: http://niallohiggins.com E: n@niallo.me T: @niallohiggins

Pithikos commented 9 years ago

Sorry, forgot to reply here. The problem seems to got fixed by simply rerunning the container. Now it works normally. Not sure what changed though.

As about plugins I didn't use anything but the "custom scripts" plugin.

kfatehi commented 9 years ago

@Pithikos interesting, can you tell us more about your setup. You say "container" so I am thinking you're using Docker somewhere here. Strider is running in Docker? Which image are you using, or is it a custom one? Also, are you using the Docker Runner?

Thanks!

Pithikos commented 9 years ago

I seem to reproduced the problem but this time with my own image. (The first time, this occured with niallo/strider). Below is what I do:

Build a minimal strider image with docker installed (no SSH, no default users):

wget https://raw.githubusercontent.com/Pithikos/Dockerfiles/master/strider-docker/Dockerfile
docker build -t strider:minimal .

Run the image:

ID=$(docker run -d -p 3000:3000 strider:minimal)

Make a user (I use docker-enter):

sudo docker-enter $ID
root@474593e07afa:/# strider addUser
..
root@474593e07afa:/# exit

Then I go to http://localhost:3000 , login and setup a Github account for a quite big private project with just the custom script plugin and a test returning 0(screenshot).

Then I run a manual test by clicking on retest which takes more than 2 minutes (screenshot). This is fine since it has to fetch the whole project (which is quite big as stated).

Then I click on retest again but it still takes a long time for some reason(screenshot). My guess is that maybe Strider refetches the whole project from Github for each test..

Points:

kfatehi commented 9 years ago

@Pithikos thanks for the detail! So it sounds like the problem has gone away, but then comes back? It really seems like a networking issue rather than a strider issue. Assuming it's not a networking issue: I am pretty sure strider does a fresh clone each time. I can't imagine why the project would take so long to clone though. Are there submodules? (although I don't think that our clone command initializes submodules).

Definitely seems like a docker network issue. Next time you're in this situation just try to do a manual clone (while in the docker namespace with nsenter) and just see.

I'm closing the issue as it seems very unlikely to be a strider issue and very much more likely to be a networking issue possibly related to Docker, but feel free to continue the discussion or reopen if it turns out to be strider related after all.