helix: Opening a file is *very* slow on slow FSes
TL;DR: On a slow network filesystem, opening files takes ~15x longer with helix than other editors such as vim. Helix is doing a bunch of blocking IO to detect git repos, it’d be nice to take this off the critical path or make it optional.
This is related to #6114 and #1987, but just opening files is painfully slow (e.g. when passing their path to hx on the command-line, or after using go-to-definition - there’s no fuzzy-finding going on).
Looking at strace, helix is probing for several paths relative to ancestor directories: [commondir, HEAD (twice), tags/HEAD, heads/HEAD, remotes/HEAD, refs/remotes/HEAD/HEAD, .git]. I don’t know what commondir is, the others all look git-related.
Details about this FS that help understand the log
(I don't think you should care about this filesystem per se, but just to give context for the logs - the idea that accessing a bunch of unexpected parts of a network FS might be slow generalizes I think).On this particular system the layout is /weirdfs/username/workspace/pathinworkspace. The first time you use a particular workspace is really slow - time stat says ~600ms. I guess the FUSE client has to load a bunch of metadata. Fortunately you don’t do this very often, and the metadata is cached. Trying to access a workspace that doesn’t exist is also slow (~200ms), and can’t be cached. Fortunately you never do this… except helix’s VCS probes.
Most of these are fairly fast, but reading nonexistent files in certain directories is slow. On my example helix makes >100 openat calls, of which 22 are slow (most 200ms, some a bit longer) for a total of ~5 seconds. Because their nonexistence is not cacheable, this happens every time a file is opened.
trimmed log for `strace -tT hx /weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/cxx.bnf`
(This is lightly edited:/weirdfs isn’t the real path etc. The log before this is all hx startup which is very fast, and after this it starts writing to the terminal)
16:20:17 getcwd("/weirdfs/sammccall/xkb/repo", 512) = 40 <0.000016>
16:20:17 statx(AT_FDCWD, "/usr/local/sbin/xclip", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9918b0) = -1 ENOENT (No such file or directory) <0.000013>
16:20:17 statx(AT_FDCWD, "/usr/local/bin/xclip", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9918b0) = -1 ENOENT (No such file or directory) <0.000016>
16:20:17 statx(AT_FDCWD, "/usr/sbin/xclip", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9918b0) = -1 ENOENT (No such file or directory) <0.000014>
16:20:17 statx(AT_FDCWD, "/usr/bin/xclip", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=30736, ...}) = 0 <0.000017>
16:20:17 access("/usr/bin/xclip", X_OK) = 0 <0.000017>
16:20:17 statx(AT_FDCWD, "experimental/sammccall/grammar/cxx/cxx.bnf", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=31436, ...}) = 0 <0.000141>
16:20:17 statx(AT_FDCWD, "experimental/sammccall/grammar/cxx/cxx.bnf", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=31436, ...}) = 0 <0.000110>
16:20:17 getcwd("/weirdfs/sammccall/xkb/repo", 512) = 40 <0.000012>
16:20:17 readlink("/weirdfs", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000128>
16:20:17 readlink("/weirdfs/sammccall", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000115>
16:20:17 readlink("/weirdfs/sammccall/xkb", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000053>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000129>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000115>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000120>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000120>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000048>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/cxx.bnf", 0x7fffef991950, 1023) = -1 EINVAL (Invalid argument) <0.000121>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/cxx.bnf", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0664, stx_size=31436, ...}) = 0 <0.000125>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/cxx.bnf", O_RDONLY|O_CLOEXEC) = 10 <0.001305>
16:20:17 read(10, "# Omitted for now:\n# - attribute"..., 8192) = 8192 <0.000214>
16:20:17 read(10, "unary-expression := ALIGNOF ( ty"..., 8192) = 8192 <0.000024>
16:20:17 read(10, "pecifier\ntype-specifier := typen"..., 8192) = 8192 <0.000121>
16:20:17 read(10, ":= import-keyword header-name\ngl"..., 8192) = 6860 <0.000016>
16:20:17 read(10, "", 8192) = 0 <0.000012>
16:20:17 close(10) = 0 <0.000139>
16:20:17 readlink("/weirdfs", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000049>
16:20:17 readlink("/weirdfs/sammccall", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000103>
16:20:17 readlink("/weirdfs/sammccall/xkb", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000118>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000109>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000101>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000059>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000115>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000108>
16:20:17 readlink("/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/cxx.bnf", 0x7fffef991690, 1023) = -1 EINVAL (Invalid argument) <0.000208>
16:20:17 brk(0x55927cecc000) = 0x55927cecc000 <0.000044>
16:20:17 getcwd("/weirdfs/sammccall/xkb/repo", 512) = 40 <0.000039>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000331>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000095>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000131>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000198>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000184>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000174>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000191>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000215>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000181>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000174>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000192>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000088>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000113>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000158>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000133>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000201>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000179>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000157>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000149>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000166>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000161>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000123>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000120>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000161>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000186>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000171>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000175>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000153>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000168>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000162>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000215>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000132>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000100>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000158>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000152>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000167>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000162>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000179>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000144>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000156>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000184>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000095>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000137>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000220>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000165>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000172>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000162>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000126>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000189>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000173>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000118>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000121>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000148>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000153>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000156>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000152>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000150>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000172>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000156>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000163>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000112>
16:20:17 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000110>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191226>
16:20:17 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191615>
16:20:18 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191353>
16:20:18 openat(AT_FDCWD, "/weirdfs/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191550>
16:20:18 openat(AT_FDCWD, "/weirdfs/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.193934>
16:20:18 openat(AT_FDCWD, "/weirdfs/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191565>
16:20:18 openat(AT_FDCWD, "/weirdfs/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191614>
16:20:19 statx(AT_FDCWD, "/weirdfs/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000190>
16:20:19 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000154>
16:20:19 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000227>
16:20:19 openat(AT_FDCWD, "/weirdfs/commondir", O_RDONLY|O_CLOEXEC) = 10 <0.000450>
16:20:19 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000136>
16:20:19 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000164>
16:20:19 lseek(10, 0, SEEK_CUR) = 0 <0.000022>
16:20:19 read(10, 0x55927ce717b0, 512) = -1 EISDIR (Is a directory) <0.000021>
16:20:19 close(10) = 0 <0.000028>
16:20:19 openat(AT_FDCWD, "/weirdfs/HEAD", O_RDONLY|O_CLOEXEC) = 10 <0.000294>
16:20:19 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000128>
16:20:19 lseek(10, 0, SEEK_CUR) = 0 <0.000022>
16:20:19 read(10, 0x55927ce84710, 128) = -1 EISDIR (Is a directory) <0.000021>
16:20:19 statx(AT_FDCWD, "/weirdfs/HEAD", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000124>
16:20:19 close(10) = 0 <0.000023>
16:20:19 openat(AT_FDCWD, "/weirdfs/HEAD", O_RDONLY|O_CLOEXEC) = 10 <0.000208>
16:20:19 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000142>
16:20:19 lseek(10, 0, SEEK_CUR) = 0 <0.000021>
16:20:19 read(10, 0x55927ce84710, 128) = -1 EISDIR (Is a directory) <0.000019>
16:20:19 statx(AT_FDCWD, "/weirdfs/HEAD", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000124>
16:20:19 close(10) = 0 <0.000024>
16:20:19 openat(AT_FDCWD, "/weirdfs/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.301772>
16:20:19 openat(AT_FDCWD, "/weirdfs/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.428781>
16:20:19 openat(AT_FDCWD, "/weirdfs/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.296646>
16:20:20 openat(AT_FDCWD, "/weirdfs/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.298887>
16:20:20 statx(AT_FDCWD, "/weirdfs/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903b0) = -1 ENOENT (No such file or directory) <0.000182>
16:20:20 statx(AT_FDCWD, "/etc/localtime", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFLNK|0777, stx_size=33, ...}) = 0 <0.000026>
16:20:20 write(9, "2023-04-24T16:20:20.405 helix_vc"..., 292) = 292 <0.000048>
16:20:20 write(9, "2023-04-24T16:20:20.406 helix_vc"..., 154) = 154 <0.000026>
16:20:20 getcwd("/weirdfs/sammccall/xkb/repo", 512) = 40 <0.000023>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.001493>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000165>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000134>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000185>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000226>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000204>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000188>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000166>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000197>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/cxx/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000167>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000128>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000155>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000165>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000164>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000172>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000167>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000164>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/grammar/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000208>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000090>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000131>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000165>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000179>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000182>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000187>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000152>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000152>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000172>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000138>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000147>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000184>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000165>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000176>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000164>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000147>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000156>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000104>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/experimental/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000165>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000108>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000131>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000158>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000153>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000174>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000176>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000161>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000149>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000166>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/repo/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000183>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000123>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000156>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000161>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000125>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000174>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000163>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000146>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000147>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/xkb/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000137>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall/xkb/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000197>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000108>
16:20:20 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000131>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.368557>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.192890>
16:20:20 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.193549>
16:20:21 openat(AT_FDCWD, "/weirdfs/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191203>
16:20:21 openat(AT_FDCWD, "/weirdfs/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.194199>
16:20:21 openat(AT_FDCWD, "/weirdfs/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.191563>
16:20:21 openat(AT_FDCWD, "/weirdfs/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.192426>
16:20:21 statx(AT_FDCWD, "/weirdfs/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000183>
16:20:21 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000189>
16:20:21 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000165>
16:20:21 openat(AT_FDCWD, "/weirdfs/commondir", O_RDONLY|O_CLOEXEC) = 10 <0.000445>
16:20:21 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000130>
16:20:21 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000150>
16:20:21 lseek(10, 0, SEEK_CUR) = 0 <0.000019>
16:20:21 read(10, 0x55927ccb5e80, 512) = -1 EISDIR (Is a directory) <0.000024>
16:20:21 close(10) = 0 <0.000025>
16:20:21 openat(AT_FDCWD, "/weirdfs/HEAD", O_RDONLY|O_CLOEXEC) = 10 <0.000317>
16:20:21 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000132>
16:20:21 lseek(10, 0, SEEK_CUR) = 0 <0.000019>
16:20:21 read(10, 0x55927ce84710, 128) = -1 EISDIR (Is a directory) <0.000019>
16:20:21 statx(AT_FDCWD, "/weirdfs/HEAD", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000128>
16:20:21 close(10) = 0 <0.000022>
16:20:21 openat(AT_FDCWD, "/weirdfs/HEAD", O_RDONLY|O_CLOEXEC) = 10 <0.000182>
16:20:21 statx(10, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000130>
16:20:21 lseek(10, 0, SEEK_CUR) = 0 <0.000023>
16:20:21 read(10, 0x55927ce84710, 128) = -1 EISDIR (Is a directory) <0.000031>
16:20:21 statx(AT_FDCWD, "/weirdfs/HEAD", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000121>
16:20:21 close(10) = 0 <0.000023>
16:20:21 openat(AT_FDCWD, "/weirdfs/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.300257>
16:20:22 openat(AT_FDCWD, "/weirdfs/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.351909>
16:20:22 openat(AT_FDCWD, "/weirdfs/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.445647>
16:20:23 openat(AT_FDCWD, "/weirdfs/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.310794>
16:20:23 statx(AT_FDCWD, "/weirdfs/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7fffef9903a0) = -1 ENOENT (No such file or directory) <0.000500>
16:20:23 statx(AT_FDCWD, "/etc/localtime", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFLNK|0777, stx_size=33, ...}) = 0 <0.000042>
16:20:23 write(9, "2023-04-24T16:20:23.364 helix_vc"..., 292) = 292 <0.000047>
16:20:23 write(9, "2023-04-24T16:20:23.365 helix_vc"..., 164) = 164 <0.000025>
16:20:23 socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0, [10, 11]) = 0 <0.000054>
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 21 (20 by maintainers)
Commits related to this issue
- upgrade gitoxide to v0.44 and change repository discovery to worktree-only (#6867) — committed to Byron/helix by Byron a year ago
- upgrade gitoxide to v0.44 and change repository discovery to worktree-only (#6867) — committed to Byron/helix by Byron a year ago
- upgrade gitoxide to v0.44 for performance improvements during discovery Please note that there is a new `dot_git_only` option which would further speedup discovery. On even moderatly fast disks that ... — committed to Byron/starship by Byron a year ago
- upgrade `gitoxide` to v0.44 for native shallow support and faster repo discovery. As `onefetch` only cares about bare repositories, we now optimize discovery to only find those, and do so much faster... — committed to o2sh/onefetch by Byron a year ago
- upgrade gitoxide to v0.44 (and incorporate #1023):x (#1024) * Switch from `git-features` to `gix-features` * upgrade `gitoxide` to v0.44 for native shallow support and faster repo discovery. As... — committed to o2sh/onefetch by Byron a year ago
- upgrade gitoxide to v0.44 and change repository discovery to worktree-only (#6867) (#6890) — committed to helix-editor/helix by Byron a year ago
- upgrade gitoxide to v0.44 for performance improvements during discovery Please note that there is a new `dot_git_only` option which would further speedup discovery. On even moderatly fast disks that ... — committed to Byron/starship by Byron a year ago
- build(deps): upgrade gitoxide to v0.44 for performance improvements during discovery (#5141) upgrade gitoxide to v0.44 for performance improvements during discovery Please note that there is a new `... — committed to starship/starship by Byron a year ago
- upgrade gitoxide to v0.44 and change repository discovery to worktree-only (#6867) (#6890) — committed to Triton171/helix by Byron a year ago
- upgrade gitoxide to v0.44 and change repository discovery to worktree-only (#6867) (#6890) — committed to wes-adams/helix by Byron a year ago
- build(deps): upgrade gitoxide to v0.44 for performance improvements during discovery (#5141) upgrade gitoxide to v0.44 for performance improvements during discovery Please note that there is a new `... — committed to Indyandie/starship by Byron a year ago
- docs(preset): Add Jetpack Preset (#5261) * build(deps): update clap crates * build(deps): update rust crate notify-rust to 4.7.1 * build(deps): update rust crate shadow-rs to 0.20.1 * build... — committed to starship/starship by Indyandie 10 months ago
Also @Byron thanks for the quick patch! ❤️
@sam-mccall You can now test this via #6890 and I am very curious about the results 😃. Thanks for sharing.
Thanks @Byron! Results are similar to what I saw through invoking hx and git above:
gixchecks 8 suffixes (includingHEADtwice),gitchecks 3.git check-ignore -vn cxx.bnf (32 stats, ~0.2s)
11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/cxx", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000881> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/cxx/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.067965> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/cxx/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000308> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/cxx/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000206> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000137> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000268> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000143> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/grammar/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000168> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000129> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000166> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000161> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/sammccall/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000163> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000126> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000163> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000154> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/experimental/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000126> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000118> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000161> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000158> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/repo/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000166> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000119> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.052788> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000299> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/clean/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000230> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall", {st_mode=S_IFDIR|0775, st_size=0, ...}, 0) = 0 <0.000163> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000153> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000133> 11:28:22 newfstatat(AT_FDCWD, "/weirdfs/sammccall/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.209315> 11:28:23 newfstatat(AT_FDCWD, "/weirdfs", {st_mode=S_IFDIR|0777, st_size=0, ...}, 0) = 0 <0.000195> 11:28:23 newfstatat(AT_FDCWD, "/weirdfs/.git", 0x7fffe4739260, 0) = -1 ENOENT (No such file or directory) <0.000108> 11:28:23 newfstatat(AT_FDCWD, "/weirdfs/.git/HEAD", 0x7fffe4739120, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000101> 11:28:23 newfstatat(AT_FDCWD, "/weirdfs/HEAD", {st_mode=S_IFDIR|0775, st_size=0, ...}, AT_SYMLINK_NOFOLLOW) = 0 <0.000320>gix exclude query cxx.bnf (23 stats, 43 opens, ~1.4s)
11:36:34 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000880> 11:36:34 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000060> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000168> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000219> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000165> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000260> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000142> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000151> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000181> 11:36:34 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/grammar/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000159> 11:36:34 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000136> 11:36:34 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000119> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000161> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000119> 11:36:34 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000176> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000163> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000168> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000179> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000180> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000179> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000134> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000160> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000125> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000141> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000115> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000167> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000156> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000178> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/experimental/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000152> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000113> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000075> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000159> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000152> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000155> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000147> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000136> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000105> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000151> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/repo/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000173> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000113> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000107> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.045372> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000167> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000201> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000179> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000170> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000162> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/clean2/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000157> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall/clean2/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000119> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000134> 11:36:35 statx(AT_FDCWD, "/weirdfs/sammccall", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0775, stx_size=0, ...}) = 0 <0.000115> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/commondir", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.208847> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.190773> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.192313> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/tags/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.195357> 11:36:35 openat(AT_FDCWD, "/weirdfs/sammccall/heads/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.192372> 11:36:36 openat(AT_FDCWD, "/weirdfs/sammccall/remotes/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.193387> 11:36:36 openat(AT_FDCWD, "/weirdfs/sammccall/refs/remotes/HEAD/HEAD", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.192397> 11:36:36 statx(AT_FDCWD, "/weirdfs/sammccall/.git", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffcc17bac10) = -1 ENOENT (No such file or directory) <0.000239> 11:36:36 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000191> 11:36:36 statx(AT_FDCWD, "/weirdfs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0777, stx_size=0, ...}) = 0 <0.000151> 11:36:36 openat(AT_FDCWD, "/weirdfs/commondir", O_RDONLY|O_CLOEXEC) = 3 <0.000377>(Random aside: git could be faster here too, it appears to check
.git/HEADeven after.gitdoesn’t exist)@pascalkuthe This is still an issue on the latest version of the editor on Linux. When typing
:o ~in order to open a file in my home directory, the editor completely locks up up for about 30s until it loads all of the other user’s home directories for completion.It may be good to place a timer on the autocomplete and give up if it exceeds 1s of waiting. That way typing remains responsive in the worst-case scenarios.
Oh and because real numbers are more fun!
Time from start (
execve(hx...)) until the first file content gets written to screen: Before: 5.9s After: 0.12sI’m going to go open some more files now 😃
Wow, thanks so much for the quick patch!
I can confirm I only see stats of
.gitdirectories now, and most importantly, opening files is really fast!Zooming out a bit, on startup of
hx some/path, I do see this scan happening twice (which would be fixed by caching I guess), and also a scan for [.git,.helix] which also runs twice. On my FS none of these operations are slow (I managed to find the code - it won’t try to look up any workspaces with.in the name), so I’m very happy to call this fixed. OTOH, certainly happy to provide logs if it’s still interesting.And for good measure, I have added an option just for
helixand applications like it that will only find repos with worktree, which changes the search pattern to this:5 stats compared to 12 stats! Wow - unexpected!
Rust has no ergonomic interface for calling
fstatatso that’s pretty hard to change and probably not worth doing judt for the directory lookup. Not sure about looking at more directories that’s probably intentional.Cc @Byron