Skip to content

Tests fail on ZFS-backed storage #353

@obbardc

Description

@obbardc

There has been a Debian bug report that desync's tests fail on ZFS-backed storage when building in a Debian environment.
Upstream: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1137623

Bug report:

I perform most of my Debian development work in unprivileged Incus
containers with ZFS for their underlying storage. In such setups,
several of desync's tests fail in a similar way:

=== RUN TestExtractWithNonStaticSeeds
assemble_test.go:442:
Error Trace: /build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/assemble_test.go:442
Error: Received unexpected error:
invalid argument
failure cloning blocks from testdata/blob2_corrupted to /tmp/TestExtractWithNonStaticSeeds1126043460/001/out
github.com/folbricht/desync.CloneRange
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/ioctl_linux.go:58
github.com/folbricht/desync.(*fileSeedSegment).clone
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/fileseed.go:240
github.com/folbricht/desync.(*fileSeedSegment).WriteInto
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/fileseed.go:178
github.com/folbricht/desync.AssembleFile.func1
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/assemble.go:178
golang.org/x/sync/errgroup.(*Group).Go.func1
/build/desync-1.0.1/debian/_build/src/golang.org/x/sync/errgroup/errgroup.go:93
runtime.goexit
/usr/lib/go-1.26/src/runtime/asm_amd64.s:1771
Test: TestExtractWithNonStaticSeeds
--- FAIL: TestExtractWithNonStaticSeeds (0.00s)

=== RUN TestExtractCommand/extract_with_corrupted_seed
extract_test.go:94:
Error Trace: /build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/cmd/desync/extract_test.go:94
Error: Received unexpected error:
resource temporarily unavailable
failure cloning blocks from /tmp/TestExtractCommand1197972145/001/.tmp-block2462010531 to /tmp/TestExtractCommand1197972145/001/.out1.3473831054
github.com/folbricht/desync.CloneRange
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/ioctl_linux.go:58
github.com/folbricht/desync.(*nullChunkSection).clone
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/nullseed.go:152
github.com/folbricht/desync.(*nullChunkSection).WriteInto
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/nullseed.go:120
github.com/folbricht/desync.AssembleFile.func1
/build/desync-1.0.1/debian/_build/src/github.com/folbricht/desync/assemble.go:178
golang.org/x/sync/errgroup.(*Group).Go.func1
/build/desync-1.0.1/debian/_build/src/golang.org/x/sync/errgroup/errgroup.go:93
runtime.goexit
/usr/lib/go-1.26/src/runtime/asm_amd64.s:1771
Test: TestExtractCommand/extract_with_corrupted_seed

I'm unsure if the desync binary is also similarly broken when run in
an environment using ZFS storage. Performing the build in an identical
setup with ext4-backed storage works, so I'm not reporting this as an
RC bug.

Do you have any ideas? I guess the next step would be to figure out how to reproduce this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions