-
Notifications
You must be signed in to change notification settings - Fork 144
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
Provision step should store even guests not fully provisioned #3514
base: cooperative-sigint-handling
Are you sure you want to change the base?
Conversation
Still a draft, I have no idea what would explode in tests, so, collecting results. |
005af81
to
939fead
Compare
d479195
to
1dc3e47
Compare
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.
Thanks for improving this. Looks good. One difference I've noticed: When scheduling a guest in Beaker and it fails I get just a concise fail message after the change:
/var/tmp/tmt/run-137
/default/plan
provision
queued provision.provision task #1: default-0
provision.provision task #1: default-0
how: beaker
whiteboard: tmt-137-XtMVALFw
fail: Failed to create Beaker job
multihost name: default-0
finish
queued finish task #1: login
finish task #1: login
login: Starting interactive shell
warn: Failed to push workdir to the guest.
queued pull task #1: pull from default-0
pull task #1: pull from default-0
fail: The guest is not available.
plan failed
The exception was caused by 1 earlier exceptions
Cause number 1:
finish step failed
The exception was caused by 1 earlier exceptions
Cause number 1:
The guest is not available.
Before the change there's more details to investigate:
/var/tmp/tmt/run-138
/default/plan
provision
queued provision.provision task #1: default-0
provision.provision task #1: default-0
how: beaker
whiteboard: tmt-138-QgpCiVBX
fail: Failed to create Beaker job
finish
warn: Nothing to finish, no guests provisioned.
plan failed
The exception was caused by 1 earlier exceptions
Cause number 1:
provision step failed
The exception was caused by 1 earlier exceptions
Cause number 1:
Failed to create Beaker job
The exception was caused by 1 earlier exceptions
Cause number 1:
({'response': '\tNo distro tree matches Recipe\n\t<distroRequires><and><distro_name op="like" value="Fedora-41%"/><distro_variant op="=" value="BaseOS"/><distro_arch op="=" value="x86_64"/></and></distroRequires>'}, {'name': 'fedora-x86_64', 'distro': 'Fedora-41%', 'os': 'fedora', 'job_group': None, 'meta_distro': False, 'arch': 'x86_64', 'variant': 'BaseOS', 'job_owner': None, 'ks_meta': None, 'kernel_options': None, 'kernel_options_post': None, 'retention_tag': 'audit', 'product': '[internal]', 'whiteboard': 'tmt-138-QgpCiVBX', 'priority': 'Normal', 'tasks': [{'name': '/distribution/dummy', 'role': 'STANDALONE'}], 'ks_append': [], 'hostRequires': None, 'distro_tags': [], 'host_id': 'fedora-x86_64'})
The exception was caused by 1 earlier exceptions
Cause number 1:
<Fault 1: '<class \'bkr.common.bexceptions.BX\'>:No distro tree matches Recipe: <distroRequires><and><distro_name op="like" value="Fedora-41%"/><distro_variant op="=" value="BaseOS"/><distro_arch op="=" value="x86_64"/></and></distroRequires>'>
Also, it seems that the login
action is attempted although there is no guest:
login: Starting interactive shell
warn: Failed to push workdir to the guest.
Can you share your command line? I just tried it and the error seems to be rich, but maybe I'm trying different path:
I believe that's caused by actions now seeing all guests and simply ignoring the fact some of them might be not ready enough. I'll try to fix that, can you share the command line for verification? |
The |
1dc3e47
to
b72fadb
Compare
5ad340d
to
5992e36
Compare
The command line was just provision and login:
Hmmm, but after the rebase, I'm not able to reproduce the problem anymore. I can see the detailed error now.
And this part has disappeared as well. So it seems we're good. |
Was trying to verify that
Is it supposed to work only together with #3481 or should it clean up the running beaker job already now? |
I would expect these two need to work, as I don't trust Ctrl+C handling in its current state. |
3b49fa6
to
f80376e
Compare
Oh, I just realized what's wrong, I forgot one patch. Ctrl+C is now captured, an exception is raised and tmt starts shutting down, but the thread checking on Beaker job status is not aware of this, because that thread has not been interrupted. We have two options:
I for one would prefer the first option, it's one extra argument to various |
|
407ec72
to
677e4f0
Compare
677e4f0
to
ffa2eac
Compare
This should free `finish` to clean up guests even partially provisioned, for example in the case of tmt termination while provision is still running.
8305b3b
to
62eff6f
Compare
This should free
finish
to clean up guests even partially provisioned, for example in the case of tmt termination while provision is still running.Pull Request Checklist