Virt test returns strange data that causes plainbox to crash

Bug #1432770 reported by Jeff Lane 
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Checkbox Provider - Base
Invalid
Undecided
Unassigned

Bug Description

The virt test is returning a strange character (If I'm reading the trace correctly) that is causing an unhanded except that has no useful output for debugging.

I am working with the tester to get a clean virt_debug log to see what the virtualization script is actually doing. Until then, this is what I know:

The traceback is this:

2015-03-11 15:54:59 [pid:18708, thread:MainThread, reltime:706ms] WARNING plainbox.runner: execution_ctrl_list not passed to JobRunner
2015-03-11 15:55:18 [pid:18708, thread:MainThread, reltime:19075ms] ERROR plainbox.ctrl: Ignoring invalid generated job 2013.com.canonical.certification::staging/disk/stats_{name}: Problem with field requires: wrong
2015-03-11 16:02:18 [pid:18973, thread:MainThread, reltime:4297ms] ERROR plainbox.ctrl: Ignoring invalid generated job 2013.com.canonical.certification::staging/disk/stats_{name}: Problem with field requires: wrong
2015-03-11 16:02:18 [pid:18973, thread:MainThread, reltime:4598ms] WARNING plainbox.runner: execution_ctrl_list not passed to JobRunner
2015-03-11 16:02:18 [pid:18973, thread:MainThread, reltime:4711ms] CRITICAL plainbox.crashes: Executable 'checkbox-launcher' invoked with Namespace(color=None, command=<checkbox_ng.commands.launcher.LauncherCommand object at 0x7fb8ebc4f438>, debug_console=False, debug_interrupt=False, dont_suppress_output=False, dry_run=False, exclude_pattern_list=[], include_pattern_list=[], launcher='/usr/bin/canonical-certification-server', log_level=None, non_interactive=False, pdb=False, secure_id=None, test_plan=None, trace=[], url=None, whitelist=[]) has crashed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 560, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 556, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/launcher.py", line 91, in invoked
    ).run()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 150, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 207, in do_normal_sequence
    self.export_and_send_results()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 343, in export_and_send_results
    copyfileobj(exported_stream, translating_stream)
  File "/usr/lib/python3.4/shutil.py", line 69, in copyfileobj
    fdst.write(buf)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/__init__.py", line 346, in write
    return self.dest_stream.write(data.decode(self.encoding))
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2611' in position 8: ordinal not in range(256)
2015-03-11 16:02:28 [pid:18981, thread:MainThread, reltime:4384ms] WARNING plainbox.runner: execution_ctrl_list not passed to JobRunner
2015-03-11 16:02:37 [pid:18981, thread:MainThread, reltime:13129ms] ERROR plainbox.ctrl: Ignoring invalid generated job 2013.com.canonical.certification::staging/disk/stats_{name}: Problem with field requires: wrong
2015-03-11 18:22:02 [pid:18981, thread:MainThread, reltime:8378442ms] CRITICAL plainbox.crashes: Executable 'checkbox-launcher' invoked with Namespace(color=None, command=<checkbox_ng.commands.launcher.LauncherCommand object at 0x7feffe2fd3c8>, debug_console=False, debug_interrupt=False, dont_suppress_output=False, dry_run=False, exclude_pattern_list=[], include_pattern_list=[], launcher='/usr/bin/canonical-certification-server', log_level=None, non_interactive=False, pdb=False, secure_id=None, test_plan=None, trace=[], url=None, whitelist=[]) has crashed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 560, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 556, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/launcher.py", line 91, in invoked
    ).run()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 150, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 207, in do_normal_sequence
    self.export_and_send_results()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 343, in export_and_send_results
    copyfileobj(exported_stream, translating_stream)
  File "/usr/lib/python3.4/shutil.py", line 69, in copyfileobj
    fdst.write(buf)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/__init__.py", line 346, in write
    return self.dest_stream.write(data.decode(self.encoding))
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2611' in position 8: ordinal not in range(256)

there seems to be some unicode character in there causing a crap-out (Technical term) in plainbox.

Related branches

Revision history for this message
Jeff Lane  (bladernr) wrote :
Download full text (42.8 KiB)

Here's console output:

root@cwatts2:/etc/xdg# canonical-certification-server
=========================[ Resume Incomplete Session ]==========================
There is 1 incomplete session that might be resumed
Do you want to resume session 'pbox-hp9przz0'?
  r => resume this session
  n => next session
  c => create new session
[rnc]: c
WARNING plainbox.runner: execution_ctrl_list not passed to JobRunner
==========================[ Selecting Job Generators ]==========================
===========================[ Running Selected Jobs ]============================
----------------------------------[ package ]-----------------------------------
ID: 2013.com.canonical.certification::package
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
-----------------------------------[ device ]-----------------------------------
ID: 2013.com.canonical.certification::device
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
-------------------------------[ optical_drive ]--------------------------------
ID: 2013.com.canonical.certification::optical_drive
Category: 2013.com.canonical.plainbox::uncategorised
Job cannot be started because:
 - resource expression "device.category == 'CDROM'" evaluates to false
Outcome: job cannot be started
----------------------------------[ __info__ ]----------------------------------
ID: 2013.com.canonical.certification::__info__
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
------------------------[ SATA/IDE device information. ]------------------------
ID: 2013.com.canonical.certification::info/hdparm
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
------------------------------[ __miscellanea__ ]-------------------------------
ID: 2013.com.canonical.certification::__miscellanea__
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
-------------------------------[ __benchmarks__ ]-------------------------------
ID: 2013.com.canonical.certification::__benchmarks__
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
--------------------------[ Benchmark for each disk ]---------------------------
ID: 2013.com.canonical.certification::benchmarks/disk/hdparm-read
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
--------------------------[ Benchmark for each disk ]---------------------------
ID: 2013.com.canonical.certification::benchmarks/disk/hdparm-cache-read
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
----------------------------------[ __cpu__ ]-----------------------------------
ID: 2013.com.canonical.certification::__cpu__
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
Outcome: job passed
----------------------------------[ __disk__ ]----------------------------------
ID: 2013.com.canonical.certification::__disk__
Category: 2013.com.canonical.plainbox::uncategorised
(Command output hidden)
ERROR plainbox.ctrl: Ign...

tags: added: blocks-hwcert-server scripts
Revision history for this message
Daniel Manrique (roadmr) wrote :

Hey Jeff!

I don't necessarily think it's the virt test that's outputting crazy stuff, but it may be the case. In order to know for sure, it would be useful to have the saved session for analysis. Could you:

- Install plainbox (should be available from the same place where checkbox was installed)
- run
  plainbox list

it will output a list of sessions that look like:
session pbox-blahblah app:plainbox, flags:['submitted'], title:'some-longish-string'

- Run
  plainbox session archive pbox-blahblah my-bug

substituting the blahblah from the output of plainbox list.

After this, a my-bug.tar.gz file will be stored, this contains the raw session data and we can use it to verify which job produced the bogus character, and where it is in the output.

Thanks!

Changed in checkbox:
status: New → Incomplete
affects: checkbox → plainbox-provider-checkbox
Revision history for this message
Jeff Lane  (bladernr) wrote :

Yeah, I was not able to get anything more, so I'm gonna mark this invalid until it pops up again...

Changed in plainbox-provider-checkbox:
status: Incomplete → Invalid
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.