Comment 6 for bug 833747

Revision history for this message
Daniel Manrique (roadmr) wrote : Re: Checkbox crashes while doing the "delete test-folder test"

Paul,

Thanks to you for getting back to me so quickly!

Based on the fact that you also got the backend crash I was expecting, here are steps to reproduce on ubuntu Oneiric (this is mainly for the benefit of developers who are going to work on this bug).

1- install a language that may contain non-ascii characters (so far this has been observed in russian and german):
   sudo apt-get install language-pack-de language-pack-gnome-de
2- Launch checkbox using this installed language:
  LANG=de_AT.UTF-8 LANGUAGE=de_AT:de checkbox-gtk
3- Start a test run with all the tests. It's OK if you skip them, the problem gets triggered either way.

Expected result:
 - All tests run correctly and the run finishes.

Actual result:
- As seen in Paul's checkbox log file, any tests whose description contains non-ascii characters generate an exception (excerpt below).
- As soon as the first job specifying "user" gets dispatched to the backend, the backend crashes with the trace seen in bug 827859. Since it crashed in the middle of executing a job, the frontend doesn't notice this condition and will wait forever. As Paul observed, the window eventually becomes unresponsive.

Here's the description-related trace:

2011-08-25 14:32:53,782 DEBUG Calling checkbox.arguments JobsInfo.replacement({'description': 'Ihr(e) Soundger\xc3\xa4t(e) werden erkan
nt:\n\n$output\n\nIst dies korrekt?', 'plugin': 'manual', 'name': 'audio/list_devices', 'command': 'cat /proc/asound/cards', 'suite': '__audio__', 'requires': "device.c
ategory == 'AUDIO'\npackage.name == 'alsa-base'"}) for report-job with priority -100.
2011-08-25 14:32:53,782 ERROR Error running event handler checkbox.arguments JobsInfo.replacement({'description': 'Ihr(e) Soundger\xc3\xa4t(e) werden erkannt:\n\n$output\n\nIst dies korrekt?', 'plugin': 'manual', 'name': 'audio/list_devices', 'command': 'cat /proc/asound/cards', 'suite': '__audio__', 'requires': "device.category == 'AUDIO'\npackage.name == 'alsa-base'"}) for event type 'report-job'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/checkbox/reactor.py", line 74, in fire
    results.append(handler(*args, **kwargs))
  File "/usr/lib/python2.7/dist-packages/checkbox/arguments.py", line 90, in replacement
    kwargs)
  File "/usr/lib/python2.7/dist-packages/checkbox/arguments.py", line 66, in replace_arguments
    args[name_index] = self.argument_replacer(name, value)
  File "/usr/lib/python2.7/dist-packages/checkbox/arguments.py", line 83, in replacer
    return schemas[name].coerce(value)
  File "/usr/lib/python2.7/dist-packages/checkbox/properties.py", line 71, in coerce
    return self._variable_class(**self._variable_kwargs).coerce(value)
  File "/usr/lib/python2.7/dist-packages/checkbox/variables.py", line 267, in coerce
    % (attribute, value, e))
ValueError: Value of 'description' key of dict {'description': 'Ihr(e) Soundger\xc3\xa4t(e) werden erkannt:\n\n$output\n\nIst dies korrekt?', 'plugin': 'manual', 'name': 'audio/list_devices', 'command': 'cat /proc/asound/cards', 'suite': '__audio__', 'requires': "device.category == 'AUDIO'\npackage.name == 'alsa-base'"} could not be converted: 'ascii' codec can't decode byte 0xc3 in position 15: ordinal not in range(128)

I'll set this to High importance, as it potentially makes checkbox unusable for anyone with a non-english setup. I'm testing how this interacts with bug 827859, for which a fix is already in place; we'd been able to replicate that behavior, but thanks to this report, we now can.