`tests/store-deduplication.scm` fails on Asahi Linux

  • Open
  • quality assurance status badge
Details
2 participants
  • Lukas Navickas
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Lukas Navickas
Severity
normal

Debbugs page

Lukas Navickas wrote 3 months ago
(name . bug-guix@gnu.org)(address . bug-guix@gnu.org)
kPZSL8BhGLk6HIkNbtX91Ms36d6QD_w0AhFIGT7zuVxXdBKSFYKlUc_u18LHckSGMOzgOQ8VnnH9dSlQ5Ik-xNlDG1dkZyIPo25k-i23kvM=@pm.me
`copy-file/deduplicate, sparse files` tests fail on asahi linux.

i do not have adequate grounding on this topic, but i made a few empirical tests changing the inputs.

the original tests create a file in `/tmp`, and fail.
if instead the file is on disk, some(all?) tests pass.
if instead the inputs are changed from 2*4096 to 2*16834, some tests pass.

tmpfs on apple silicon has a block size of 16834. i'm guessing this corresponds to its RAM page size.

i'm inferring that this test has a hidden dependency: the block size of the underlying filesystem that contains the tested files. it may be desirable to account for this dependency.
Vagrant Cascadian wrote 3 weeks ago
(name . Lukas Navickas)(address . l.navickas@pm.me)(address . 74862@debbugs.gnu.org)
87ikp37zji.fsf@wireframe
On 2024-12-13, Lukas Navickas wrote:
Toggle quote (10 lines)
> `copy-file/deduplicate, sparse files` tests fail on asahi linux.
>
> i do not have adequate grounding on this topic, but i made a few empirical tests changing the inputs.
>
> the original tests create a file in `/tmp`, and fail.
> if instead the file is on disk, some(all?) tests pass.
> if instead the inputs are changed from 2*4096 to 2*16834, some tests pass.
>
> tmpfs on apple silicon has a block size of 16834. i'm guessing this corresponds to its RAM page size.

I suspect this is the same issue building guix on Debian ppc64el:


FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/8192/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/8192/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/9999/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/9999/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/16384/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/16384/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/22222/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 0/22222/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/8192/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/8192/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/9999/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/9999/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/16384/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/16384/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/22222/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 3333/22222/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/8192/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/8192/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/9999/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/9999/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/16384/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/16384/8192)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/22222/0)
FAIL: tests/store-deduplication.scm - copy-file/deduplicate, sparse files (holes: 8192/22222/8192)


Various architectures have different page sizes, for example:


Even within an architecture, it may vary, as ppc64el uses variable
4k-64k as opposed to arm64 which uses 4k, 16k (e.g. asahi), or 64k which
I believe is fixed at boot time and hardware dependent.


Toggle quote (4 lines)
> i'm inferring that this test has a hidden dependency: the block size
> of the underlying filesystem that contains the tested files. it may be
> desirable to account for this dependency.

At the very least, the test should be skipped if assumptions about ram
page sizes are made and the environment does not match those
assumptions...

For the short term, I plan on disabling this test on ppc64el for Debian,
but a better fix upstream would be appreciated! :)


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ7jxUQAKCRDcUY/If5cW
quxgAP0QvEH9cG/iYHKUzFGnVHAaLlYg582mOaR/ru+eMPRADAEAtVD7BBwBpg1v
HqW9rMEuX1laD8s+V4aCJ1b5jdvyqwQ=
=HH2d
-----END PGP SIGNATURE-----

?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74862@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74862
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help