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 on 2013-03-12
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
cups-filters (Ubuntu)
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

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

Changed in cups-filters (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
information type: Private → Public
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?

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.

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).

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  Edit
Everyone can see this information.

Other bug subscribers