Package: ftp.debian.org Severity: normal X-Debbugs-Cc: [email protected] Control: affects -1 + src:python-pyppmd User: [email protected] Usertags: remove
Hi ftpmaster,
While adding pybuild test support to python-pyppmd, we noticed
that some encoding and decoding cycles were failing to restore
compressed user data on big-endian architectures, for instance
on s390x[1]:
_____________________ test_ppmd8_encode_decode[1048576-1]
______________________
tmp_path =
PosixPath('/tmp/pytest-of-buildd/pytest-1/test_ppmd8_encode_decode_104851')
mem_size = 1048576, restore_method = 1
@pytest.mark.parametrize(
"mem_size, restore_method",
[
(8 << 20, pyppmd.PPMD8_RESTORE_METHOD_RESTART),
(8 << 20, pyppmd.PPMD8_RESTORE_METHOD_CUT_OFF),
(1 << 20, pyppmd.PPMD8_RESTORE_METHOD_RESTART),
(1 << 20, pyppmd.PPMD8_RESTORE_METHOD_CUT_OFF),
],
)
@pytest.mark.timeout(20)
def test_ppmd8_encode_decode(tmp_path, mem_size, restore_method):
length = 0
m = hashlib.sha256()
with testdata_path.joinpath("10000SalesRecords.csv").open("rb")
as f:
with tmp_path.joinpath("target.ppmd").open("wb") as target:
enc = pyppmd.Ppmd8Encoder(6, mem_size,
restore_method=restore_method)
data = f.read(READ_BLOCKSIZE)
while len(data) > 0:
m.update(data)
length += len(data)
target.write(enc.encode(data))
data = f.read(READ_BLOCKSIZE)
target.write(enc.flush(endmark=True))
shash = m.digest()
m2 = hashlib.sha256()
assert length == 1237262
length = 0
with tmp_path.joinpath("target.ppmd").open("rb") as target:
with tmp_path.joinpath("target.csv").open("wb") as out:
dec = pyppmd.Ppmd8Decoder(6, mem_size,
restore_method=restore_method)
data = target.read(READ_BLOCKSIZE)
while not dec.eof:
res = dec.decode(data)
m2.update(res)
out.write(res)
length += len(res)
if len(data) == 0:
break
data = target.read(READ_BLOCKSIZE)
> assert length == 1237262
E assert 1237261 == 1237262
tests/test_ppmd8.py:91: AssertionError
[1]:
https://buildd.debian.org/status/fetch.php?pkg=python-pyppmd&arch=s390x&ver=1.1.0%2Bds-2&stamp=1714557172&raw=0
If left as is, we suspect the package could corrupt user data
and is is not fit for release on big-endian systems. It should
be removed from the archive until such configuration is properly
supported.
Please remove python-pyppmd from s390x release architecture.
Have a nice day, :)
--
.''`. Étienne Mollier <[email protected]>
: :' : pgp: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
`. `' sent from /dev/pts/0, please excuse my verbosity
`-
signature.asc
Description: PGP signature

