Page MenuHomeFreeBSD

asomers (Alan Somers)
User

Projects

User Details

User Since
May 9 2014, 11:04 PM (636 w, 6 d)

Recent Activity

Yesterday

asomers added a reviewer for D58167: Reduce disk churn caused by "make update-packages": pkgbase.
Thu, Jul 23, 2:06 PM

Tue, Jul 21

asomers added a comment to D55047: fuse: Do not unconditionally overwrite local vnode size with remote.

Other than that inline comment, this LGTM. Thanks for fixing it. Do you need me to commit it for you? I can do that, after you address the one remaining comment.

Tue, Jul 21, 8:32 PM

Mon, Jul 20

asomers added inline comments to D55047: fuse: Do not unconditionally overwrite local vnode size with remote.
Mon, Jul 20, 10:49 PM

Fri, Jul 17

asomers committed R11:37df85442e17: filesystems/pjdfstest: fix the build in vanilla RISCV (authored by asomers).
filesystems/pjdfstest: fix the build in vanilla RISCV
Fri, Jul 17, 8:47 PM

Thu, Jul 16

asomers updated the diff for D58265: fusefs: add a simple in-memory file system for the tests.
  • Don't heap-allocate a std::vector
  • Use mount_fusefs with memfs
Thu, Jul 16, 8:33 PM
asomers added inline comments to D58265: fusefs: add a simple in-memory file system for the tests.
Thu, Jul 16, 8:01 PM
asomers added inline comments to D56165: mount_fusefs: Implement the fusermount functionality.
Thu, Jul 16, 7:56 PM

Wed, Jul 15

asomers committed R11:86f5c98d693c: editors/neovim-gtk: add missing files from previous commit (authored by asomers).
editors/neovim-gtk: add missing files from previous commit
Wed, Jul 15, 10:36 PM
asomers committed R11:21deed5fbbc3: editors/neovim-gtk: fix the build on RISCV (authored by asomers).
editors/neovim-gtk: fix the build on RISCV
Wed, Jul 15, 10:21 PM
asomers added inline comments to D56165: mount_fusefs: Implement the fusermount functionality.
Wed, Jul 15, 9:04 PM
asomers added inline comments to D58265: fusefs: add a simple in-memory file system for the tests.
Wed, Jul 15, 8:41 PM
asomers added a comment to D58265: fusefs: add a simple in-memory file system for the tests.

@arrowd what do you think of this? If we merge it, then we can eliminate my depedence on fuse-ext2 and your dependence on fuse-hello.

Wed, Jul 15, 7:21 PM
asomers requested review of D58265: fusefs: add a simple in-memory file system for the tests.
Wed, Jul 15, 7:20 PM

Tue, Jul 14

asomers added inline comments to D56165: mount_fusefs: Implement the fusermount functionality.
Tue, Jul 14, 8:52 PM

Mon, Jul 13

asomers committed R11:806f59c357a5: filesystems/xfuse: 0.7.1 (authored by asomers).
filesystems/xfuse: 0.7.1
Mon, Jul 13, 9:32 PM
asomers committed R11:652849a06f52: filesystems/ztop: 0.3.1 (authored by asomers).
filesystems/ztop: 0.3.1
Mon, Jul 13, 9:07 PM
asomers committed R11:a3f388d15740: devel/fsx: 0.3.2 (authored by asomers).
devel/fsx: 0.3.2
Mon, Jul 13, 8:17 PM
asomers added a comment to D56165: mount_fusefs: Implement the fusermount functionality.
In D56165#1334631, @kib wrote:
In D56165#1285144, @kib wrote:

As was discussed elsewhere, fuse server which times out the responses could cause lock cascades in VFS. This would have global consequences for the whole system.

Until the vnodes are locked around communication with userspace, I do not think this change is appropriate.

I think kib means "unlocked around communication with userspace". But I do not see how such a change could possibly work.

Fuse needs to make some way to ensure liveness of the inode (not vnode) around calls to the userspace.

Mon, Jul 13, 1:49 PM

Sun, Jul 12

asomers requested changes to D56165: mount_fusefs: Implement the fusermount functionality.
In D56165#1285144, @kib wrote:

