teuthology-[schedule|suite] get a parameter to specify the branch,
to put the job in a branch-specific queue. Workers running that
branch of teuthology can pull jobs from that queue.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Exception objects don't contain the traceback of where they were
raised from (to avoid cyclic data structures wrecking gc and causing
mem leaks), so the singular "raise obj" form creates a new traceback
from the current execution location, thus losing the original location
of the error.
Gevent explicitly wants to throw away the traceback, to release any
objects the greenlet may still be referring to, closing files,
releasing locks etc. In this case, we think it's safe, so stash the
exception info away in a holder object, and resurrect it on the other
side of the results queue.
http://stackoverflow.com/questions/9268916/how-to-capture-a-traceback-in-gevent
This can be reproduced easily with
from teuthology.parallel import parallel
def f():
raise RuntimeError("bork")
with parallel() as p:
p.spawn(f)
and looking at the resulting traceback with and without this change.
This adds the ability to specify the rbd image format to use for the
scratch and test devices for the rbd.xfstests task.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
This adds the ability to specify an rbd image format (either 1 or 2)
for an rbd image.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
This task allows ceph to signal to teuth that it should die immediately
by touching a file under /tmp/cephtest
Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
Especially on older hosts, we keep triggering errors::
ServerNotFoundError: Unable to find the server at
teuthology.front.sepia.ceph.com: [Errno 3] name does not exist
That comes from libevent's evdns via gevent.dns and httplib2. The rate
of these errors is low enough that they seem to be perhaps timeouts,
or more arbitrary. Busy looping on DNS resolution calls has never
triggered them, so far.
With ``monkey.patch_all(dns=False)``, the teuthology process will
block as a whole whenever doing DNS resolution. This will hopefully be
rare enough that it won't matter.
The only real "fix" seems to be upgrading libraries and hoping for the
best; this commit can be reverted after that is done.
This lets you specify a path to an existing kernel deb
to be pushed and installed on the remote node.
Limitations:
- We don't build the deb for you. figuring out what
filename 'make deb-pkg' is building is annoying.
- We need to be able to figure out the sha1 from the provided
path. It shouldn't be a problem, given the way make deb-pkg
names the debs.