Zstd: Impossible de faire fonctionner la fonctionnalité squashfs

Créé le 8 août 2017  ·  3Commentaires  ·  Source: facebook/zstd

J'ai essayé de patcher à la fois 4.12.5 et 4.13-rc4. Les correctifs s'appliquent proprement et j'ai défini CONFIG_SQUASHFS_ZSTD=y, CONFIG_XXHASH=y et CONFIG_ZSTD_DECOMPRESS=y.

J'ai utilisé les outils squashfs d' ici , cela se compile bien et j'ai réussi à créer les squashfs.

Lorsque je monte, je reçois juste une erreur d'entrée/sortie ayant échoué. Dans dmesg, j'ai repéré ceci:

[ 4377.243871] SQUASHFS error: Failed to initialize zstd decompressor [ 4377.243872] SQUASHFS error: zstd decompression failed, data probably corrupt [ 4377.243873] SQUASHFS error: squashfs_read_data failed to read block 0x28b3d [ 4377.243874] SQUASHFS error: Unable to read metadata cache entry [28b3d] [ 4377.243875] SQUASHFS error: Unable to read inode 0x106709e0

J'ai lu que les correctifs du noyau étaient destinés à 4.10, ai-je tort de m'attendre à ce qu'ils fonctionnent sur 4.12+ ou est-ce peut-être les outils squashfs qui créent des systèmes de fichiers corrompus ?

Tout commentaire est apprécié, et faites-moi savoir s'il y a plus d'informations nécessaires.

Commentaire le plus utile

Merci pour le reportage @escalade. Je pense avoir repéré le bug, zstd_wrapper.c:83 devrait être

    stream = ZSTD_initDStream(max_t(size_t, msblk->block_size, SQUASHFS_METADATA_SIZE), wksp->mem, wksp->mem_size);

Cela a dû être exposé lorsque j'ai ajouté des tables supplémentaires au ZSTD_DCtx , ce qui a augmenté la taille de la fenêtre sur une limite de puissance 2. Je vous tiendrai au courant quand je l'aurai confirmé.

Tous les 3 commentaires

Merci pour le reportage @escalade. Je pense avoir repéré le bug, zstd_wrapper.c:83 devrait être

    stream = ZSTD_initDStream(max_t(size_t, msblk->block_size, SQUASHFS_METADATA_SIZE), wksp->mem, wksp->mem_size);

Cela a dû être exposé lorsque j'ai ajouté des tables supplémentaires au ZSTD_DCtx , ce qui a augmenté la taille de la fenêtre sur une limite de puissance 2. Je vous tiendrai au courant quand je l'aurai confirmé.

C'était rapide :)

J'ai confirmé le correctif, merci encore pour le rapport. Je mettrai à jour les correctifs ici et sur les listes de diffusion. J'ajouterai également le correctif squashfs-tools au référentiel zstd. Les correctifs sont maintenant testés sur la branche master, je vais supprimer ce commentaire obsolète à propos de 4.10.

Cette page vous a été utile?
0 / 5 - 0 notes