Skip to content
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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

happz
Copy link
Collaborator

@happz happz commented Feb 7, 2025

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

  • implement the feature
  • write the documentation
  • extend the test coverage
  • update the specification
  • adjust plugin docstring
  • modify the json schema
  • mention the version
  • include a release note

@happz happz added step | provision Stuff related to the provision step ci | full test Pull request is ready for the full test execution labels Feb 7, 2025
@happz happz added this to the 1.43 milestone Feb 7, 2025
@happz
Copy link
Collaborator Author

happz commented Feb 7, 2025

Still a draft, I have no idea what would explode in tests, so, collecting results.

This should free `finish` to clean up guests even partially provisioned,
for example in the case of tmt termination while provision is still
running.
@happz happz force-pushed the provision-guest-eager-storage branch from d479195 to 1dc3e47 Compare February 12, 2025 11:58
Copy link
Collaborator

@psss psss left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci | full test Pull request is ready for the full test execution step | provision Stuff related to the provision step
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants