openprinting-ppds crashed with IOError in ls()

Bug #618017 reported by Col. SC Sood(Retd) on 2010-08-14
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
foomatic-db (Ubuntu)
High
Unassigned
gutenprint (Ubuntu)
High
Unassigned
hplip (Ubuntu)
High
Unassigned
ptouch-driver (Ubuntu)
High
Unassigned
splix (Ubuntu)
High
Unassigned

Bug Description

Binary package hint: foomatic-db

After Update.

ProblemType: Crash
DistroRelease: Ubuntu 10.10
Package: openprinting-ppds 20100806-0ubuntu6
ProcVersionSignature: Ubuntu 2.6.35-15.21-generic 2.6.35.1
Uname: Linux 2.6.35-15-generic i686
Architecture: i386
CupsErrorLog:
 E [15/Aug/2010:04:21:59 +0530] [cups-driverd] Bad driver information file "/usr/share/cups/drv/sample.drv"!
 E [15/Aug/2010:04:22:04 +0530] [cups-driverd] Bad driver information file "/usr/share/cups/drv/sample.drv"!
Date: Sun Aug 15 04:21:57 2010
ExecutablePath: /usr/lib/cups/driver/openprinting-ppds
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100602.2)
InterpreterPath: /usr/bin/python2.6
Lpstat:
 device for Canon-MP140-series: usb://Canon/MP140%20series
 device for SCX-4200-Series: usb://Samsung/SCX-4200%20Series
MachineType: Acer, inc. Aspire 5920
PackageArchitecture: all
Papersize: a4
PpdFiles:
 SCX-4200-Series: Samsung SCX-4200, SpliX V. 2.0.0
 Canon-MP140-series: Canon PIXMA MP150 - CUPS+Gutenprint v5.2.6 Simplified
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.35-15-generic root=UUID=f0e8fc81-0858-484c-8351-12244d61732a ro quiet splash
ProcCmdline: python /usr/lib/cups/driver/openprinting-ppds list
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_IN.UTF8
PythonArgs: ['/usr/lib/cups/driver/openprinting-ppds', 'list']
SourcePackage: foomatic-db
Title: openprinting-ppds crashed with IOError in ls()
UserGroups:

dmi.bios.date: 03/14/2008
dmi.bios.vendor: Acer
dmi.bios.version: v1.3811
dmi.board.name: Chapala
dmi.board.vendor: Acer, Inc.
dmi.board.version: Not Applicable
dmi.chassis.type: 1
dmi.chassis.vendor: Acer, Inc.
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnAcer:bvrv1.3811:bd03/14/2008:svnAcer,inc.:pnAspire5920:pvrNotApplicable:rvnAcer,Inc.:rnChapala:rvrNotApplicable:cvnAcer,Inc.:ct1:cvrN/A:
dmi.product.name: Aspire 5920
dmi.product.version: Not Applicable
dmi.sys.vendor: Acer, inc.

tags: removed: need-duplicate-check
visibility: private → public
Till Kamppeter (till-kamppeter) wrote :

Looks like that your PPD archive file is broken or that there is not enough disk space for temporary files. Can you run the following commands in a terminal window and post the output here:

ls -l /usr/lib/cups/driver/openprinting-ppds
/usr/lib/cups/driver/openprinting-ppds list | wc -l
df -h

Changed in foomatic-db (Ubuntu):
status: New → Incomplete
Till Kamppeter (till-kamppeter) wrote :

The problem is most probably that the PPD archive issues a Traceback when it simply gets killed,

It can easily be reproduced by running the command

/usr/lib/cups/driver/openprinting-ppds list | less

and then pressing immediately "q" without scrolling down to the end of the list before.Then openprinting-ppds has not yet finished listing but less gets already closed and so the shell kills openprinting-ppds. This leads to a traceback of openprinting-ppds (it is a Python program).

Solution is to wrap the main function of openprinting-ppds in a "try: ... except: pass", so that all runtime errors get caught. This is really a minimum-invasive fix which cannot cause any regressions. Therefore I recommend it as a Final Freeze Exception.

The compressed PPD archives are generated by the following source packages, so the fix needs to be applied in all of them:

foomatic-db, gutenprint, hplip, splix, ptouch-driver

