-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow parallel testing, take #2 #181
base: main
Are you sure you want to change the base?
Conversation
IIRC, this broke internal wrappers... so CC @NaomiReeves on that. But you definitely should make sure you've tested this with internal wrappers. |
The other PR broke the wrappers, from what I remember. The part where I moved the ARGS to be hostnames, 'cause some parts of our wrappers rely on TT just dropping unknown parameters. |
Oh one thing I'd love feedback on:
As for logging, |
lib/taste_tester/commands.rb
Outdated
# Poor man thread pool manager: keeping it simple | ||
nb_threads_over_max = host_threads.length - TasteTester::Config.parallel_hosts | ||
if nb_threads_over_max >= 0 | ||
host_threads[nb_threads_over_max].join |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't this join
be rescued as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. I guess this never happened in my testing 'cause I have a gazillion of cores :)
I'm glad you asked! A lot of this is actually the kind of stuff that we (we = TM folks, not FB folks, so past-past-past-life) solved over in https://github.com/txcketmaster-xx/onall - it forks a bunch of ssh's, joins 'em all back, and handles output nicely. It has a few options - live, buffered, prefixed-by-hostname, in-a-directory one-file-per-host, etc. and I think it's a great model for how to manage output and make it usable for folks. As for return values: 0 - no errors, we can all agree on that. But maybe some more nuance for errors:
Further, I might recommend outputing a JSON structure of host=>failure, perhaps on stderr, or perhaps to a configurable file. |
Stupid question, but what's the difference between |
8652279
to
7b35279
Compare
Summary: Basically a re-do of facebook#158. This got rolled back because @Babar wrote 3 different PRs and one of them was bad. This one wasn't. Technically it wasn't good either, as it only did `test`, not really `untest`, `run` or `keeptesting`. This re-do fixes this. Still the same features: * Can parametrize the number of threads in the config, or on the command line, default to the number of cores * Reports hosts depending whether they failed ssh or something else * Doesn't have any extra dependency, as the thread pool is done in a very simple way Test Plan: Ran it on my machine. Tried test and untest, both worked. Reviewers: nreeves, dcavalca, jaymzh Subscribers: Tasks: Tags: Signed-off-by: Olivier Raginel <[email protected]>
Summary: As upload can take a very long time, we can just have a dedicated thread for it
ed550cf
to
76ef58a
Compare
…n we run out of threads in our poor man thread pool implementation
Basically a re-do of #158.
This got rolled back because @Babar wrote 3 different PRs and one of them was bad.
This one wasn't. Technically it wasn't good either, as it only did
test
, not reallyuntest
,run
orkeeptesting
.This re-do fixes this.
Still the same features:
Test Plan:
Ran it on my machine. Tried
test
anduntest
, both worked.Signed-off-by: Olivier Raginel [email protected]