pdftopdf assert failure: EPSON-Epson-Stylus-SX430: filter/pdftopdf/qpdf_pdftopdf.cc:34: Rotation getRotate(QPDFObjectHandle): Assertion `rot==0.0' failed.

Bug #1154318 reported by Carlen Deyanira Rodriguez Rangel
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
cups-filters (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

i'm not sure

ProblemType: Crash
DistroRelease: Ubuntu 13.04
Package: cups-filters 1.0.30-0ubuntu1 [modified: usr/bin/ttfread usr/lib/cups/backend/parallel usr/lib/cups/backend/serial usr/lib/cups/filter/bannertopdf usr/lib/cups/filter/commandtoescpx usr/lib/cups/filter/commandtopclx usr/lib/cups/filter/imagetopdf usr/lib/cups/filter/imagetoraster usr/lib/cups/filter/pdftoijs usr/lib/cups/filter/pdftoopvp usr/lib/cups/filter/pdftopdf usr/lib/cups/filter/pdftops usr/lib/cups/filter/pdftoraster usr/lib/cups/filter/rastertoescpx usr/lib/cups/filter/rastertopclx usr/lib/cups/filter/texttopdf usr/lib/cups/filter/urftopdf]
ProcVersionSignature: Ubuntu 3.8.0-11.20-generic 3.8.2
Uname: Linux 3.8.0-11-generic x86_64
NonfreeKernelModules: fglrx
ApportVersion: 2.9.1-0ubuntu1
Architecture: amd64
AssertionMessage: EPSON-Epson-Stylus-SX430: filter/pdftopdf/qpdf_pdftopdf.cc:34: Rotation getRotate(QPDFObjectHandle): Assertion `rot==0.0' failed.
Date: Tue Mar 12 21:56:43 2013
ExecutablePath: /usr/lib/cups/filter/pdftopdf
Lpstat:
 device for EPSON-Epson-Stylus-SX430: usb://EPSON/Stylus%20SX430?serial=4E5753593036303484&interface=1
 device for ImpresoRaWifi: dnssd://Epson%20Stylus%20SX430._pdl-datastream._tcp.local/
MachineType: MICRO-STAR INTERNATIONAL CO.,LTD MS-7599
MarkForUpload: True
Papersize: letter
PpdFiles:
 EPSON-Epson-Stylus-SX430: Epson Stylus SX430 Series - epson-inkjet-printer 1.0.0-1lsb3.2 (Seiko Epson Corporation LSB 3.2)
 ImpresoRaWifi: Epson Stylus SX430 Series - epson-inkjet-printer 1.0.0-1lsb3.2 (Seiko Epson Corporation LSB 3.2)
ProcCmdline: EPSON-Epson-Stylus-SX430 26 carlen output.pdf 1 Borderless=Off\ BrightnessValue=0\ Color=Color\ ColurWatermark=Red\ ContrastValue=0\ CorrectionColor=EPSONVivid\ CyanValue=0\ DensityWatermark=Level4\ GammaValue=2.2\ MagentaValue=0\ MediaType=PLAIN\ MirrorImage=Off\ OutputPaper=A4\ PageRegion=Letter\ PageSize=Letter\ PositionWatermark=Center\ PosterPrinting=Off\ PrintQuality=TextImage\ ReduceEnlarge=Off\ Rotate180=On\ SaturationValue=0\ ScaleRatio=100\ SizeWatermark=70\ Watermark=None\ YellowValue=0\ job-uuid=urn:uuid:7a78061c-7918-3fd1-5d26-e7d1fa01c66e\ job-originating-host-name=localhost\ time-at-creation=1363121802\ time-at-processing=1363121802 /var/spool/cups/d00026-001
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.8.0-11-generic root=UUID=e9570ccf-6f78-41d9-905e-ac39075d5754 ro quiet splash vt.handoff=7
Signal: 6
SourcePackage: cups-filters
StacktraceTop:
 __assert_fail_base (fmt=0x3ef9d86578 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x41a447 "rot==0.0", file=file@entry=0x41a450 "filter/pdftopdf/qpdf_pdftopdf.cc", line=line@entry=34, function=function@entry=0x41a480 "Rotation getRotate(QPDFObjectHandle)") at assert.c:92
 __GI___assert_fail (assertion=0x41a447 "rot==0.0", file=0x41a450 "filter/pdftopdf/qpdf_pdftopdf.cc", line=34, function=0x41a480 "Rotation getRotate(QPDFObjectHandle)") at assert.c:101
 ?? ()
 ?? ()
 ?? ()
Title: pdftopdf assert failure: EPSON-Epson-Stylus-SX430: filter/pdftopdf/qpdf_pdftopdf.cc:34: Rotation getRotate(QPDFObjectHandle): Assertion `rot==0.0' failed.
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

dmi.bios.date: 09/04/2010
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: V1.13
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: 770-C45 (MS-7599)
dmi.board.vendor: MICRO-STAR INTERNATIONAL CO.,LTD
dmi.board.version: 1.0
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: MICRO-STAR INTERNATIONAL CO.,LTD
dmi.chassis.version: 1.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrV1.13:bd09/04/2010:svnMICRO-STARINTERNATIONALCO.,LTD:pnMS-7599:pvr1.0:rvnMICRO-STARINTERNATIONALCO.,LTD:rn770-C45(MS-7599):rvr1.0:cvnMICRO-STARINTERNATIONALCO.,LTD:ct3:cvr1.0:
dmi.product.name: MS-7599
dmi.product.version: 1.0
dmi.sys.vendor: MICRO-STAR INTERNATIONAL CO.,LTD

Revision history for this message
Carlen Deyanira Rodriguez Rangel (carlen0505) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 __assert_fail_base (fmt=0x3ef9d86578 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x41a447 "rot==0.0", file=file@entry=0x41a450 "filter/pdftopdf/qpdf_pdftopdf.cc", line=line@entry=34, function=function@entry=0x41a480 <getRotate(QPDFObjectHandle)::__PRETTY_FUNCTION__> "Rotation getRotate(QPDFObjectHandle)") at assert.c:92
 __GI___assert_fail (assertion=0x41a447 "rot==0.0", file=0x41a450 "filter/pdftopdf/qpdf_pdftopdf.cc", line=34, function=0x41a480 <getRotate(QPDFObjectHandle)::__PRETTY_FUNCTION__> "Rotation getRotate(QPDFObjectHandle)") at assert.c:101
 getRotate (page=...) at filter/pdftopdf/qpdf_pdftopdf.cc:34
 QPDF_PDFTOPDF_Processor::autoRotateAll (this=0xa89500, dst_lscape=false, normal_landscape=ROT_90) at filter/pdftopdf/qpdf_pdftopdf_processor.cc:456
 processPDFTOPDF (proc=..., param=...) at filter/pdftopdf/pdftopdf_processor.cc:160

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in cups-filters (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
information type: Private → Public
Revision history for this message
Tobias Hoffmann (smilingthax) wrote :

The assert triggers because the PDF to be processed contains a /Rotation key which is not equal to 0, 90, 180 or 270.

Basically there are three possibilities:
 1) The pdf uses a value not allowed by the pdf specification.
 2) The value is close, but not exactly equal to one of the above rotation values
 3) The value is not normalized to [0;360) but is e.g. -90.

So to fix this I have to know what value the offending PDF uses instead, maybe you can attach the file?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

In general there should not be an assert getting triggered by a PDF file not conforming to the specs, but a way to gracefully error out.

Revision history for this message
Tobias Hoffmann (smilingthax) wrote :

Sure, there should not... and when compiled with -DNDEBUG it actually would not exit, but just assume 0.0 degrees rotation...
The assert basically was there, because this particular function only implemented the simple cases (taking care of nearly all pdfs in the wild) and was not touched since then...

I've updated bzr (revision 7046) to handle at least all multiples of 90 correctly (i.e. also negative ones) now and throw an exception when encountering a still unexpected value.

This may or may not fix pdftopdf for this particular pdf.
Either try the offending pdf with the current bazaar version of cups-filters (and watch out for 'Unexpected /Rotation value: ...' exceptions in the log), or I can check the pdf file (and make further changes to pdftopdf, if necessary).

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cups-filters - 1.0.31-0ubuntu1

---------------
cups-filters (1.0.31-0ubuntu1) raring; urgency=low

  * New upstream release
     - cups-browsed: cups-browsed removed valid local queues pointing to
       remote queues when cups-browsed did not shut down cleanly after
       the previous session, leaving the user with missing local accessor
       queues for some of the remote CUPS queues.
     - pdftopdf: Improved error output.
     - pdftopdf: getRotation now handles unusual cases more graceful
       (LP: #1154318).
 -- Till Kamppeter <email address hidden> Thu, 21 Mar 2013 16:38:20 +0100

Changed in cups-filters (Ubuntu):
status: New → Fix Released
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.