[Ubuntu 20.10] zlib: DFLTCC compression level switching issues
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Skipper Bug Screeners | ||
zlib (Ubuntu) |
Fix Released
|
Undecided
|
Michael Hudson-Doyle | ||
Focal |
Fix Released
|
Undecided
|
Michael Hudson-Doyle | ||
Groovy |
Fix Released
|
Undecided
|
Michael Hudson-Doyle |
Bug Description
SRU Justification:
==================
[Impact]
* This SRU fixes a combination of multiple issues:
* zlib DFLTCC compression level switching can corrupt data because hardware and software compression states become desynchronized. (LP 1893170)
* Since zlib is not working on all s390x system configurations support for switching between software and hardware compression is required especially for Java. (LP 1882494)
* zlib on s390x may produce incomplete raw streams (but not gzip/zlib). (LP 1889059)
[Test Case]
* Since especially DFLTCC requires a s390x generation z15 or LinuxONE III the tests need to be done by IBM.
* IBM has a set of tests available, that exercise public zlib APIs by calling them in different sequences with different buffer sizes and flush modes.
* Partially these come from the IBM z/OS team, who developed their own zlib support for the hardware accelerator, and partially they are developed by the IBM Linux team based on issues encountered during development as well as fuzzing.
* IBM also uses the zlib-ng test-suite as well as squash and stress-ng.
* Compress data using zlib/DFLTCC with different compression level and verify state and if data got corrupted or not. (LP 1893170)
* On a system with patched zlib package, switch between hardware and software compression and use zlib via the java.util.zip package (http://
* On a z15 system with hardware acceleration compression (DFLTCC) enabled, create a raw (negative windowBits value) stream with zlib. Then check if EOBS is missing or truncated. (LP 1889059)
[Regression Potential]
* There is a certain risk for regressions with the modifications that are introduced by the four LP bugs.
* In case the package fails entirely, it will have (in worst case) an impact on all zlib, gzip and DFLTCC compression/
* If potential issues are limited to hardware assisted compression (which is more likely, since these patches are mostly about hw assisted compression), then issues would be limited to systems that provide this feature (latest s390x generation only).
* A switch back to software got introduced (by setting DFLTCC=0 environment variable) that will help to mitigate a potential negative impact of the hw assisted compression.
* Only the latest s390x generation (z15 and LinuxONE III) supports hardware assisted DFLTCC and is potentially affected.
* A patched test package was made available and got successfully tested by IBM. All four bugs were finally considered as solved with zlib (1:1.2.
__________
Description: zlib: DFLTCC compression level switching issues
Symptom: Switching compression levels corrupts data
Problem: Hardware and software compression states become desynchronized.
Solution: Improve compression state synchronization. Since zlib project
does not accept patches at the moment, the fix has been
https:/
The commitid is 992a7afc3edfa51
Reproduction: Not possible with popular command line tools. The issues were
https:/
This needs also be applied against 20.04 !
Changed in zlib (Ubuntu Groovy): | |
assignee: | Skipper Bug Screeners (skipper-screen-team) → Michael Hudson-Doyle (mwhudson) |
Changed in zlib (Ubuntu Focal): | |
assignee: | nobody → Michael Hudson-Doyle (mwhudson) |
Changed in ubuntu-z-systems: | |
importance: | Undecided → High |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
tags: | added: id-5f47e13db3cb5759fc5c5d2f |
Changed in ubuntu-z-systems: | |
status: | New → In Progress |
description: | updated |
description: | updated |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Fix Released |
tags: | added: fr-590 |
Default Comment by Bridge