As was discussed elsewhere, fuse server which times out the responses could cause lock cascades in VFS. This would have global consequences for the whole system.

Until the vnodes are locked around communication with userspace, I do not think this change is appropriate.

Sun, Jul 12, 4:28 PM

Sat, Jul 11

asomers committed rG4735ef6196bc: zonectl: display conventional zones better during RZ (authored by asomers).
zonectl: display conventional zones better during RZ
Sat, Jul 11, 8:32 PM
asomers closed D57512: zonectl: display conventional zones better during RZ.
Sat, Jul 11, 8:32 PM
asomers requested review of D58167: Reduce disk churn caused by "make update-packages".
Sat, Jul 11, 3:00 AM

Thu, Jul 9

asomers accepted D58130: fusefs: fix gcc build error with shadowed variable in tests.

LGTM

Thu, Jul 9, 6:37 PM

Wed, Jul 8

asomers committed rG1d02c2536c7b: fusefs: proofread an error message in the tests (authored by asomers).
fusefs: proofread an error message in the tests
Wed, Jul 8, 5:58 PM
asomers committed rGc57b054c9e7d: fusefs: fix a race in the pre-init tests (authored by asomers).
fusefs: fix a race in the pre-init tests
Wed, Jul 8, 5:58 PM
asomers committed rG2da045abb9f0: fusefs: fix error handling when reading a directory's sticky bit (authored by asomers).
fusefs: fix error handling when reading a directory's sticky bit
Wed, Jul 8, 5:58 PM
asomers committed rGed15ec6695f3: fusefs: only search for FREAD fufh in readdir (authored by CismonX <admin@cismon.net>).
fusefs: only search for FREAD fufh in readdir
Wed, Jul 8, 5:58 PM

Fri, Jul 3

asomers committed rGee1c3d38a26a: fusefs: fix vnode locking violations during execve (authored by asomers).
fusefs: fix vnode locking violations during execve
Fri, Jul 3, 4:28 PM
asomers closed D57536: fusefs: fix vnode locking violations during execve.
Fri, Jul 3, 4:28 PM

Thu, Jul 2

asomers updated the diff for D57536: fusefs: fix vnode locking violations during execve.

Respond to @markj's latest comments

Thu, Jul 2, 11:07 PM

Tue, Jun 30

asomers committed R11:02e041099893: net-mgmt/geom-exporter: 0.1.4 (authored by asomers).
net-mgmt/geom-exporter: 0.1.4
Tue, Jun 30, 11:02 PM
asomers committed R11:28b57c3591d4: sysutils/gstat-rs: 0.1.9 (authored by asomers).
sysutils/gstat-rs: 0.1.9
Tue, Jun 30, 11:02 PM
asomers accepted D57966: evdev: use a prometheus-safe label for ev_sysctl_tree.
Tue, Jun 30, 2:51 PM
asomers committed R11:ca01037d9981: net-mgmt/nfs-exporter: 0.4.7 (authored by asomers).
net-mgmt/nfs-exporter: 0.4.7
Tue, Jun 30, 2:53 AM

Mon, Jun 29

asomers committed R11:638ebd4decbd: filesystems/py-libzfs: v2.0.1 (authored by asomers).
filesystems/py-libzfs: v2.0.1
Mon, Jun 29, 6:34 PM

Sun, Jun 28

asomers added a comment to D57536: fusefs: fix vnode locking violations during execve.

The new dtrace probes are just to help develop these test cases. I'll remove them before I commit.

Sun, Jun 28, 11:05 PM
asomers added inline comments to D57536: fusefs: fix vnode locking violations during execve.
Sun, Jun 28, 11:04 PM
asomers updated the diff for D57536: fusefs: fix vnode locking violations during execve.
  • Convert tests from sh to C++
  • Fix a mutex recursion panic
Sun, Jun 28, 11:04 PM
asomers accepted D57920: padlock.4: Update slightly for 64-bit hardware.
Sun, Jun 28, 7:33 PM

Fri, Jun 26

asomers committed R11:d6a37d99e723: sysutils/py-salt: mark as BROKEN with python-3.12+ (authored by asomers).
sysutils/py-salt: mark as BROKEN with python-3.12+
Fri, Jun 26, 8:07 PM

Wed, Jun 24

asomers added a reverting change for rGe03ed9daeb49: fts: refactor to use fd-relative operations internally: rGbd1c0ff49c48: Revert "fts: refactor to use fd-relative operations internally".
Wed, Jun 24, 5:02 PM
asomers committed rGbd1c0ff49c48: Revert "fts: refactor to use fd-relative operations internally" (authored by asomers).
Revert "fts: refactor to use fd-relative operations internally"
Wed, Jun 24, 5:02 PM

Jun 23 2026

asomers committed rGb7d2f7c1a68c: fusefs: fix two intermittency bugs in the destroy tests (authored by asomers).
fusefs: fix two intermittency bugs in the destroy tests
Jun 23 2026, 11:32 PM
asomers closed D57787: fusefs: fix two intermittency bugs in the destroy tests.
Jun 23 2026, 11:32 PM
asomers added inline comments to D57787: fusefs: fix two intermittency bugs in the destroy tests.
Jun 23 2026, 11:30 PM
asomers committed rG381ebe25f0b9: fusefs: proofread an error message in the tests (authored by asomers).
fusefs: proofread an error message in the tests
Jun 23 2026, 8:50 PM
asomers added inline comments to D57781: fusefs: fix a race in the pre-init tests.
Jun 23 2026, 8:50 PM
asomers requested review of D57787: fusefs: fix two intermittency bugs in the destroy tests.
Jun 23 2026, 8:45 PM
asomers closed D57781: fusefs: fix a race in the pre-init tests.
Jun 23 2026, 6:02 PM
asomers committed rG2c1482e30536: fusefs: fix a race in the pre-init tests (authored by asomers).
fusefs: fix a race in the pre-init tests
Jun 23 2026, 6:02 PM
asomers requested review of D57781: fusefs: fix a race in the pre-init tests.
Jun 23 2026, 5:15 PM
asomers committed rGe03ed9daeb49: fts: refactor to use fd-relative operations internally (authored by Jitendra Bhati <bhatijitendra2022@gmail.com>).
fts: refactor to use fd-relative operations internally
Jun 23 2026, 2:55 PM

Jun 18 2026

asomers added a comment to D56605: tests: Add better pjdfstest integration.

This version of pjdfstest requires a pjdfstest user, which we currently
don't have. The current plan is for the pjdfstest package to create the
user upon installation.

What about just using the tests user in the upstream port?

% id tests
uid=977(tests) gid=977(tests) groups=977(tests)
Jun 18 2026, 11:11 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

Dang -- not bad. Are there any known data creation races that need to be managed in the Rust implementation? How much "tire kicking" has the Rust version gotten so far? How about A/B test code coverage from the kernel?

Jun 18 2026, 11:09 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

I'm sorry -- y'all are right about the 2 implementations being able to coexist. 15 seconds is really short, but that's done on an in-memory filesystem, whereas our tests are run on physical device/virtual compute (so vSphere, etc) backed devices with a WITNESS/INVARIANTS enabled kernel (runtime is ~10 minutes). I'm not sure what the kernel options were for the 15 second run, but regardless, it would probably be at least an order of magnitude longer than the runtime for the new pjdfstest implementation.

Jun 18 2026, 10:50 PM

Jun 17 2026

asomers added a comment to D56605: tests: Add better pjdfstest integration.

It's a regression for folks that use the tool in-tree as-designed because:

  1. The existing tool does not support the configuration format required by the rust tool. Execution is driven by prove/kyua .
Jun 17 2026, 10:49 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

...

It's all yours: https://github.com/asomers/py-pjdfstest .

Thank you!

Also, I want to caution you that Python has an additional handicap: it's C interface is much more awkward than Rust's. The Rust standard library is simple enough that for many things, we use it directly to test the file system. And for other stuff, it's pretty easy to call Rust's libc bindings. But the Python version needs to define a Python-C interface for pretty much everything that touches the file system.

Yeah, the CFFI part is kind of annoying, but it's a part of the joy of doing C bindings in python, unless you have a thing for SWIG or doing everything with the raw python-C APIs *shudders*.

BTW, what version of Rust is OneFS stuck on? If it isn't too old, we may be able to make pjdfstest work on it.

1.74.1, which was released in 12/2023. I don't honestly know if you want to deal with that pain :(.

Jun 17 2026, 8:51 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

I can't get into details too much, but yes.. ~12 hours if I'm lucky because it has to bootstrap using the stage 1 compiler instead of rebuilding everything with the stage 2 compiler (which FreeBSD can do).

Jun 17 2026, 8:05 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

This forces all end-users of pjdfstest to build/install the new rust application/binding instead of the simple C application in tree. I would argue that's a regression.

Dell is stuck on an old version of rust for various reasons and upgrading the builder image/toolchain requires a proverbial act of Congress (I love that compiling a new toolchain requires a builder host with 768GB+ of RAM/12 CPUs in order to get the operation done sometime within a day of when operation is started). This is part of the reason why I wasn't on the bandwagon of adopting rust in everything in base, despite the fact that I really like rust as a language in concept.

Jun 17 2026, 7:50 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

This forces all end-users of pjdfstest to build/install the new rust binding instead of the simple C application in tree.
I think it would be a good idea to add a build option to build/run either one or the other. Otherwise, some consumers will be broken by this change because not every has access to the rust toolchain.

Jun 17 2026, 7:44 PM
asomers accepted D56605: tests: Add better pjdfstest integration.
Jun 17 2026, 7:07 PM
asomers added inline comments to D56605: tests: Add better pjdfstest integration.
Jun 17 2026, 6:30 PM
asomers closed D57609: filesystems/pjdfstest: 0.2.2.
Jun 17 2026, 5:50 PM
asomers committed R11:baa1fff8e2f3: filesystems/pjdfstest: 0.2.2 (authored by asomers).
filesystems/pjdfstest: 0.2.2
Jun 17 2026, 5:50 PM
asomers added a comment to D57609: filesystems/pjdfstest: 0.2.2.

Ok, git arc worked after squashing my commits.

Jun 17 2026, 5:45 PM
asomers updated the diff for D57609: filesystems/pjdfstest: 0.2.2.
  • fixup: use LTO_UNSAFE instead of WITHOUT_LTO
Jun 17 2026, 5:44 PM
asomers added a comment to D57609: filesystems/pjdfstest: 0.2.2.

Great. And BTW, I'll apply @arrowd 's suggestion too. I can't update the diff. Lately, arc diff --update doesn't seem to work very well. Even if I haven't rebased my branch, that command complains that it's got far too many revisions to upload. I don't know why.

Have you tried git-arc? It's in tools/tools/git and in the ports tree as devel/freebsd-git-arc. I haven't used arc directly in a long time.

Jun 17 2026, 5:36 PM
asomers added a comment to D57609: filesystems/pjdfstest: 0.2.2.

Great. And BTW, I'll apply @arrowd 's suggestion too. I can't update the diff. Lately, arc diff --update doesn't seem to work very well. Even if I haven't rebased my branch, that command complains that it's got far too many revisions to upload. I don't know why.

Jun 17 2026, 5:21 PM
asomers added a comment to D57609: filesystems/pjdfstest: 0.2.2.

I applied this patch, built a pjdfstest-0.2.2 test package and installed it in a VM. Now pjdfstest just complains about a missing user:

root@freebsd:/usr/tests/sys/fs/pjdfstest # kyua test
tmpfs:tmpfs  ->  failed: atf-check failed; see the output of the test for details  [0.110s]
ufs:ufs1  ->  failed: atf-check failed; see the output of the test for details  [0.190s]
ufs:ufs2_nosu  ->  failed: atf-check failed; see the output of the test for details  [0.153s]
ufs:ufs2_su  ->  failed: atf-check failed; see the output of the test for details  [0.158s]
ufs:ufs2_suj  ->  failed: atf-check failed; see the output of the test for details  [0.172s]
zfs:zfs  ->  sysctl_register_oid: can't re-use a leaf (vfs.zfs.metaslab.condense_pct)!
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
failed: atf-check failed; see the output of the test for details  [0.882s]
zfs:zfs_nullfs  ->  failed: atf-check failed; see the output of the test for details  [0.196s]
p9fs:p9fs  ->  skipped: No p9fs shares configured  [0.069s]

Results file id is usr_tests_sys_fs_pjdfstest.20260616-144227-803467
Results saved to /root/.kyua/store/results.usr_tests_sys_fs_pjdfstest.20260616-144227-803467.db

0/8 passed (0 broken, 7 failed, 1 skipped)
root@freebsd:/usr/tests/sys/fs/pjdfstest # pjdfstest
error: pjdfstest: no such user
root@freebsd:/usr/tests/sys/fs/pjdfstest # kyua debug tmpfs:tmpfs
Executing command [ mkdir mnt ]
Executing command [ mount -t tmpfs none mnt ]
Executing command [ pjdfstest -c pjdfstest.toml -p mnt ]
Fail: incorrect exit status: 1, expected: 0
stdout:

stderr:
error: pjdfstest: no such user

Files left in work directory after failure: mnt, pjdfstest.toml
tmpfs:tmpfs  ->  failed: atf-check failed; see the output of the test for details
Jun 17 2026, 3:22 PM

Jun 16 2026

asomers requested review of D57609: filesystems/pjdfstest: 0.2.2.
Jun 16 2026, 2:23 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

It took a while, but I found the problem. It's this commit: https://github.com/freebsd/freebsd-ports/commit/83a19a60d13fe . For some reason, that commit forces panic=abort for any Rust port that uses LTO, which is most of them. I don't know why diizzy included that line. But I can confirm that removing that line fixes the problem.

But why is pjdfstest panicking in the first place?

Jun 16 2026, 2:06 PM
asomers added a comment to D56605: tests: Add better pjdfstest integration.

It took a while, but I found the problem. It's this commit: https://github.com/freebsd/freebsd-ports/commit/83a19a60d13fe . For some reason, that commit forces panic=abort for any Rust port that uses LTO, which is most of them. I don't know why diizzy included that line. But I can confirm that removing that line fixes the problem.

Jun 16 2026, 12:57 AM

Jun 15 2026

asomers added a comment to D56605: tests: Add better pjdfstest integration.

I'll take a look at the UFSv1 failure.

Jun 15 2026, 8:42 PM

Jun 14 2026

asomers added inline comments to D57536: fusefs: fix vnode locking violations during execve.
Jun 14 2026, 11:15 PM
asomers planned changes to D57536: fusefs: fix vnode locking violations during execve.
Jun 14 2026, 6:44 PM
asomers added inline comments to D57536: fusefs: fix vnode locking violations during execve.
Jun 14 2026, 6:44 PM
asomers committed rGb4af6a4cccc3: fusefs: fix error handling when reading a directory's sticky bit (authored by asomers).
fusefs: fix error handling when reading a directory's sticky bit
Jun 14 2026, 5:56 PM
asomers closed D57588: fusefs: fix error handling when reading a directory's sticky bit.
Jun 14 2026, 5:56 PM
asomers requested review of D57588: fusefs: fix error handling when reading a directory's sticky bit.
Jun 14 2026, 5:41 PM

Jun 12 2026

asomers committed rG4179f1d9deed: fusefs: only search for FREAD fufh in readdir (authored by CismonX <admin@cismon.net>).
fusefs: only search for FREAD fufh in readdir
Jun 12 2026, 11:51 PM

Jun 10 2026

asomers requested review of D57536: fusefs: fix vnode locking violations during execve.
Jun 10 2026, 9:01 PM

Jun 9 2026

asomers added a comment to D57512: zonectl: display conventional zones better during RZ.
In D57512#1318003, @fuz wrote:

Can we change it to say -1 so it still parses as a number? n/a looks like something scripts will dislike.

Jun 9 2026, 9:32 PM
asomers added a comment to D56848: filesystems/pjdfstest: new port.

I just committed this. But I raised the PORTVERSION to 0.2.1, which no longer requires the third unprivileged user. I didn't update the differential revision because I had to rebase to fix Poudriere, and Phabricator doesn't seem able to cope with rebases very well.

Jun 9 2026, 8:11 PM
asomers closed D56848: filesystems/pjdfstest: new port.
Jun 9 2026, 8:10 PM
asomers committed R11:c2aef36035d9: filesystems/pjdfstest: new port (authored by asomers).
filesystems/pjdfstest: new port
Jun 9 2026, 8:10 PM
asomers added a comment to D57512: zonectl: display conventional zones better during RZ.

Before:

55880 zones, Maximum LBA 0xda47ffff (3662151679)
Zone lengths are the same, types vary
  Start LBA  Length       WP LBA      Zone Type      Condition      Sequential             Reset
          0,  65536, 0xffffffffffffffff,  Conventional,           NWP,     Sequential,  No Reset Needed
    0x10000,  65536, 0xffffffffffffffff,  Conventional,           NWP,     Sequential,  No Reset Needed

After:

55880 zones, Maximum LBA 0xda47ffff (3662151679)
Zone lengths are the same, types vary
  Start LBA  Length       WP LBA      Zone Type      Condition      Sequential             Reset
          0,  65536,         N/A,  Conventional,           NWP,     Sequential,  No Reset Needed
    0x10000,  65536,         N/A,  Conventional,           NWP,     Sequential,  No Reset Needed
Jun 9 2026, 6:10 PM
asomers requested review of D57512: zonectl: display conventional zones better during RZ.
Jun 9 2026, 6:10 PM

Jun 8 2026

asomers committed R11:4fb1d6e9c796: filesystems/xfuse: 0.7.0 (authored by asomers).
filesystems/xfuse: 0.7.0
Jun 8 2026, 6:55 PM

Jun 7 2026

asomers added a comment to D57483: geom_part: add support for SGI disk labels.

It occurs to me that this might be a good use case for an out-of-tree kernel driver written in Rust. It's easy to test, it's small, and it's not wanted within the tree.

Jun 7 2026, 10:52 PM

Jun 5 2026

asomers added a comment to D57483: geom_part: add support for SGI disk labels.
In D57483#1316905, @imp wrote:

I'll ignore the trend we've had towards retiring older-format support generally...

Jun 5 2026, 10:53 PM
asomers added a comment to D57481: bsdinstall: Fix scripted examples.

Ahh, our comments crossed in the ether. But now that I see what you did, I request leaving "pkg install" in. IMHO it's a very important feature of the installerscript that it can install packages.

OK, In that case I must diagnose to see what is failing.

Jun 5 2026, 10:47 PM
asomers added a comment to D57483: geom_part: add support for SGI disk labels.

Believe it or not, there's a practical reason for this. I wasn't just tinkering around for fun, honestly.

Jun 5 2026, 10:41 PM
asomers added a comment to D57481: bsdinstall: Fix scripted examples.

Ahh, our comments crossed in the ether. But now that I see what you did, I request leaving "pkg install" in. IMHO it's a very important feature of the installerscript that it can install packages.

Jun 5 2026, 10:39 PM
asomers added a comment to D57481: bsdinstall: Fix scripted examples.

What's this about "removing the pkg install step"? I don't see anything removed.

Jun 5 2026, 10:37 PM
asomers requested review of D57483: geom_part: add support for SGI disk labels.
Jun 5 2026, 10:35 PM
asomers committed rG670738a17568: fts: add fts regression tests (authored by Jitendra Bhati <bhatijitendra2022@gmail.com>).
fts: add fts regression tests
Jun 5 2026, 8:06 PM
asomers committed rGb45654c6a4d3: fts: add misc fts traversal tests (authored by Jitendra Bhati <bhatijitendra2022@gmail.com>).
fts: add misc fts traversal tests
Jun 5 2026, 7:59 PM
asomers committed rGc606eb37135d: fts: address post-merge feedback on fts_children_test.c (authored by Jitendra Bhati <bhatijitendra2022@gmail.com>).
fts: address post-merge feedback on fts_children_test.c
Jun 5 2026, 3:17 PM
asomers committed rGee213339f4b2: fts: address post-merge feedback on fts_set_test.c (authored by Jitendra Bhati <bhatijitendra2022@gmail.com>).
fts: address post-merge feedback on fts_set_test.c
Jun 5 2026, 3:10 PM

Jun 3 2026

asomers accepted D57419: capsicum: Remove an obsolete comment.
Jun 3 2026, 10:03 PM