Page MenuHomeFreeBSD

asomers (Alan Somers)
User

Projects

User Details

User Since
May 9 2014, 11:04 PM (622 w, 6 h)

Recent Activity

Mon, Apr 6

asomers added a comment to D56016: lib/libc/tests: add fts symlink traversal tests.

Are my inline comments visible ? since at the bottom it page it lists them with a "Unsubmitted" label, as in this patch needs revision ? or as in other people can't see them ?

Yes. You must've figured out by now, but in Phabricator, unlike on Github, you must click "Submit" for inline comments to be visible. And BTW if you prefer Github PRs to Phabricator, you can use those too. Both are acceptable ways to submit patches to FreeBSD.

Mon, Apr 6, 7:25 PM

Fri, Apr 3

asomers committed R11:f522622217b1: shells/fish: 4.6.0 (authored by asomers).
shells/fish: 4.6.0
Fri, Apr 3, 2:33 PM

Mon, Mar 30

asomers added a comment to D56165: mount_fusefs: Implement the fusermount functionality.

I think that this will be a nice feature. Have you considered how to test it? I think it could all be integrated into the existing fusefs test suite. Or alternatively, the negative tests at least could use atf-sh, with a suitable fuse binary installed from ports.

Mon, Mar 30, 9:05 PM
asomers accepted D56156: virtio_blk: Fix initialisation of dump request structure.

Works for me. Thanks for the fast fix.

Mon, Mar 30, 1:02 PM

Sat, Mar 28

asomers requested changes to D56016: lib/libc/tests: add fts symlink traversal tests.

This looks a lot better. In addition to the inline comments, I have two general ones:

Sat, Mar 28, 1:33 AM

Fri, Mar 27

asomers added inline comments to D53086: fusefs: kernel-based implementation of auto_unmount.
Fri, Mar 27, 10:17 PM

Thu, Mar 26

asomers committed rG1ebccc3b0f68: vfs_cluster.c: Do not propagate VOP_BMAP errors to the caller (authored by arrowd).
vfs_cluster.c: Do not propagate VOP_BMAP errors to the caller
Thu, Mar 26, 3:09 PM
asomers committed rG6a1ebd14aa96: fusefs: redo vnode attribute locking (authored by asomers).
fusefs: redo vnode attribute locking
Thu, Mar 26, 3:08 PM
asomers committed rGd0692508bc40: fusefs: remove the obsolete rename_lock (authored by asomers).
fusefs: remove the obsolete rename_lock
Thu, Mar 26, 3:08 PM
asomers committed rG9ac21f8f168c: fusefs: add a regression test for a cluster_read bug (authored by asomers).
fusefs: add a regression test for a cluster_read bug
Thu, Mar 26, 3:08 PM
asomers committed rG34ecd902d428: Add tests for pdwait (authored by asomers).
Add tests for pdwait
Thu, Mar 26, 2:47 PM
asomers committed rG1ce3d3f610e2: aio(4) tests: do not rely on (int *)-1 being invalid address (authored by asomers).
aio(4) tests: do not rely on (int *)-1 being invalid address
Thu, Mar 26, 2:47 PM
asomers committed rGc595e21c989f: procdesc: Add a test for pid recycling behavior (authored by asomers).
procdesc: Add a test for pid recycling behavior
Thu, Mar 26, 2:44 PM
asomers committed rGe3e71c6a8a92: tests: sys/capsicum/functional requires mqueuefs (authored by asomers).
tests: sys/capsicum/functional requires mqueuefs
Thu, Mar 26, 2:41 PM

Sun, Mar 22

asomers requested changes to D56016: lib/libc/tests: add fts symlink traversal tests.

This is a good start. In addition to the above comments, though, there needs to be a paired test for FTS_PHYSICAL. It isn't worth submitting a test for one without the other.

Sun, Mar 22, 11:39 PM

Thu, Mar 19

asomers committed R11:026e198d1784: filesystems/py-libzfs: patch collections.Sequence import error (authored by asomers).
filesystems/py-libzfs: patch collections.Sequence import error
Thu, Mar 19, 4:47 PM

Wed, Mar 18

asomers committed R11:f274d1ecd24e: filesystems/py-libzfs: fix WWW (authored by asomers).
filesystems/py-libzfs: fix WWW
Wed, Mar 18, 1:52 PM

Mon, Mar 16

asomers committed R11:9233032063d7: sysutils/rubygem-tmuxinator: fix conflict with shells/fish (authored by asomers).
sysutils/rubygem-tmuxinator: fix conflict with shells/fish
Mon, Mar 16, 12:58 PM

Fri, Mar 13

asomers accepted D55846: tests/fusefs: fix sign-compare warning on armv7.

Yes, I like this version better.

Fri, Mar 13, 9:35 PM
asomers added a comment to D55846: tests/fusefs: fix sign-compare warning on armv7.

The real tension is between in.body.read.size being unsigned and read() returning signed. We could change size1 and size2 to unsigned numbers, but then we'd have to cast them when checking the output of read, as is done on line 1521. I don't have a strong preference for which, but I think you can remove the "size1 >= 0" check. We can't change the type of fuse_read_in::size, because that's part of the FUSE API.

Fri, Mar 13, 2:27 PM

Thu, Mar 12

asomers committed rG7e68af7ce2c1: fusefs: redo vnode attribute locking (authored by asomers).
fusefs: redo vnode attribute locking
Thu, Mar 12, 4:12 PM
asomers closed D55230: fusefs: redo vnode attribute locking.
Thu, Mar 12, 4:12 PM
asomers accepted D55767: ctld: Support multiple physical ports in a target.

LGTM

Thu, Mar 12, 1:43 PM
asomers updated the diff for D55230: fusefs: redo vnode attribute locking.
  • Remove an excessive vnode lock assertion
Thu, Mar 12, 12:30 PM

Mar 11 2026

asomers added a comment to D55230: fusefs: redo vnode attribute locking.
In D55230#1276682, @kib wrote:

Am I understand you right: after entering VOP_READ() for fusefs, and having the vnode shared-locked, VOP_READ() might discover that the attributes changed and e.g. the node size increased? So it has to set delayed setsize, but needs to read some block after the current EOF? If yes, this is fine. For instance, nfs operates similarly.

The vnode pager size is effectively used only for one purpose: it prevents the page fault from mapping pages beyond the EOF. For instance, UFS uses pages with negative (but effectively, very high positive) page indexes as the storage for indirect blocks content. And the pager check for EOF exactly prevents mapping of the metadata from the indirect blocks into userspace.

So I believe it should work fine for fusefs.

Mar 11 2026, 4:57 PM
asomers updated the diff for D55230: fusefs: redo vnode attribute locking.
  • Respond to markj's comments
  • Assert vnode lock before checking lock type
  • Use vn_delay_setsize to avoid lock upgrade in fuse_vnode_setsize
Mar 11 2026, 4:54 PM

Mar 10 2026

asomers added a comment to D55230: fusefs: redo vnode attribute locking.
In D55230#1271915, @kib wrote:

D55595 should help with the vnode_pager_setsize(), in particular, it should allow to avoid the lock upgrade.

Mar 10 2026, 8:47 PM

Mar 9 2026

asomers committed R11:3bf4a372f1c2: filesystems/xfuse: 0.6.0 (authored by asomers).
filesystems/xfuse: 0.6.0
Mar 9 2026, 7:30 PM

Mar 6 2026

asomers accepted D55669: libutil: convert the trimdomain tests to atf-c(3).

LGTM.

Mar 6 2026, 2:58 PM

Mar 2 2026

asomers added a comment to D55612: capsicum-test: remove stale file.

I'm with @emaste . And in fact, I already have a branch that enables these tests. They don't all pass, however.

Mar 2 2026, 3:25 PM

Feb 24 2026

asomers added a comment to D55230: fusefs: redo vnode attribute locking.

@kib is there anything else you'd like me to do for this PR, short of rewriting everything so the vnode lock isn't held while waiting for the daemon?

Feb 24 2026, 11:01 PM

Feb 22 2026

asomers committed rG7755a406a6ae: fusefs: remove the obsolete rename_lock (authored by asomers).
fusefs: remove the obsolete rename_lock
Feb 22 2026, 5:20 PM
asomers closed D55231: fusefs: remove the obsolete rename_lock.
Feb 22 2026, 5:20 PM

Feb 20 2026

asomers committed R11:9e6b21629504: net-mgmt/nfs-exporter: 0.4.6 (authored by asomers).
net-mgmt/nfs-exporter: 0.4.6
Feb 20 2026, 11:12 PM

Feb 18 2026

asomers committed R11:e270e791a3d4: net-mgmt/geom-exporter: 0.1.3 (authored by asomers).
net-mgmt/geom-exporter: 0.1.3
Feb 18 2026, 4:44 PM
asomers committed R11:0cb5bb322954: sysutils/gstat-rs: 0.1.8 (authored by asomers).
sysutils/gstat-rs: 0.1.8
Feb 18 2026, 4:44 PM

Feb 17 2026

asomers committed rGfba81b33aabf: capsicum-tests: remove Linux support (authored by asomers).
capsicum-tests: remove Linux support
Feb 17 2026, 12:31 AM
asomers closed D54985: capsicum-tests: remove Linux support.
Feb 17 2026, 12:31 AM
asomers committed rGdc9a8d300ba5: aio(4) tests: do not rely on (int *)-1 being invalid address (authored by asomers).
aio(4) tests: do not rely on (int *)-1 being invalid address
Feb 17 2026, 12:29 AM
asomers committed rG05492ff6f636: pdwait(2) tests: do not rely on (int *)-1 being invalid address (authored by asomers).
pdwait(2) tests: do not rely on (int *)-1 being invalid address
Feb 17 2026, 12:29 AM

Feb 12 2026

asomers added a comment to D54924: procstat: nest the threads in the cpuset libxo output.

@antranigv_freebsd.am I see a few warnings when I use libxo's warn option:

> sudo /usr/obj/usr/home/somers/src/freebsd.org/src/amd64.amd64/usr.bin/procstat/procstat  --libxo=json,pretty,warn cs (pgrep ntp)
procstat: invalid XML tag name: '98363'
{
  "__version": "2", 
  "procstat": {
    "cs": {
      "98363": {
procstat: invalid XML tag name: '100222'
procstat: key field emitted after normal value field: 'thread_id'
        "100222": {
          "process_id": 98363,
          "thread_id": 100222,
          "command": "ntpd",
          "thread_name": "-",
          "cpu": -1,
          "cpu_set_id": 1,
          "cpu_set": "0-15"procstat: invalid XML tag name: '100222'
procstat: invalid XML tag name: '98363'
Feb 12 2026, 6:13 PM
asomers added inline comments to D55230: fusefs: redo vnode attribute locking.
Feb 12 2026, 5:55 PM
asomers added inline comments to D55230: fusefs: redo vnode attribute locking.
Feb 12 2026, 1:31 PM

Feb 11 2026

asomers added inline comments to D55230: fusefs: redo vnode attribute locking.
Feb 11 2026, 2:45 PM
asomers added inline comments to D55230: fusefs: redo vnode attribute locking.
Feb 11 2026, 1:40 PM

Feb 10 2026

asomers updated the diff for D55230: fusefs: redo vnode attribute locking.
  • Respond to markj's comments
Feb 10 2026, 11:28 PM
asomers added inline comments to D55230: fusefs: redo vnode attribute locking.
Feb 10 2026, 11:28 PM
asomers added a comment to D55047: fuse: Do not unconditionally overwrite local vnode size with remote.

The odd thing here is that VOP_WRITE should always be called with the vnode exclusively locked. So it shouldn't be possible for it to race with a separate operation, like VOP_READ, that might call fuse_internal_cache_attrs . Do you have a stack trace for either thread involved with this race?

Feb 10 2026, 9:59 PM
asomers added a comment to D55047: fuse: Do not unconditionally overwrite local vnode size with remote.

This looks like a real problem. But how did you find it? Was it just virtio-fs, or did you find it with a regular fuse file system too? If either case, do you know if FUSE_ASYNC_READ was set? And do you know what values are typically used for the entry and attribute cache?

Feb 10 2026, 9:57 PM
asomers added a comment to D55145: fusefs: Fix vnode lock mismatch in fuse_internal_do_getattr().

See https://reviews.freebsd.org/D55230 for a more complete solution.

Feb 10 2026, 9:47 PM
asomers requested review of D55231: fusefs: remove the obsolete rename_lock.
Feb 10 2026, 8:48 PM
asomers requested review of D55230: fusefs: redo vnode attribute locking.
Feb 10 2026, 8:27 PM

Feb 7 2026

asomers added a comment to D55167: cp: Expect EINTR while copying.

The reproducing case is timing dependent. I came up with the discrepancy when a user on the forums interrupted a cp operation with a du and cp bailed out.

Do you at least know what fuse file system he was using, and what options it was mounted with?

NTFS. I just asked the user for flags.

Feb 7 2026, 5:55 PM
asomers added a comment to D55167: cp: Expect EINTR while copying.

The reproducing case is timing dependent. I came up with the discrepancy when a user on the forums interrupted a cp operation with a du and cp bailed out.

Feb 7 2026, 5:44 PM
asomers added a comment to D55167: cp: Expect EINTR while copying.

This is probably correct. However, I'd like to see two other things:

  • A reproduction case
  • An audit of the rest of the base system for other utilities that make the same mistake, like install(1).
Feb 7 2026, 5:40 PM
asomers added inline comments to D55153: pwd: Add tests.
Feb 7 2026, 3:43 PM
asomers added a comment to D19407: Port openrsync to FreeBSD using capsicum.

FYI I've proposed a GSoC project to capsicumize the fts(3) family of functions. That would enable finishing the OpenRsync port.
https://wiki.freebsd.org/SummerOfCodeIdeas?highlight=%28fts_open%29#Capsciumize_fts.283.29

Feb 7 2026, 3:35 PM
asomers added a comment to D55056: fusefs: Take mnt_ref when mounting.

I have no idea what is double-release.

Feb 7 2026, 3:27 PM

Feb 6 2026

asomers abandoned D54850: fusefs: fix a vnode locking bug during VOP_READ.

I'm going to reopen this in a few days, rebased and with a different approach.

Feb 6 2026, 9:50 PM
asomers added a comment to D55145: fusefs: Fix vnode lock mismatch in fuse_internal_do_getattr().

Sure i can close this diff.

But can you tell me what won't work ? I use 16-Current and have INVARIANTS

Feb 6 2026, 7:19 PM
asomers added a comment to D55056: fusefs: Take mnt_ref when mounting.

I'm not very confident in this area, but I think arrowd's latest patch should work. But to check for double-releases, he should add this patch to the test suite:

diff --git a/tests/sys/fs/fusefs/destroy.cc b/tests/sys/fs/fusefs/destroy.cc
index 0c8e2fd22a50..b3e7f8bc5fff 100644
--- a/tests/sys/fs/fusefs/destroy.cc
+++ b/tests/sys/fs/fusefs/destroy.cc
@@ -136,6 +136,17 @@ TEST_F(AutoUnmount, dup)
        assert_unmounted();
 }
Feb 6 2026, 6:40 PM
asomers added a comment to D55145: fusefs: Fix vnode lock mismatch in fuse_internal_do_getattr().

Thanks for your attention in this area. As a matter of fact, I've been working on this exact same problem. My first attempt at a solution was close to this one, but ultimately it won't work. Today I'm going to try a different solution, based on mutex protection rather than the vnode lock. I'll update Bugzilla when I have a working patch, so you can subscribe to this bug to find out.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283391

Feb 6 2026, 5:40 PM

Feb 2 2026

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

Interesting find. I'll review this next week, after I'm home from vacation.

Feb 2 2026, 1:22 AM
asomers added a comment to D55046: fuse: Ensure fuse_internal_cache_attrs() is called with exclusive lock.

Thanks for working on this! I was actually working on the exact same problem myself last week. And I came up with a very similar solution. But then I realized that it wouldn't work :( . The cached attrs also need to be modified in paths where the vnode lock cannot be upgraded. So my plan is to add a mutex just to protect them. I started work on it last week. But now I'm on vacation, so I can't resume work for a few more days. But thanks for your interest in fuse.

Feb 2 2026, 1:21 AM

Jan 31 2026

asomers committed rGdf68a09ea2ec: tests: sys/capsicum/functional requires mqueuefs (authored by asomers).
tests: sys/capsicum/functional requires mqueuefs
Jan 31 2026, 3:47 PM
asomers closed D54902: tests: sys/capsicum/functional requires mqueuefs.
Jan 31 2026, 3:47 PM

Jan 30 2026

asomers added a comment to D54985: capsicum-tests: remove Linux support.

It was not my intention to enable new tests in this commit, but I accidentally enabled the Sctp test. It probably should've been enabled before, but never was. And it works fine now.

Jan 30 2026, 10:11 PM
asomers requested review of D54985: capsicum-tests: remove Linux support.
Jan 30 2026, 10:05 PM

Jan 29 2026

asomers accepted D54938: geom: Convert err/warn() to xo_err/warn() and style(9) fixes .

It looks good to me. And I see that with --libxo=json, these errors append a {}. Are there any other cases where they do something differently than err?

Jan 29 2026, 8:50 PM

Jan 27 2026

asomers accepted D54917: capsicum-test: Move out of contrib.

I agree with Ed on all of these points.

Jan 27 2026, 9:53 PM
asomers requested review of D54902: tests: sys/capsicum/functional requires mqueuefs.
Jan 27 2026, 12:08 AM

Jan 26 2026

asomers accepted D54864: contrib/googletest: update from 1.15.2 to 1.17.0.

As long as the existing test suites pass, I'm happy.

Jan 26 2026, 11:52 PM
asomers accepted D54899: libc: document posix_spawnattr_{get,set}procdescp_np(3).
Jan 26 2026, 9:23 PM
asomers committed rG6253212608b4: Add pdrfork to OpenBSM (authored by asomers).
Add pdrfork to OpenBSM
Jan 26 2026, 9:04 PM
asomers closed D54897: Add pdrfork to OpenBSM.
Jan 26 2026, 9:04 PM
asomers added a comment to D54897: Add pdrfork to OpenBSM.
In D54897#1255061, @kib wrote:

I think this is fine, and I have this change in some intermediate version of the patch.
But then I noted that e.g. inotify(2) is not there (unless I mistaken), so I decided that it is up to upstream to add missed syscalls, and then import a new version.
You might add inotify as well while there.

Jan 26 2026, 9:02 PM
asomers requested changes to D54899: libc: document posix_spawnattr_{get,set}procdescp_np(3).

I suggest a few wording changes. Also, fork->vfork, pdfork->pdrfork, and execfd->procdescp.

Jan 26 2026, 8:42 PM
asomers requested review of D54897: Add pdrfork to OpenBSM.
Jan 26 2026, 7:13 PM
asomers accepted D54879: Add posix_spawnattr_{get,set}procdescp_np(3).

I didn't read the assembly code (I haven't had to write x86 assembly since University), but otherwise it looks good to me. And thanks for adding the P686 example, too.

Jan 26 2026, 6:25 PM
asomers committed rG277539ae7f2f: Add tests for pdwait (authored by asomers).
Add tests for pdwait
Jan 26 2026, 2:38 PM
asomers committed rGd1e6057fa47e: Add tests for pdrfork (authored by asomers).
Add tests for pdrfork
Jan 26 2026, 2:38 PM
asomers committed rGe35df41f6891: procdesc: Add a test for pid recycling behavior (authored by asomers).
procdesc: Add a test for pid recycling behavior
Jan 26 2026, 2:38 PM

Jan 24 2026

asomers committed rG52ddca7c2e33: fusefs: style (authored by asomers).
fusefs: style
Jan 24 2026, 4:05 PM
asomers committed rGffb747d587bf: fusefs: Add tests for the new -o auto_unmount feature (authored by asomers).
fusefs: Add tests for the new -o auto_unmount feature
Jan 24 2026, 4:05 PM

Jan 23 2026

asomers added a comment to D54850: fusefs: fix a vnode locking bug during VOP_READ.
In D54850#1253849, @kib wrote:

Is this the only place where the update of the cache under the shared vnode lock occurs?
Or even better, can you point me to the single entry point of the cache update code?

Jan 23 2026, 9:50 PM
asomers requested review of D54850: fusefs: fix a vnode locking bug during VOP_READ.
Jan 23 2026, 9:32 PM

Jan 21 2026

asomers accepted D53086: fusefs: kernel-based implementation of auto_unmount.

Approved, but don't forget to bump the man page's .Dd date.

Jan 21 2026, 4:45 PM

Jan 20 2026

asomers committed rG1ad466ca8385: netstat: fix a segfault with --libxo (authored by asomers).
netstat: fix a segfault with --libxo
Jan 20 2026, 10:32 PM
asomers committed rG46a760e578f5: gpart: "gpart --libxo:JP list" duplicates attribute keys (authored by asomers).
gpart: "gpart --libxo:JP list" duplicates attribute keys
Jan 20 2026, 10:32 PM
asomers committed rGb6533f67c399: fusefs: Fix further intermittency in the BadServer.ShortWrite test case (authored by asomers).
fusefs: Fix further intermittency in the BadServer.ShortWrite test case
Jan 20 2026, 10:32 PM
asomers committed rGb3647e2a408e: netstat: fix a segfault with --libxo (authored by asomers).
netstat: fix a segfault with --libxo
Jan 20 2026, 5:16 PM
asomers committed rG3b5c296fa151: fusefs: Fix further intermittency in the BadServer.ShortWrite test case (authored by asomers).
fusefs: Fix further intermittency in the BadServer.ShortWrite test case
Jan 20 2026, 5:15 PM
asomers committed rG3b44f04225bc: gpart: "gpart --libxo:JP list" duplicates attribute keys (authored by asomers).
gpart: "gpart --libxo:JP list" duplicates attribute keys
Jan 20 2026, 5:14 PM
asomers accepted D54592: Add pdrfork(2) and pdwait(2).
Jan 20 2026, 3:16 PM
asomers requested changes to D54592: Add pdrfork(2) and pdwait(2).
Jan 20 2026, 2:48 PM
asomers added inline comments to D54592: Add pdrfork(2) and pdwait(2).
Jan 20 2026, 2:03 PM
asomers requested changes to D54592: Add pdrfork(2) and pdwait(2).

Thanks for writing the man page too. I've made a few comments, mostly to make the English more grammatical and idiomatic.

Jan 20 2026, 1:21 PM
asomers accepted D54592: Add pdrfork(2) and pdwait(2).

This looks great, @kib! If you commit it, I'll follow up with the test suite. A few questions:

Jan 20 2026, 1:12 AM
asomers requested changes to D53086: fusefs: kernel-based implementation of auto_unmount.

Wow! This looks much simpler than the original userspace-based implementation. I like it. I wrote some tests, too. I can commit those separately if you like, after you commit the main code. The only thing that's missing is a mention of the new option in mount_fusefs.8 . Could you please add that?

Jan 20 2026, 12:20 AM

Jan 19 2026

asomers accepted D54518: Account for the ctl test needing the ctl(4) module.
Jan 19 2026, 7:02 PM