Public bug reported:

During my recent work on LP: #2129676 I discovered that on jammy and
noble there's a qpdf test failing (processing fuzz-16214.pdf)
consistently on s390x. The issue also happens for qpdf that's currently
in the archive (without my patches).

This is in the build log:
```
Running /<<PKGBUILDDIR>>/qpdf/qtest/specific-bugs.test
specific-bugs test 23 (stream in object stream) FAILED
cwd: /<<PKGBUILDDIR>>/qpdf/qtest/qpdf
command: qpdf --preserve-unreferenced fuzz-16214.pdf a.pdf
expected output in fuzz-16214.out
 at specific-bugs.test line 74.
--> BEGIN EXPECTED OUTPUT <--
WARNING: fuzz-16214.pdf: can't find PDF header
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 124): stream 
dictionary lacks /Length key
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): attempting to 
recover stream length
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): recovered stream 
length: 722
WARNING: fuzz-16214.pdf (xref stream, offset 116): Cross-reference stream data 
has the wrong size; expected = 92; actual = 196
WARNING: fuzz-16214.pdf: reported number of objects (6) is not one plus the 
highest object number (35)
WARNING: fuzz-16214.pdf (object 14 0, offset 652): expected dictionary key but 
found non-name object; inserting key /QPDFFake1
WARNING: fuzz-16214.pdf (object 14 0, offset 734): expected endobj
WARNING: fuzz-16214.pdf: file is damaged
WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 2 
0: stream inflate: inflate: data: invalid code lengths set
WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 5 
has wrong type
WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
WARNING: fuzz-16214.pdf (object 21 0, offset 3639): expected endstream
WARNING: fuzz-16214.pdf (object 21 0, offset 3112): attempting to recover 
stream length
WARNING: fuzz-16214.pdf (object 21 0, offset 3112): recovered stream length: 340
WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object stream; 
treating as null
WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object stream; 
treating as null
qpdf: operation succeeded with warnings; resulting file may have some problems
--> END EXPECTED OUTPUT <--
--> BEGIN ACTUAL OUTPUT <--
WARNING: fuzz-16214.pdf: can't find PDF header
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 124): stream 
dictionary lacks /Length key
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): attempting to 
recover stream length
WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): recovered stream 
length: 722
WARNING: fuzz-16214.pdf (xref stream, offset 116): Cross-reference stream data 
has the wrong size; expected = 92; actual = 196
WARNING: fuzz-16214.pdf: reported number of objects (6) is not one plus the 
highest object number (35)
WARNING: fuzz-16214.pdf (object 14 0, offset 652): expected dictionary key but 
found non-name object; inserting key /QPDFFake1
WARNING: fuzz-16214.pdf (object 14 0, offset 734): expected endobj
WARNING: fuzz-16214.pdf: file is damaged
WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 2 
0: stream inflate: inflate: data: Operation-Ending-Supplemental Code is 0x27
WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 5 
has wrong type
WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
WARNING: fuzz-16214.pdf (object 21 0, offset 3639): expected endstream
WARNING: fuzz-16214.pdf (object 21 0, offset 3112): attempting to recover 
stream length
WARNING: fuzz-16214.pdf (object 21 0, offset 3112): recovered stream length: 340
WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object stream; 
treating as null
WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object stream; 
treating as null
qpdf: operation succeeded with warnings; resulting file may have some problems
--> END ACTUAL OUTPUT <--
--> DIFF EXPECTED ACTUAL <--
--- /tmp/testtemp.12181/expected        2025-11-18 14:23:43.084271280 +0000
+++ /tmp/testtemp.12181/actual  2025-11-18 14:23:43.084271280 +0000
@@ -9,7 +9,7 @@
 WARNING: fuzz-16214.pdf: file is damaged
 WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
 WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
-WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 2 
0: stream inflate: inflate: data: invalid code lengths set
+WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 2 
0: stream inflate: inflate: data: Operation-Ending-Supplemental Code is 0x27
 WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
 WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 5 
has wrong type
 WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
--> END DIFFERENCES <--

```

There has to be something s390x specific making it behave in a different
way in that environment. Every other architecture I tested (basically
everything I had available in PPA) was executing tests correctly.

Newer releases (Plucky+) work fine. I'm looking for an opportunity to
bisect it on s390x.

** Affects: qpdf (Ubuntu)
     Importance: Medium
     Assignee: Dariusz Gadomski (dgadomski)
         Status: New

** Affects: qpdf (Ubuntu Jammy)
     Importance: Medium
     Assignee: Dariusz Gadomski (dgadomski)
         Status: New

** Affects: qpdf (Ubuntu Noble)
     Importance: Medium
     Assignee: Dariusz Gadomski (dgadomski)
         Status: New

** Also affects: qpdf (Ubuntu Jammy)
   Importance: Undecided
       Status: New

** Also affects: qpdf (Ubuntu Noble)
   Importance: Undecided
       Status: New

** Description changed:

  During my recent work on LP: #2129676 I discovered that on jammy and
  noble there's a qpdf test failing (processing fuzz-16214.pdf)
  consistently on s390x. The issue also happens for qpdf that's currently
  in the archive (without my patches).
  
  This is in the build log:
  ```
  Running /<<PKGBUILDDIR>>/qpdf/qtest/specific-bugs.test
  specific-bugs test 23 (stream in object stream) FAILED
  cwd: /<<PKGBUILDDIR>>/qpdf/qtest/qpdf
  command: qpdf --preserve-unreferenced fuzz-16214.pdf a.pdf
  expected output in fuzz-16214.out
-  at specific-bugs.test line 74.
+  at specific-bugs.test line 74.
  --> BEGIN EXPECTED OUTPUT <--
  WARNING: fuzz-16214.pdf: can't find PDF header
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 124): stream 
dictionary lacks /Length key
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): attempting to 
recover stream length
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): recovered 
stream length: 722
  WARNING: fuzz-16214.pdf (xref stream, offset 116): Cross-reference stream 
data has the wrong size; expected = 92; actual = 196
  WARNING: fuzz-16214.pdf: reported number of objects (6) is not one plus the 
highest object number (35)
  WARNING: fuzz-16214.pdf (object 14 0, offset 652): expected dictionary key 
but found non-name object; inserting key /QPDFFake1
  WARNING: fuzz-16214.pdf (object 14 0, offset 734): expected endobj
  WARNING: fuzz-16214.pdf: file is damaged
  WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
  WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
  WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 
2 0: stream inflate: inflate: data: invalid code lengths set
  WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 5 
has wrong type
  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
  WARNING: fuzz-16214.pdf (object 21 0, offset 3639): expected endstream
  WARNING: fuzz-16214.pdf (object 21 0, offset 3112): attempting to recover 
stream length
  WARNING: fuzz-16214.pdf (object 21 0, offset 3112): recovered stream length: 
340
  WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object 
stream; treating as null
  WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object 
stream; treating as null
  qpdf: operation succeeded with warnings; resulting file may have some problems
  --> END EXPECTED OUTPUT <--
  --> BEGIN ACTUAL OUTPUT <--
  WARNING: fuzz-16214.pdf: can't find PDF header
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 124): stream 
dictionary lacks /Length key
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): attempting to 
recover stream length
  WARNING: fuzz-16214.pdf (xref stream: object 5 0, offset 353): recovered 
stream length: 722
  WARNING: fuzz-16214.pdf (xref stream, offset 116): Cross-reference stream 
data has the wrong size; expected = 92; actual = 196
  WARNING: fuzz-16214.pdf: reported number of objects (6) is not one plus the 
highest object number (35)
  WARNING: fuzz-16214.pdf (object 14 0, offset 652): expected dictionary key 
but found non-name object; inserting key /QPDFFake1
  WARNING: fuzz-16214.pdf (object 14 0, offset 734): expected endobj
  WARNING: fuzz-16214.pdf: file is damaged
  WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
  WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
  WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 
2 0: stream inflate: inflate: data: Operation-Ending-Supplemental Code is 0x27
  WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 5 
has wrong type
  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
  WARNING: fuzz-16214.pdf (object 21 0, offset 3639): expected endstream
  WARNING: fuzz-16214.pdf (object 21 0, offset 3112): attempting to recover 
stream length
  WARNING: fuzz-16214.pdf (object 21 0, offset 3112): recovered stream length: 
340
  WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object 
stream; treating as null
  WARNING: fuzz-16214.pdf, stream object 8 0: stream found inside object 
stream; treating as null
  qpdf: operation succeeded with warnings; resulting file may have some problems
  --> END ACTUAL OUTPUT <--
  --> DIFF EXPECTED ACTUAL <--
  --- /tmp/testtemp.12181/expected      2025-11-18 14:23:43.084271280 +0000
  +++ /tmp/testtemp.12181/actual        2025-11-18 14:23:43.084271280 +0000
  @@ -9,7 +9,7 @@
-  WARNING: fuzz-16214.pdf: file is damaged
-  WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
-  WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
+  WARNING: fuzz-16214.pdf: file is damaged
+  WARNING: fuzz-16214.pdf (object 1 0, offset 7189): expected n n obj
+  WARNING: fuzz-16214.pdf: Attempting to reconstruct cross-reference table
  -WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 
2 0: stream inflate: inflate: data: invalid code lengths set
  +WARNING: fuzz-16214.pdf (offset 7207): error decoding stream data for object 
2 0: stream inflate: inflate: data: Operation-Ending-Supplemental Code is 0x27
-  WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
-  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 
5 has wrong type
-  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
+  WARNING: fuzz-16214.pdf (offset 7207): getStreamData called on unfilterable 
stream
+  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): supposed object stream 
5 has wrong type
+  WARNING: fuzz-16214.pdf (object 11 0, offset 11551): object stream 5 has 
incorrect keys
  --> END DIFFERENCES <--
  
  ```
  
  There has to be something s390x specific making it behave in a different
  way in that environment. Every other architecture I tested (basically
  everything I had available in PPA) was executing tests correctly.
+ 
+ Newer releases (Plucky+) work fine. I'm looking for an opportunity to
+ bisect it on s390x.

** Changed in: qpdf (Ubuntu)
     Assignee: (unassigned) => Dariusz Gadomski (dgadomski)

** Changed in: qpdf (Ubuntu Noble)
     Assignee: (unassigned) => Dariusz Gadomski (dgadomski)

** Changed in: qpdf (Ubuntu Jammy)
     Assignee: (unassigned) => Dariusz Gadomski (dgadomski)

** Changed in: qpdf (Ubuntu Noble)
   Importance: Undecided => Medium

** Changed in: qpdf (Ubuntu)
   Importance: Undecided => Medium

** Changed in: qpdf (Ubuntu Jammy)
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2131944

Title:
  fuzz-16214 test failing on s390x

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qpdf/+bug/2131944/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to