Changed in foomatic-db (Ubuntu):
status: Incomplete → Confirmed
Changed in hplip (Ubuntu):
status: New → Triaged
Changed in foomatic-db (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → High
Changed in hplip (Ubuntu):
importance: Undecided → High
Changed in gutenprint (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in splix (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in ptouch-driver (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in foomatic-db (Ubuntu):
milestone: none → ubuntu-10.10
Changed in gutenprint (Ubuntu):
milestone: none → ubuntu-10.10
Changed in hplip (Ubuntu):
milestone: none → ubuntu-10.10
Changed in ptouch-driver (Ubuntu):
milestone: none → ubuntu-10.10
Changed in splix (Ubuntu):
milestone: none → ubuntu-10.10
summary: - openprinting-ppds crashed with IOError in ls()
+ FFE: openprinting-ppds crashed with IOError in ls()
summary: - FFE: openprinting-ppds crashed with IOError in ls()
+ openprinting-ppds crashed with IOError in ls()
Changed in foomatic-db (Ubuntu):
status: Triaged → In Progress
Changed in gutenprint (Ubuntu):
status: Triaged → In Progress
Changed in ptouch-driver (Ubuntu):
status: Triaged → In Progress
Changed in splix (Ubuntu):
status: Triaged → In Progress
Changed in hplip (Ubuntu):
status: Triaged → In Progress
Changed in foomatic-db (Ubuntu):
status: In Progress → Fix Committed
Changed in hplip (Ubuntu):
status: In Progress → Fix Committed
Changed in splix (Ubuntu):
status: In Progress → Fix Committed
Changed in ptouch-driver (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ptouch-driver - 1.3-0ubuntu6

---------------
ptouch-driver (1.3-0ubuntu6) maverick; urgency=low

  * debian/local/pyppd/pyppd/pyppd-ppdfile.in: Suppress any kind of runtime
    error tracebacks by putting a "try: ... except: pass" construct around the
    main function call. This avoids Apport pop-ups when the execution of the
    self-extracting compressed PPD file archives gets stopped by the calling
    process (LP: #618017).
 -- Till Kamppeter <email address hidden> Tue, 21 Sep 2010 20:35:03 +0200

Changed in ptouch-driver (Ubuntu):
status: Fix Committed → Fix Released
Changed in gutenprint (Ubuntu):
status: In Progress → Fix Committed
Martin Pitt (pitti) wrote :

- main()
+ try:
+ main()
+ except:
+ pass

Nack. This will prevent any kind of error reporting and silently make the program fail (with even a 0 return code). So instead of pointing out what fails, this will make tracking down errors a nuisance.

Instead, this should just fix the actual crash (looks like the process was called without stdout, thus print fails?)

Martin Pitt (pitti) wrote :

same for the other uploaded packages.

Changed in foomatic-db (Ubuntu):
status: Fix Committed → Triaged
Changed in hplip (Ubuntu):
status: Fix Committed → Triaged
Changed in splix (Ubuntu):
status: Fix Committed → Triaged
Changed in ptouch-driver (Ubuntu):
status: Fix Released → Triaged
Changed in gutenprint (Ubuntu):
status: Fix Committed → Triaged
Changed in foomatic-db (Ubuntu):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package foomatic-db - 20100915-0ubuntu3

---------------
foomatic-db (20100915-0ubuntu3) maverick; urgency=low

  * debian/local/pyppd/pyppd/: Updated to pyppd 0.4.9, to suppress runtime
    error tracebacks by putting a "try: ... except ...: pass" construct around
    the main function call. This avoids Apport pop-ups when the execution of the
    self-extracting compressed PPD file archives gets stopped by the calling
    process (LP: #618017).
 -- Till Kamppeter <email address hidden> Wed, 22 Sep 2010 12:25:03 +0200

Changed in foomatic-db (Ubuntu):
status: Fix Committed → Fix Released
Changed in hplip (Ubuntu):
status: Triaged → In Progress
Changed in hplip (Ubuntu):
status: In Progress → Fix Committed
Changed in gutenprint (Ubuntu):
status: Triaged → In Progress
Changed in gutenprint (Ubuntu):
status: In Progress → Fix Committed
Changed in splix (Ubuntu):
status: Triaged → In Progress
Changed in splix (Ubuntu):
status: In Progress → Fix Committed
Changed in ptouch-driver (Ubuntu):
status: Triaged → In Progress
Changed in ptouch-driver (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hplip - 3.10.6-1ubuntu10

---------------
hplip (3.10.6-1ubuntu10) maverick; urgency=low

  * debian/local/pyppd/pyppd/: Updated to pyppd 0.4.9, to suppress runtime
    error tracebacks by putting a "try: ... except ...: pass" construct around
    the main function call. This avoids Apport pop-ups when the execution of the
    self-extracting compressed PPD file archives gets stopped by the calling
    process (LP: #618017).
 -- Till Kamppeter <email address hidden> Wed, 22 Sep 2010 13:23:03 +0200

Changed in hplip (Ubuntu):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gutenprint - 5.2.6-0ubuntu6

---------------
gutenprint (5.2.6-0ubuntu6) maverick; urgency=low

  * debian/local/pyppd/pyppd/: Updated to pyppd 0.4.9, to suppress runtime
    error tracebacks by putting a "try: ... except ...: pass" construct around
    the main function call. This avoids SIGPIPE crashes when the execution of
    the self-extracting compressed PPD file archives gets stopped by the
    calling process (LP: #618017).
 -- Till Kamppeter <email address hidden> Tue, 21 Sep 2010 20:45:03 +0200

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

This bug was fixed in the package splix - 2.0.0+20100802-0ubuntu4

---------------
splix (2.0.0+20100802-0ubuntu4) maverick; urgency=low

  * debian/local/pyppd/pyppd/: Updated to pyppd 0.4.9, to suppress runtime
    error tracebacks by putting a "try: ... except ...: pass" construct around
    the main function call. This avoids SIGPIPE crashes when the execution of
    the self-extracting compressed PPD file archives gets stopped by the
    calling process (LP: #618017).
 -- Till Kamppeter <email address hidden> Wed, 22 Sep 2010 16:00:03 +0200

Changed in splix (Ubuntu):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ptouch-driver - 1.3-0ubuntu7

---------------
ptouch-driver (1.3-0ubuntu7) maverick; urgency=low

  * debian/local/pyppd/pyppd/: Updated to pyppd 0.4.9. Here we do not suppress
    all runtime errors but only IOError and KeyboardInterrupt. This way we do
    not suppress errors which are caused by an actual bug (LP: #618017).
 -- Till Kamppeter <email address hidden> Wed, 23 Sep 2010 16:07:03 +0200

Changed in ptouch-driver (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers