<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests/cluster/cluster_test.go, branch dependabot/github_actions/actions/setup-go-7</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-go-7</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-go-7'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-07-16T20:07:54+00:00</updated>
<entry>
<title>tests/cluster: fix possible fd exhaustion</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T19:01:01+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=67e9abeb2830c517cbcbbd93de184055b2d4227b'/>
<id>urn:sha1:67e9abeb2830c517cbcbbd93de184055b2d4227b</id>
<content type='text'>
...and one typo.
</content>
</entry>
<entry>
<title>tests/cluster: enable TestClusterConcurrentRW per default</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T12:35:04+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=df552e13cd388d79c3e95ba78fb13ff927a0429b'/>
<id>urn:sha1:df552e13cd388d79c3e95ba78fb13ff927a0429b</id>
<content type='text'>
Add the -sharedstorage flag to the mounts and make it more
severe by adjusting the I/O and file sizes to arbitrary unaligned
values.

It passes *most of the time*.

If it fails, it's like this, and the reason is that there is no
fcntl locks in the READ path yet.

gocryptfs/tests/cluster$ go test -run TestClusterConcurrentRW -v
=== RUN   TestClusterConcurrentRW
doRead 2895433: corrupt block #0: cipher: message authentication failed
doRead 2895433: corrupt block #0: cipher: message authentication failed
doRead 2895433: corrupt block #0: cipher: message authentication failed
    cluster_test.go:98: readThread iteration 9165: ReadAt failed: read /var/tmp/gocryptfs-test-parent-1026/3021427391/TestClusterConcurrentRW.366469887.mnt1/foo: input/output error
 --- FAIL: TestClusterConcurrentRW (0.40s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.406s
</content>
</entry>
<entry>
<title>tests/cluster: note that ext4 provides no atomicity</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T05:50:11+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e16b80c01d655b1fce26183ca3ca72059472d494'/>
<id>urn:sha1:e16b80c01d655b1fce26183ca3ca72059472d494</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/cluster: add TestOpenTruncate</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-05T11:43:23+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e15e6dbeed885dd47fb89fc9a1f369916473d1de'/>
<id>urn:sha1:e15e6dbeed885dd47fb89fc9a1f369916473d1de</id>
<content type='text'>
This fails right now:

1 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/cluster$ go test -run TestOpenTruncate -v
=== RUN   TestOpenTruncate
    cluster_test.go:235: POSIX compliance issue: non-exlusive create failed with err=file exists
doWrite 2898550: corrupt header: ParseHeader: header is all-zero. Header hexdump: 000000000000000000000000000000000000
    cluster_test.go:240: iteration 1: WriteAt: write /var/tmp/gocryptfs-test-parent-1026/1896094179/TestOpenTruncate.4202105280.mnt2/foo: input/output error
 --- FAIL: TestOpenTruncate (0.10s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.099s
1 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/cluster$ go test -run TestOpenTruncate -v
=== RUN   TestOpenTruncate
    cluster_test.go:235: POSIX compliance issue: non-exlusive create failed with err=file exists
doRead 2898565: corrupt block #0: cipher: message authentication failed
ino2898565 fh9: RMW read failed: errno=5
    cluster_test.go:240: iteration 8: WriteAt: write /var/tmp/gocryptfs-test-parent-1026/652691834/TestOpenTruncate.281532388.mnt1/foo: input/output error
 --- FAIL: TestOpenTruncate (0.09s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.095s
</content>
</entry>
<entry>
<title>tests/cluster: add TestConcurrentCreate</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-05T10:42:33+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=13c6e523d6cd36b8f05a6db36dab62cbc5a081f6'/>
<id>urn:sha1:13c6e523d6cd36b8f05a6db36dab62cbc5a081f6</id>
<content type='text'>
This exercises the byte-range locks we just added.
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: use byte-range lock on file header creation</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-02T12:24:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b499d38b23f209eb49cbc37d3acd2f9444f5654f'/>
<id>urn:sha1:b499d38b23f209eb49cbc37d3acd2f9444f5654f</id>
<content type='text'>
Multiple host writing to the same empty file at the same time
could have overwritten each other's newly created file header,
leading to data corruption.

Fix the race by placing a byte-range lock on the file when
creating the file header.
</content>
</entry>
<entry>
<title>make format</title>
<updated>2026-03-08T20:36:42+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-03-08T20:36:42+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a456b934b62ba91feea973783f67a7df26d23224'/>
<id>urn:sha1:a456b934b62ba91feea973783f67a7df26d23224</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests: add cluster test</title>
<updated>2023-05-30T07:43:45+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-05-30T07:43:45+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3058b7978fd8dabd3e8565c9be816b1367bd196a'/>
<id>urn:sha1:3058b7978fd8dabd3e8565c9be816b1367bd196a</id>
<content type='text'>
finds out what happens if multiple
gocryptfs mounts write to one file concurrently
(usually, nothing good).

This use case is relevant for HPC clusters.
</content>
</entry>
</feed>
