Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Connected clients not executing tests again even after resetting the job #223

Closed
csharbel opened this Issue · 1 comment

2 participants

@csharbel

Hi

Was under the impression that existing clients connected to the swarm will start running a job that is reset. But found that this happens only for new clients. So if you refresh your browser it works.

If my understanding is not correct, my original requirement is this. We wanted to integrate testswarm with jenkins. So we have all supported clients always connected to the swarm. We want to reset a job in case of any code changes and all the clients should start running the test again.

Added the following lines of code into testswarm/inc/actions/WipeJobAction.php to clear all data for the job from runresults also. That is after line 106 as the second query for the ( $wipeType === 'reset' ) condition.

$db->query(str_queryf(
                        'DELETE
                        FROM runresults
                        WHERE run_id = %u;',
                        $runRow->id
));

Please do correct me if I am wrong. Do take this as an issue and fix otherwise.

@Krinkle
Collaborator
We want to reset a job in case of any code changes and all the clients should start running the test again.

This sounds very wrong.

Don't confuse jobs with projects. Every job in testswarm should be unique and point to a static snapshot of your library at a certain version.

If you made changes, submit a new job (pointing to files in a different location).

Especially when working with multiple projects and commits being tested, things are running asynchronous so it is even more important that one doesn't submit tests locations like /projects/foo/tests/index.html but instead like /builds/foo/4be762e49a/test/index.html.

See for example: http://swarm.jquery.org/user/jquerycolor

You mention Jenkins, so this principle should sound familiar to you.

The reason clients don't re-run the same section of the same job is because if they didn't work the first time, part of failure could be caused by the client's environment, in which case it requires a different client to run the test.

By structurally resetting jobs over and over again, you will eventually run out of available clients (if no new clients connect, and some tests are failing). This is because the system is being abused if you use it that way.

@Krinkle Krinkle closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.