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

Bug #1390002 reported by Elsa Wang
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PlainBox (Toolkit)
Fix Released
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) ...

Revision history for this message
Elsa Wang (elsawang) wrote :
Revision history for this message
Elsa Wang (elsawang) wrote :
  • logs Edit (277.2 KiB, application/x-tar)
Changed in plainbox-provider-checkbox:
milestone: none → 0.15
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.