disk detection failed due to insufficient priviledges

Bug #886118 reported by Thomas Mashos
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Checkbox
Fix Released
Medium
Daniel Manrique
checkbox (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Running the full suite of tests, the tests on SDA failed due to not having sufficient priviledges

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: checkbox 0.12.8
ProcVersionSignature: Ubuntu 3.0.0-12.20-generic 3.0.4
Uname: Linux 3.0.0-12-generic i686
NonfreeKernelModules: wl
ApportVersion: 1.23-0ubuntu3
Architecture: i386
CheckboxSubmission: 679e5f162849ba07234c51bb77c6b6a1
CheckboxSystem: b845c366ea09c60efa3a45c1b5b21525
Date: Fri Nov 4 09:37:25 2011
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: checkbox
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Thomas Mashos (tgm4883) wrote :
Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

I confirmed this on Thomas's netbook, a HP Mini. As far as I know the GkSudo prompt was accepted.

Changed in checkbox (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in checkbox:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Daniel Manrique (roadmr) wrote :

OK, what happened here may be that the sudo prompt was accepted but on the *second* try (it would seem). This causes a desynchronization of messages because they get queued in a fifo. So:

- checkbox launches the backend and sends it a "ping".
- Backend does not start. After 30 seconds checkbox retries.
- checkbox launches the backend again and sends it a 'ping'.
- Backend launches, receives the first "ping" and sends back a "pong".
- checkbox receives the "pong" and continues the testing process, thinking it has a working backend.
- Backend notices the second "ping" and sends back a "pong" which stays in the pipe awaiting to be read.
- Checkbox sends the backend a job message and reads the backend's response, expecting it to be the message's result.
- Turns out the response was the second "pong". Things fail horribly from now on because backend and frontend are now out of sync.

This is a known problem that needs to be fixed, perhaps by adding a sequence number to commands so the frontend knows to discard or otherwise handle out-of-sequence messages.

My evidence:
2011-11-03 14:31:54,938 DEBUG Backend responded, continuing execution.
So we know the backend was running (at some point at least).

2011-11-04 09:06:29,663 DEBUG Calling /usr/share/checkbox/plugins/backend_info.py BackendInfo.message_exec({'status': 'uninitiated', 'command': 'cdimage_resource', 'user': 'root', 'name': 'cdimage', 'plugin': 'resource'}) for message-exec with priority 0.
2011-11-04 09:06:29,664 DEBUG Started firing message-result.
2011-11-04 09:06:29,665 DEBUG Calling /usr/share/checkbox/plugins/message_info.py MessageInfo.message_result(p, o, n, g) for message-result with priority 0.
2011-11-04 09:06:29,668 ERROR Error running event handler /usr/share/checkbox/plugins/message_info.py MessageInfo.message_result(p, o, n, g) for event type 'message-result'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/checkbox/reactor.py", line 74, in fire
    results.append(handler(*args, **kwargs))
TypeError: message_result() takes exactly 4 arguments (5 given)

Notice the call to MessageInfo.message_result; the parameters spell "pong" :)

I'll set as Invalid for Ubuntu checkbox and Triaged/High for checkbox proper. It's the same code base after all, so no point on having two reports for the same thing.

Changed in checkbox (Ubuntu):
status: Confirmed → Invalid
Changed in checkbox:
status: Confirmed → Triaged
milestone: none → 0.14.x
assignee: nobody → Daniel Manrique (roadmr)
Ara Pulido (ara)
Changed in checkbox:
importance: High → Medium
Daniel Manrique (roadmr)
Changed in checkbox:
status: Triaged → In Progress
Zygmunt Krynicki (zyga)
Changed in checkbox:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package checkbox - 0.14.8

---------------
checkbox (0.14.8) quantal; urgency=low

  * New upstream release (LP: #1061359)

  * Launchpad automated translation updates

  [Sylvain Pineau]
  * setup.py, qt/checkbox-qt.ui: Removed the old UI design file (LP: #1049912)
  * scripts/display_resource, jobs/resource.txt.in: Added a new display
    resource script to properly handle connector names returned by proprietary
    drivers (LP: #956139) (LP: #992727)
  * jobs/optical.txt.in, scripts/optical_write_test: Filter ANSI escape char
    outputed by wodim and removed some stray whitespace (LP: #1052803)
  * checkbox/parsers/udevadm.py: Improved wireless devices detection.
    The wireless category is now set if the subsystem is equal to ieee80211
    (LP: #855382)
  * debian/control, jobs/esata.txt.in, jobs/firewire.txt.in, jobs/usb.txt.in,
    jobs/mediacard.txt.in: Remove udisks package references in all of the jobs
    that use removable_storage scripts (LP: #1059620). Used wrap-and-sort in
    debian/control for clarity (Depends).
  * scripts/graphics_driver: Added NVIDIA driver detection (LP: #1060211)

  [Brendan Donegan]
  * jobs/cpu.txt.in - add environ field containing
    CHECKBOX_DATA to allow that environment variable to be used in the command
    (LP: #1049595)
  * jobs/wireless.txt.in - replace use of network_wireless_test in wireless_scanning
    with a simple Bash script using nmcli and delete network_wireless_test (LP: #900370)
  * [UIFe] qt/frontend/qtfront.ui, qt/frontend/qtfront.cpp - set focus to Continue
    button and make it the default so that it can be 'clicked' using Enter,
    as well as renaming it to 'continueButton' (LP: #1052506)
  * jobs/usb.txt.in - Fix dependencies of USB tests so that things work properly if
    the usb/storage-automated test fails (LP: #987876)
  * scripts/network_info - add exception handling to file reading so that
    sensible values are given if the required file cannot be read (LP: #823606)

  [Marc Tardif]
  * qt/frontend/qtfront.ui: Fixed warnings when building with
    qtcreator (LP: #1053126)
  * plugins/suites_prompt.py: Fixed tree view in selection window (LP: #1056432)
  * plugins/apport_prompt.py: Removed apport plugin that caused crashes
    when trying to send bug report (LP: #1047857)
  * jobs/optical.txt.in: Fixed missing category assignment in optical
    dvd write tests (LP: #1057762)

  [Jeff Marcom]
  * jobs/optical.txt.in: Changed optical read/write job commands to use
    a more reliable dev path (LP: #990560)

  [Daniel Manrique]
  * Added consecutive numbering to messages sent to the backend, so the
    frontend knows to discard out-of-sequence messages. (LP: #886118)
 -- Daniel Manrique <email address hidden> Wed, 03 Oct 2012 17:23:34 -0400

Changed in checkbox (Ubuntu):
status: Invalid → Fix Released
Changed in checkbox:
status: Fix Committed → Fix Released
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.