"Rerun last test" or "Continue" caused error and all test results got lost

Bug #1390002 reported by Elsa Wang on 2014-11-06
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PlainBox (Toolkit)
High
Zygmunt Krynicki

Bug Description

Steps:
1. Quit checkbox GUI manually or run poweroff/reboot test and wait it complete
2. Re-launch checkbox GUI
3. Click "Rerun last test" or "Continue..."

Actual result:
NaN% completed showed on status bar and all test results got lost if checking Results

Expected result:
No error and results generated correctly

Packages installed:
Setting up python3-checkbox (0.17.9.1~ubuntu14.04.1) ...
Setting up checkbox (0.17.9.1~ubuntu14.04.1) ...
Setting up checkbox-certification-tools (0.19~ubuntu14.04.1) ...
Setting up python3-checkbox-support (0.14~c1~ppa~ubuntu14.04.1) ...
Setting up plainbox-insecure-policy (0.16~c1~ppa~ubuntu14.04.1) ...
Setting up python3-plainbox (0.16~c1~ppa~ubuntu14.04.1) ...
Setting up python3-checkbox-ng (0.14~c1~ppa~ubuntu14.04.1) ...
Setting up checkbox-ng (0.14~c1~ppa~ubuntu14.04.1) ...
Setting up checkbox-ng-service (0.14~c1~ppa~ubuntu14.04.1) ...
Setting up plainbox-provider-resource-generic (0.13~c1~ppa~ubuntu14.04.1) ...
Setting up plainbox-provider-checkbox (0.15~c1~ppa~ubuntu14.04.1) ...
Setting up checkbox-gui (0.28~c1~ppa~ubuntu14.04.1) ...
Setting up checkbox-hw-collection (0.17.9.1~ubuntu14.04.1) ...
Setting up plainbox (0.16~c1~ppa~ubuntu14.04.1) ...
Setting up plainbox-glmark2-es2-meta (0.10~ppa~ubuntu14.04.1) ...
Setting up plainbox-provider-certification-client (0.10~ppa~ubuntu14.04.1) ...
Setting up plainbox-provider-oem (0.1ubuntu31) ...
Setting up plainbox-provider-oem-sutton (0.1ubuntu31) ...

Elsa Wang (elsawang) wrote :
Elsa Wang (elsawang) wrote :
  • logs Edit (277.2 KiB, application/x-tar)
Changed in plainbox-provider-checkbox:
milestone: none → 0.15
Zygmunt Krynicki (zyga) wrote :

The root cause seems to be this crash:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/checkbox_ng/dbus_ex/decorators.py", line 223, in sanity
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/checkbox_ng/service.py", line 990, in Remove
    self.native.remove()
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/legacy.py", line 171, in remove
    self.manager.destroy()
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/legacy.py", line 184, in manager
    self._commit_manager()
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/legacy.py", line 202, in _commit_manager
    self._commit_resume()
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/legacy.py", line 226, in _commit_resume
    self.job_list, last_storage, lambda session: self)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/manager.py", line 331, in load_session
    state = SessionResumeHelper(unit_list).resume(data, early_cb)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 218, in resume
    return self._resume_json(json_repr, early_cb)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 243, in _resume_json
    self.job_list).resume_json(json_repr, early_cb)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 446, in resume_json
    return self._build_SessionState(session_repr, early_cb)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 472, in _build_SessionState
    self._restore_SessionState_jobs_and_results(session, session_repr)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 508, in _restore_SessionState_jobs_and_results
    self._process_job(session, jobs_repr, results_repr, job_id)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 576, in _process_job
    results_repr, key=job_id, value_type=list, value_none=True)
  File "/usr/lib/python3/dist-packages/plainbox/impl/session/resume.py", line 793, in _validate
    raise CorruptedSessionError(error_msg)
plainbox.impl.session.resume.CorruptedSessionError: Missing value for key '2013.com.canonical.certification::acpi_sleep_attachment'

I need to check out the session to know more (it's attached so no more data is needed at this time)

affects: plainbox-provider-checkbox → checkbox-gui
Changed in checkbox-gui:
milestone: 0.15 → none
status: New → In Progress
assignee: nobody → Zygmunt Krynicki (zkrynicki)
importance: Undecided → High
Zygmunt Krynicki (zyga) wrote :

I have a feeling that the files attached in comment #2 are from a subsequent session, not from the one that actually experienced the crash. Sadly, with checkbox-gui there's no way to know.

Update: this was tested with plainbox 0.16c1 (candidate one). This is *before* we cherry-picked all the interesting fixes for the recently discovered issues. I think this is fix released.

Changed in checkbox-gui:
status: In Progress → Fix Released
Zygmunt Krynicki (zyga) wrote :

Dear reporter, please upgrade to plainbox 0.16 which is available in the stable certification tools PPA

affects: checkbox-gui → plainbox
Changed in plainbox:
milestone: none → 0.17
Elsa Wang (elsawang) wrote :

This has been verified on plainbox 0.17~c3 and plainbox-provider-oem-sutton 0.1ubuntu36.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments