Regression: installing gutenprint printer driver fails

Bug #1248303 reported by Jussi Lind on 2013-11-05
94
This bug affects 17 people
Affects Status Importance Assigned to Milestone
gnome-control-center (Ubuntu)
Low
Till Kamppeter
Saucy
Undecided
Unassigned
gutenprint (Ubuntu)
Low
Till Kamppeter
Saucy
Low
Till Kamppeter
system-config-printer (Ubuntu)
High
Till Kamppeter
Saucy
High
Till Kamppeter

Bug Description

Installing driver for Canon MP160 has worked perfectly from 12.04 to 13.04, but not anymore in 13.10. The USB printer get detected correctly, but when installing the driver via "New Printer" dialog, only gutenprint can be selected and the "Installing driver gutenprint" dialog just gets stuck and nothing happens.

[IMPACT]

High, as if locally unsupported printers cause a driver download from OpenPrinting the download ends in an infinite loop and cannot be cancelled due to a crashed user interaction thread, blocking system-config-printer completely not allowing a manual setup of the printer.

[TESTCASE]

In a terminal window run the commands

cd /usr/share/system-config-printer/
python newprinter.py --setup-printer=file:/tmp/printout --devid='MFG:Canon;MDL:MP160;'

Accept to download the offered Gutenprint driver and enter your password when you get asked for it. The download and installation of the Gutenprint package from OpenPrinting will take place and right after that, before closing the progress pop-up, system-config-printer will freeze.

In the terminal output of above commands you can see a crash of one thread:

----------
Traceback (most recent call last):
  File "/usr/share/system-config-printer/newprinter.py", line 3676, in on_tvNPDownloadableDrivers_cursor_changed
    iter = model.get_iter (path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 810, in get_iter
    path = self._coerce_path(path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 785, in _coerce_path
    return TreePath(path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 1135, in __new__
    path = ":".join(str(val) for val in path)
TypeError: 'NoneType' object is not iterable
----------

Due to this task you cannot get out of the printer setup wizard by clicking "Cancel".

With the proposed system-config-printer package neither the crash nor the freeze will happen and both setting up the printer with the package from OpenPrinting and canceling the OpenPrinting download and after that setting up the printer manually will work.

[Regression Potential]

None, as the patch is trivial

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: gnome-control-center 1:3.6.3-0ubuntu44
ProcVersionSignature: Ubuntu 3.11.0-12.19-generic 3.11.3
Uname: Linux 3.11.0-12-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.1
Architecture: amd64
Date: Tue Nov 5 22:10:02 2013
InstallationDate: Installed on 2013-10-20 (16 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
MarkForUpload: True
SourcePackage: gnome-control-center
UpgradeStatus: No upgrade log present (probably fresh install)
usr_lib_gnome-control-center:
 activity-log-manager 0.9.7-0ubuntu4
 deja-dup 27.3.1-0ubuntu1
 gnome-control-center-datetime 13.10.0+13.10.20131016.2-0ubuntu1
 gnome-control-center-signon 0.1.7~+13.10.20130724.1-0ubuntu1
 gnome-control-center-unity 1.3+13.10.20131004-0ubuntu1

Jussi Lind (jussi-lind) wrote :
Jussi Lind (jussi-lind) wrote :

Added screenshot of the problem.

Changed in gnome-control-center (Ubuntu):
assignee: nobody → Till Kamppeter (till-kamppeter)
importance: Undecided → Low
Till Kamppeter (till-kamppeter) wrote :

Jussi, can you set up your printer with system-config-printer? To try run

system-config-printer

in a terminal window, click the button to add a new printer, select your printer from the detected ones and go through the steps to finish.

Changed in gnome-control-center (Ubuntu):
status: New → Incomplete
Jussi Lind (jussi-lind) wrote :

system-config-printer seems to open the same configuration dialog with similar results.

Now the progress bar of "Installing driver gutenprint" dialog gets stuck in the halfway. I think that it happened also before. However, before this phase I saw a system error about system-config-printer.py crashing:

-- clip --

Traceback (most recent call last):
  File "/usr/share/system-config-printer/newprinter.py", line 3678, in on_tvNPDownloadableDrivers_cursor_changed
    iter = model.get_iter (path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 810, in get_iter
    path = self._coerce_path(path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 785, in _coerce_path
    return TreePath(path)
  File "/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py", line 1135, in __new__
    path = ":".join(str(val) for val in path)
TypeError: 'NoneType' object is not iterable
{'freesoftware': True,
 'functionality': {'graphics': '100',
                   'lineart': '90',
                   'photo': '100',
                   'speed': '60',
                   'text': '90'},
 'license': 'GPL',
 'manufacturersupplied': False,
 'name': 'gutenprint',
 'nonfreesoftware': False,
 'packages': {'amd64': {'gutenprint_5.0.1-1lsb3.1_amd64.deb': {'fingerprint': 'https://www.openprinting.org/download/printdriver/keys/openprinting',
                                                               'pkgsys': 'deb',
                                                               'realversion': '5.0.1',
                                                               'release': '1',
                                                               'repositories': {'apt': 'deb http://www.openprinting.org/download/printdriver/debian/ lsb3.1 gutenprint'},
                                                               'url': 'http://www.openprinting.org/download/printdriver/debian/dists/lsb3.1/gutenprint/binary-amd64/gutenprint_5.0.1-1lsb3.1_amd64.deb',
                                                               'version': '5.0.1'}}},
 'patents': False,
 'recommended': False,
 'shortdescription': 'Top Quality Printer Drivers for inkjets, dye sublimation printers, and PCL lasers',
 'supplier': 'Gutenprint project',
 'supportcontacts': [{'level': 'voluntary',
                      'name': 'Gutenprint mailing list at SourceForge',
                      'url': 'https://lists.sourceforge.net/lists/listinfo/gimp-print-devel'}],
 'thirdpartysupplied': True,
 'url': 'http://gimp-print.sourceforge.net/'}

-- clip --

The choose driver dialog has also some other problems, like enabled check boxes (Manufacturer, Patented algorithms) that still cannot be checked permanently. They should be greyed out.

Laura Prowicz (l2ura) wrote :

yes, the screen shot looks familiar. I have seen it 10+ times today.

Ubuntu 13.10 Printer is on the network ... Canon PIXMA MX880 driver is selected and the install just hangs there, forever.

I also tried downloading and installed the gutenprint printer driver itself at the terminal which worked just fine. Then I ran the sudo apt-get update and sudo apt-get upgrade to get the latest system-config-printer (I saw somewhere it was updated last week sometime.)

No joy.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in system-config-printer (Ubuntu):
status: New → Confirmed
Joern Berrisch (j-berrisch) wrote :

I can confirm (Canon Pixma MP630), got the same error, 'Installing driver gutenprint' dialog stuck at the beginning (4 time I tried).
Probably the installation was interrupted by a system restart, but in the installation history I see the following item:

cups-backebd-bjnp -- installed
foomatic-db-gutenprint -- installed
ijsgutenprint -- installed

But the scanner is working fine with 'Simple Scan'

John (jm1) wrote :

I have the same problem when trying to install a Brother printer. I get the same error message as #4.

In my sources.list I have the following line:
deb http://www.openprinting.org/download/printdriver/debian/ lsb3.2 main

However in the error message it refers to:
deb http://www.openprinting.org/download/printdriver/debian/ lsb3.1 gutenprint

Maybe this has something to do with it.

Jussi Lind (jussi-lind) wrote :

I updated the bug summary as this problem is not specific to Canon MP160.

summary: - Regression: cannot install driver for Canon MP160
+ Regression: installing gutenprint printer driver fails
Jussi Lind (jussi-lind) wrote :

I think that this is an (UI?) issue in system-config-printer, because I was now able to install the driver like this:

1) Start system-config-printer from terminal (I didn't test otherwise)
2) Select your printer from the list once detected and start installing the gutenprint driver
3) Hit CTRL-C (possible a couple of times) in the terminal when the "installing gutenprint" dialog gets stuck, select Cancel for the crash report etc
4) Now a "New Printer" dialog opens in which you can select your printer manufacturer and model
5) Choose your printer => Forward => Forward => Apply

The first crash again here:

-- clip --

Traceback (most recent call last):
  File "/usr/share/system-config-printer/newprinter.py", line 3678, in on_tvNPDownloadableDrivers_cursor_changed
    iter = model.get_iter (path)

-- clip --

These are the corresponding lines in the code:

-- clip --

        selection = widget.get_selection ()
        if selection == None:
            return

        model, iter = selection.get_selected ()
        if not iter:
            path, column = widget.get_cursor()
            iter = model.get_iter (path)

-- clip --

So in our case widget.get_cursor() returns so that path is None.

I assume that this happens, because the code expects user data from the "New Printer" dialog, which is not opened.

For me I get a correct setup if I had a printer named "Canon Pixma MP630" or "Canon Pixma MP160", but I can reproduce the problem described here if I try to set up a "Canon MP160". So if the printer identifies itself as "Canon MP160" and not as "Canon Pixma MP160", the current driver (Gutenprint) contains a wrong printer ID:

till@till:~$ lpinfo -m | grep -i MP160
gutenprint.5.2://bjc-MULTIPASS-MP160/expert Canon PIXMA MP160 - CUPS+Gutenprint v5.2.9
[...]

If there exist really two different printers, one "Canon MP160" and one "Canon Pixma MP160" only the latter is supported by current Gutenprint and the old Gutenprint version which is wrongly installed here has a bug.

Jussi, can you remove the print queue(s) for your printer and then run

system-config-printer --debug 2>&1 | tee log.txt

in a terminal window. Try to set up your printer and when it gets stuck, please stop with Ctrl+C and attach the log.txt file here. Do not compress the file.

Changed in system-config-printer (Ubuntu):
status: Confirmed → Incomplete

One remark, to test setup of an arbitrary printer which you do not actually have, set "FileDevice yes" in /etc/cups/cups-files.conf, restart CUPS and then run the commands:

cd /usr/share/system-config-printer/
python newprinter.py --setup-printer=file:/tmp/printout --devid='MFG:Canon;MDL:MP160;'

Replace the terms after MFG: and MDL: by manufacturer and model of the desired printer.

Jussi Lind (jussi-lind) wrote :

Attached the log as requested in #11.

Jussi, thank you very much.

I have discovered the following problems:

1. Infinite loop in system-config-printer. I have prepared a patch and will soon make it available.

2. Your printer's ID does not match the ID in the current Gutenprint driver which comes with Ubuntu, leading system=config-printer to search on the OpenPrinting web site.

3. A bug on the OpenPrinting web site makes an old version of Gutenprint being downloaded. This version does not actually support your printer.

Can you please tell which model name for your printer is written onto the printer itself, its packaging, and/or its manual? Is it something like "Canon Pixma MP160", "Canon MultiPass MP160", or simply "Canon MP160"?

You should be able to make your printer working by clicking "Cancel" when you get offered a driver download and then manually assign the make/model/driver "Canon PIXMA MP160 - CUPS+Gutenprint v5.2.9" to it. Can you try that and tell whether this solves your problem?

Jussi Lind (jussi-lind) wrote :

On the printer it reads simply MP160, but there's a separate Pixma logo, so it must be Canon Pixma MP160.

And yes, I'm able to make the printer work if I configure it manually. I only recently figured out that one actually CAN configure the printer manually. It's a bit confusing since system-config-printer auto detects MP160 so of course the user always selects that entry, resulting in this bug :)

Closing gnome-control-center task as g-c-c uses system-config-printer for automatic driver download.

Changed in gnome-control-center (Ubuntu):
status: Incomplete → Invalid
Changed in system-config-printer (Ubuntu):
assignee: nobody → Till Kamppeter (till-kamppeter)
importance: Undecided → Low
Jussi Lind (jussi-lind) wrote :

A clarification to my previous comment: clicking "Cancel" does nothing, but in my case I can select also "Gutenprint USB printer #2" instead of "Canon MP160", which triggers the manual configuring flow.

Jussi, thank you. The "Cancel" does not work because the thread for the interactive control is crashing. This is also covered by my patch.

Changed in gutenprint (Ubuntu):
assignee: nobody → Till Kamppeter (till-kamppeter)
importance: Undecided → Low
status: New → Confirmed
Changed in system-config-printer (Ubuntu):
status: Incomplete → Confirmed
status: Confirmed → Triaged

Added Gutenprint task as the device ID for the MP160 needs to get corrected in Gutenprint.

Changed in system-config-printer (Ubuntu):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package system-config-printer - 1.4.2+20130920-0ubuntu3

---------------
system-config-printer (1.4.2+20130920-0ubuntu3) trusty; urgency=low

  * debian/patches/43_newprinter-fix-crash-and-infinite-loop-at-driver-download.patch:
    Fixed a crash and an infinite loop which happens when it comes to a drivcer
    download from OpenPrinting (LP: #1248303).
 -- Till Kamppeter <email address hidden> Sat, 4 Jan 2014 20:47:12 +0100

Changed in system-config-printer (Ubuntu):
status: Fix Committed → Fix Released

I have fixed the OpenPrinting web server now so that it delivers the newer Gutenprint version.

jussi, can you try a live CD/USB stick of Trusty (14.04) to see whther the bug is fixed? Please do a complete system update after booting to catch the fixed system-config-printer.

Changed in gutenprint (Ubuntu):
status: Confirmed → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gutenprint - 5.2.9-1ubuntu3

---------------
gutenprint (5.2.9-1ubuntu3) trusty; urgency=low

  * debian/patches/added-device-ids.patch: Added the device IDs for some Canon
    printers from the upstream repository, to more reliably auto-assign the
    Gutenprint drivers to these printers (LP: #1248303).
 -- Till Kamppeter <email address hidden> Sun, 5 Jan 2014 11:04:48 +0100

Changed in gutenprint (Ubuntu):
status: Fix Committed → Fix Released
Jussi Lind (jussi-lind) wrote :

I have now verified that the released fix works now in the current development version of Trusty. Awesome! :)

Jussi, thank you very much for the testing.

description: updated

I have uploaded the fix on system-config-printer for Ubuntu Saucy (13.10) now into the saucy-proposed repository. As soon as it gets approved instructions for testing the fix get posted here. Please test the package and report back here as this is required to make the update an official update for everyone using Saucy.

To the SRU team: debdiff attached.

Changed in gnome-control-center (Ubuntu Saucy):
status: New → Invalid
Changed in system-config-printer (Ubuntu Saucy):
status: New → Fix Committed
importance: Undecided → High
Changed in gutenprint (Ubuntu Saucy):
importance: Undecided → Low
Changed in system-config-printer (Ubuntu):
importance: Low → High
Changed in system-config-printer (Ubuntu Saucy):
assignee: nobody → Till Kamppeter (till-kamppeter)
milestone: none → saucy-updates
Changed in gutenprint (Ubuntu Saucy):
milestone: none → saucy-updates
assignee: nobody → Till Kamppeter (till-kamppeter)
status: New → Triaged

Hello Jussi, or anyone else affected,

Accepted system-config-printer into saucy-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/system-config-printer/1.4.2+20130920-0ubuntu1.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: added: verification-needed
Jussi Lind (jussi-lind) wrote :

The fix is verified in Saucy. I was able to install Canon MP160 and print a test page without any problems.

$ dpkg -l | grep system-config-printer
ii system-config-printer-common 1.4.2+20130920-0ubuntu1.2 all Printer configuration GUI
ii system-config-printer-gnome 1.4.2+20130920-0ubuntu1.2 all Printer configuration GUI
ii system-config-printer-udev 1.4.2+20130920-0ubuntu1.2 amd64 Printer auto-configuration facility based on udev

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package system-config-printer - 1.4.2+20130920-0ubuntu1.2

---------------
system-config-printer (1.4.2+20130920-0ubuntu1.2) saucy-proposed; urgency=low

  * debian/patches/43_newprinter-fix-crash-and-infinite-loop-at-driver-download.patch:
    Fixed a crash and an infinite loop which happens when it comes to a drivcer
    download from OpenPrinting (LP: #1248303).
 -- Till Kamppeter <email address hidden> Fri, 10 Jan 2014 13:20:12 +0100

Changed in system-config-printer (Ubuntu Saucy):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for system-config-printer has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Haloiu Mihai (mhcoder) wrote :

This is my first post here, I hope this is the right place for this.

I have installed Ubuntu 13.10 x64, and I tried installing my printer "Canon Pixma MP250". Here is what happend:
I have opened system-config-printer and tried to add the new printer. In the new printer window it showed "Canon MP250 (....)" no "Pixma", I've selected this printer and then tried to install the gutenprint driver. I tried this several times and it froze every time.

I managed to install the driver by lunching system-config-printer from the terminal and when it froze I pressed Ctrl+C, it showed me this:
^CNo ID match for device usb://Canon/MP250%20series?serial=2D3DBE&interface=1:
MFG:Canon;MDL:MP250 series;CMD:BJL,BJRaster3,BSCCe,IVEC,IVECPLI;DES:Canon MP250 series;
There is no "Pixma" here. Even so the system-config-printer continued and I could select my printer and managed to print a test page.

Here is the system-config-printer version:
dpkg -l | grep system-config-printer
ii system-config-printer-common 1.4.2+20130920-0ubuntu1.2 all Printer configuration GUI
ii system-config-printer-gnome 1.4.2+20130920-0ubuntu1.2 all Printer configuration GUI
ii system-config-printer-udev 1.4.2+20130920-0ubuntu1.2 amd64 Printer auto-configuration facility based on udev

Uploaded system-config-printer 1.4.3+20140219-0ubuntu2 with an additional fix. If you have still problems with package download and the package being used after the download, please wait for the new system-config-printer package to appear under the updates for Trusty (14.04) and try again.

If you do not have 14.04 installed start a live system (CD or USB stick) and do a system update within the live session. Do not reboot if you are asked for in the end of the update process, simply ignore the pop-up. Then try the printer setup in that live system.

Jeffrey Flaker (jflaker) wrote :

using system-config-printer allowed me to add a printer. The utility from the menu finds the printer but tells me it failed to add printer.

Francesco Tarantini (fraxav88) wrote :

I was able to install my Canon MP600 on a fresh Ubuntu 14.04 without any problems.

Rolf Leggewie (r0lf) wrote :

saucy has seen the end of its life and is no longer receiving any updates. Marking the saucy task for this ticket as "Won't Fix".

Changed in gutenprint (Ubuntu Saucy):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers