Skip 8 InnoDB compressed table tests on s390x:
innodb.zlob_geom, innodb_zip.{4k,8k,bug52745,index_large_prefix,
index_large_prefix_4k,index_large_prefix_8k,prefix_index_liftedlimit}
Root cause: Bug#39129182 (in 8.0.46/8.4.9/9.7.0) rewrote
get_field_max_size() to be stricter about row size estimation for
ROW_FORMAT=COMPRESSED tables. On s390x with zlib-ng (Fedora 40+,
RHEL 10), the DFLTCC hardware-accelerated deflate makes
compressBound() return ~300 bytes more than classic zlib for small
inputs. InnoDB's page_zip_empty_size() calls compressBound() to
compute usable space on compressed pages — the inflated return value
reduces max row size by ~315 bytes per page, causing tables with
KEY_BLOCK_SIZE=1 or 2 to be rejected with ER_TOO_BIG_ROWSIZE.
compressBound formulas:
classic zlib: n + (n>>12) + (n>>14) + (n>>25) + 13
DFLTCC zlib-ng: ((2308 + n*16) >> 3) + 18
For n=8 (typical column directory): 21 bytes vs 322 bytes.
Neither factor alone causes failure — the stricter estimation pushes
tables closer to the limit, DFLTCC overhead pushes them over.
x86_64 is unaffected (no DFLTCC). Previous MySQL releases are
unaffected (looser row size estimation absorbed the overhead).
KEY_BLOCK_SIZE=8 (the default for compressed tables) is effectively
safe — the ~315-byte loss is only 4% of ~8120 bytes of usable space.
|
||
|---|---|---|
| .fmf | ||
| .gitignore | ||
| boost-1.57.0-mpl-print.patch | ||
| boost-1.58.0-pool.patch | ||
| ci.fmf | ||
| gating.yaml | ||
| my.cnf.in | ||
| mysql8.4.rpmlintrc | ||
| mysql8.4.spec | ||
| mysql_config_multilib.sh | ||
| mysql-check-socket.sh | ||
| mysql-file-contents.patch | ||
| mysql-flush-logrotate.patch | ||
| mysql-install-test.patch | ||
| mysql-paths.patch | ||
| mysql-prepare-db-dir.sh | ||
| mysql-rpath.patch | ||
| mysql-scripts-common.sh | ||
| mysql-scripts.patch | ||
| mysql-sharedir.patch | ||
| mysql-wait-stop.sh | ||
| mysql.service.in | ||
| mysql.tmpfiles.d.in | ||
| mysql@.service.in | ||
| plans.fmf | ||
| README.mysql-docs | ||
| README.mysql-license | ||
| rh-skipped-tests-list-arm.list | ||
| rh-skipped-tests-list-base.list | ||
| rh-skipped-tests-list-ppc.list | ||
| rh-skipped-tests-list-s390.list | ||
| rpminspect.yaml | ||
| server.cnf.in | ||
| sources | ||
MySQL is distributed under GPL v2, but there are some licensing exceptions that allow the client libraries to be linked with a non-GPL application, so long as the application is under a license approved by Oracle. For details see 'The Universal FOSS Exception, Version 1.0': https://oss.oracle.com/licenses/universal-foss-exception/ A predecessor of that license exception is now deprecated 'FOSS License Exception': http://www.mysql.com/about/legal/licensing/foss-exception/ Some innobase code from Percona and Google is under BSD license. Some code related to test-suite is under LGPLv2.