Discussion:
[Twisted-Python] Please fix the broken buildbots
Craig Rodrigues
2016-08-23 00:40:31 UTC
Permalink
Hi,

Someone has made changes in the past few days which have broken
many of the buildbots. For example, in this build:

https://buildbot.twistedmatrix.com/builders/debian8-py2.7/builds/1548/steps/select/logs/stdio

There is this:

python -m tox -r -e py27-tests "" in dir /buildslave/debian8-py2.7/Twisted
(timeout 1200 secs) watching logfiles {'test.log':
'build/py27-tests/tmp/_trial_temp/test.log'} argv: ['python', '-m', 'tox',
'-r', '-e', 'py27-tests', '']

The last argument being passed to python is an empty string.
This is causing an empty string to be passed to trial, and
consequently none of the tests are being run.

This empty string is causing none of the tests to run, which is causing
the build to fail. The fix is either to:

(1) eliminate the last parameter

(2) the last parameter should not be an empty string, but should be
"twisted"
so that trial is invoked as "trial twisted".

I don't understand the buildbot scripts so don't know where to fix this.

Can someone fix this?

--
Craig
Glyph Lefkowitz
2016-08-23 01:23:31 UTC
Permalink
Post by Craig Rodrigues
Hi,
Someone has made changes in the past few days which have broken
https://buildbot.twistedmatrix.com/builders/debian8-py2.7/builds/1548/steps/select/logs/stdio <https://buildbot.twistedmatrix.com/builders/debian8-py2.7/builds/1548/steps/select/logs/stdio>
python -m tox -r -e py27-tests "" in dir /buildslave/debian8-py2.7/Twisted (timeout 1200 secs) watching logfiles {'test.log': 'build/py27-tests/tmp/_trial_temp/test.log'} argv: ['python', '-m', 'tox', '-r', '-e', 'py27-tests', '']
The last argument being passed to python is an empty string.
This is causing an empty string to be passed to trial, and
consequently none of the tests are being run.
This empty string is causing none of the tests to run, which is causing
(1) eliminate the last parameter
(2) the last parameter should not be an empty string, but should be "twisted"
so that trial is invoked as "trial twisted".
I don't understand the buildbot scripts so don't know where to fix this.
Can someone fix this?
Just to be clear: these are changes to the buildbot scripts themselves, and not to the repo?

-glyph
Craig Rodrigues
2016-08-23 03:05:26 UTC
Permalink
Post by Craig Rodrigues
Hi,
Someone has made changes in the past few days which have broken
https://buildbot.twistedmatrix.com/builders/debian8-py2.7/builds/1548/
steps/select/logs/stdio
python -m tox -r -e py27-tests "" in dir /buildslave/debian8-py2.7/Twisted
'build/py27-tests/tmp/_trial_temp/test.log'} argv: ['python', '-m',
'tox', '-r', '-e', 'py27-tests', '']
The last argument being passed to python is an empty string.
This is causing an empty string to be passed to trial, and
consequently none of the tests are being run.
This empty string is causing none of the tests to run, which is causing
(1) eliminate the last parameter
(2) the last parameter should not be an empty string, but should be "twisted"
so that trial is invoked as "trial twisted".
I don't understand the buildbot scripts so don't know where to fix this.
Can someone fix this?
Just to be clear: these are changes to the buildbot scripts themselves,
and not to the repo?
Correct.
Glyph Lefkowitz
2016-08-23 01:24:29 UTC
Permalink
Post by Craig Rodrigues
I don't understand the buildbot scripts so don't know where to fix this.
Oh, and since this answer may be of general interest: the buildbot configuration is here: https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/master.cfg so folks can look in that repository to investigate.

-g
Mark Williams
2016-08-23 03:08:18 UTC
Permalink
Post by Glyph Lefkowitz
Post by Craig Rodrigues
I don't understand the buildbot scripts so don't know where to fix this.
Oh, and since this answer may be of general interest: the buildbot configuration is here: https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/master.cfg so folks can look in that repository to investigate.
-g
This appears to be the builder responsible for the failure Craig found, because it's got the same tox env:

https://github.com/twisted-infra/braid/blob/b04ca7df2943a75b8100c41be4016077fb442639/services/buildbot/master/master.cfg#L124-L131

In the definition of TwistedToxBuildFactory, the tests to run are always empty:

https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_factories.py#L369

For each reactor, there's a TrialTox build step:

https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_factories.py#L397-L402

And in the TrialTox step, tests comes in via __init__:

https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_steps.py#L125

...gets assigned as an instance variable...
https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_steps.py#L131

...and then put into a shell command:

https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_steps.py#L155

I don't see how this could result in an empty string. Something's up
on the boxes themselves.

Please give me access to the buildbots so I can fix them, I love them
and want them to thrive, etc.
Mark Williams
2016-08-23 07:43:11 UTC
Permalink
Glyph got me all set up so I can work on the Buildbots. Thanks,
Glyph!

I hope to resolve the issue Craig identified soon and will announce
any progress. Stay tuned!
Amber "Hawkie" Brown
2016-08-23 07:51:56 UTC
Permalink
So I also investigated and it appeared like the hack I had in https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_factories.py#L368 to prevent this from occurring disappeared in prod; I think maybe Adi pushed up something trying to replicate what it was doing without committing it :)

I've redeployed from master of braid, and it appears to be working now.

- Amber
Post by Mark Williams
Glyph got me all set up so I can work on the Buildbots. Thanks,
Glyph!
I hope to resolve the issue Craig identified soon and will announce
any progress. Stay tuned!
_______________________________________________
Twisted-Python mailing list
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Adi Roiban
2016-08-23 10:29:06 UTC
Permalink
Hi,

On 23 August 2016 at 08:51, Amber "Hawkie" Brown
Post by Amber "Hawkie" Brown
So I also investigated and it appeared like the hack I had in https://github.com/twisted-infra/braid/blob/master/services/buildbot/master/twisted_factories.py#L368 to prevent this from occurring disappeared in prod; I think maybe Adi pushed up something trying to replicate what it was doing without committing it :)
I broke the build. Sorry for that.

I saw those conflicting lines ... and I went for the one injecting the
test case ... as this is how it was supposed to work :)

I am working on creating tox/ven builders for everything... and as
part of that, I have refactored some factories ...as there is some
code duplication.

I have created a PR now... https://github.com/twisted-infra/braid/pull/223

I think that we should have tests =
[WithProperties("%(test-case-name:~twisted)s")]

This should put twisted when test-case-name is not defined by a build job.

Any objections on that?
--
Adi Roiban
Loading...