Skip to content

Checkbox control unable to start when a prior session is dangling #2272

@antlassagne

Description

@antlassagne

Bug Description

I ran a checkbox suite and cancelled it. Now I'm unable to start another one.

$ checkbox.checkbox-cli --clear-old-sessions control 10.102.150.32 ./gb10.launch

Traceback (most recent call last):

[.....]

  File "/snap/checkbox24/current/lib/python3.12/site-packages/checkbox_ng/launcher/controller.py", line 337, in connect_and_run
    keep_running = self.continue_session()
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/snap/checkbox24/current/lib/python3.12/site-packages/checkbox_ng/launcher/controller.py", line 519, in continue_session
    return self.connection_strategy()[state](self, payload)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/snap/checkbox24/current/lib/python3.12/site-packages/checkbox_ng/launcher/controller.py", line 924, in restart
    self.abandon()
  File "/snap/checkbox24/current/lib/python3.12/site-packages/checkbox_ng/launcher/controller.py", line 920, in abandon
    self.sa.finalize_session()
  File "/snap/checkbox24/current/lib/python3.12/site-packages/plainbox/vendor/rpyc/core/netref.py", line 240, in __call__
    return syncreq(_self, consts.HANDLE_CALL, args, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/snap/checkbox24/current/lib/python3.12/site-packages/plainbox/vendor/rpyc/core/netref.py", line 63, in syncreq
    return conn.sync_request(handler, proxy, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/snap/checkbox24/current/lib/python3.12/site-packages/plainbox/vendor/rpyc/core/protocol.py", line 718, in sync_request
    return _async_res.value
           ^^^^^^^^^^^^^^^^
  File "/snap/checkbox24/current/lib/python3.12/site-packages/plainbox/vendor/rpyc/core/async_.py", line 108, in value
    raise self._obj
plainbox.vendor.rpyc.core.vinegar/plainbox.impl.developer._get_exception_class.<locals>.Derived: ("<class 'plainbox.impl.session.assistant.SessionAssistant'>", 'finalize_session', (('finish_bootstrap', 'to finish bootstrapping after running all jobs'), ('get_job', 'to get the job definition by id'), ('get_job_state', 'to get the current state of a job'), ('get_session_id', 'used internally by get_job'), ('use_job_result', 'remember the result of last job')))

[...]

plainbox.impl.developer.UnexpectedMethodCall: 
Uh, oh...

You are not expected to call SessionAssistant.finalize_session() at this time.

[...]

running checkbox interactively in the DUT does work. Restarting the agent was the way to solve this issue.

Cert-blocker Test Case

  • cert-blocker

To Reproduce

Run checkbox control and start a suite
Hit CTRL-C to cancel it
Run it again

Expected Result

Even so an ungraceful shutdown is a bad thing, I would expect --clear-old-session to clean up them mess.

Actual Result

Checkbox cannot run anymore

Environment

Ubuntu 24.04, snap classic installation

Relevant log output

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions