oem-config-gtk crashed when using some UTF-8 based languages

Bug #1713002 reported by Shih-Yuan Lee
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OEM Priority Project
Confirmed
Medium
Unassigned
Xenial
Confirmed
Medium
Unassigned
ubiquity (Ubuntu)
Fix Released
Undecided
Unassigned
Xenial
Triaged
Undecided
Unassigned

Bug Description

[Impact]

 * This is a slight improvement and it should not have any impact.

[Test Case]

1. Use live-build to generate a customized Ubuntu image with dell-recovery.
2. Use the customized Ubuntu image to install the system.
3. Select traditional Chinese language in oem-config-gtk's language page.
4. Select the recovery media creation in oem-config-gtk's dell-recovery plugin.

[Regression Potential]

 * It should be no regression unless the language will not use UTF-8 encoding by default.

[Other Info]

 * The commit has been accepted in lp:ubiquity.
 * Right now, we are targeting on xenial series.

[Summary]
oem-config crashed when using some UTF-8 based languages

[Reproduce Steps]
1. Use live-build to generate a customized Ubuntu image with dell-recovery.
2. Use the customized Ubuntu image to install the system.
3. Select traditional Chinese language in oem-config-gtk's language page.
4. Select the recovery media creation in oem-config-gtk's dell-recovery plugin.

[Results]
Expected: The installation process will work fine without any problem.
Actual: Ubiquity crashed in the middle.

[Additional Information]

Traceback (most recent call last):
  File "/usr/lib/ubiquity/ubiquity/install_misc.py", line 362, in run
    self.update_interface()
  File "/usr/lib/python3/dist-packages/apt/progress/base.py", line 256, in update_interface
    self.status_change(pkgname, float(percent), status_str.strip())
  File "/usr/lib/ubiquity/ubiquity/install_misc.py", line 341, in status_change
    self.db.subst(self.info, 'DESCRIPTION', status)
  File "/usr/lib/python3/dist-packages/debconf.py", line 62, in <lambda>
    lambda *args, **kw: self.command(command, *args, **kw))
  File "/usr/lib/python3/dist-packages/debconf.py", line 66, in command
    self.write.write("%s %s\n" % (command, ' '.join(map(str, params))))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-45: ordinal not in range(128)

...

PROGRESS STOP
Exception during installation:
Traceback (most recent call last):
  File "/usr/lib/ubiquity/ubiquity/install_misc.py", line 405, in run
    res = pm.do_install(self.write_stream.fileno())
SystemError: E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe), E:寫入錯誤 - write (32: Broken pipe)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/ubiquity/plugininstall.py", line 1779, in <module>
    install.run()
  File "/usr/share/ubiquity/plugininstall.py", line 78, in wrapper
    func(self)
  File "/usr/share/ubiquity/plugininstall.py", line 249, in run
    self.remove_oem_extras()
  File "/usr/share/ubiquity/plugininstall.py", line 1340, in remove_oem_extras
    self.do_remove(regular)
  File "/usr/share/ubiquity/plugininstall.py", line 1114, in do_remove
    if not cache.commit(fetchprogress, installprogress):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 515, in commit
    res = self.install_archives(pm, install_progress)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 479, in install_archives
    res = install_progress.run(pm)
  File "/usr/lib/ubiquity/ubiquity/install_misc.py", line 409, in run
    os.write(control_write, b'\1')
BrokenPipeError: [Errno 32] Broken pipe

Related branches

description: updated
tags: added: xenial
Changed in oem-priority:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Shih-Yuan Lee (fourdollars)
Changed in oem-priority:
importance: High → Critical
Changed in oem-priority:
status: In Progress → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubiquity - 17.10.10

---------------
ubiquity (17.10.10) artful; urgency=medium

  * tests/test_misc.py: Rip out the test for 'ta' keymap. It's been regularly
    broken just because gsettings is returning values out of order (and
    not all of the variants show every time). We already test a few other
    keymaps, so no need to test all of them.
  * Automatic update of included source packages: debian-installer-utils
    1.113ubuntu2, netcfg 1.142ubuntu5.

 -- Mathieu Trudel-Lapierre <email address hidden> Fri, 13 Oct 2017 10:03:04 -0400

Changed in ubiquity (Ubuntu):
status: New → Fix Released
tags: added: sur
tags: added: sru
removed: sur
Jeremy Bícha (jbicha)
Changed in ubiquity (Ubuntu Xenial):
status: New → Triaged
description: updated
Rex Tsai (chihchun)
tags: added: oem-priority
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.