mergerfs
mergerfs copied to clipboard
`pivot_root` to a mergerfs union mount just hangs
Describe the bug
Something I found out messing around with namespaces and chroots, didn't see anything in the issues with regards to pivot_root so putting it here. It hangs and could only be killed through direct signals kill -9 $PID to the parent unshare since Ctrl+C doesn't work.
To Reproduce
Warning: Leaves hanging processes ... haven't figured out to kill the processes when unshare is killed, had to manually find each running process (thankfully not a lot mergerfs and pivot_root mostly)
cd "$(mktemp -d)"
unshare --pid --mount --map-root-user --fork --mount-proc --propagation private
mkdir -p chroot
mergerfs -o use_ino,cache.files=off,dropcacheonclose=true,allow_other,category.create=mfs -o auto_unmount /=RW chroot
cd chroot
mount -t proc none proc/
mount -o rbind /dev dev/
mount -t devpts none dev/pts
pivot_root . . # or pivot_root . old_root but requires an accessible directory /old_root
Expected behavior
pivot_root to finish executing cleanly.
System information:
- OS, kernel version:
Linux terrenus 5.13.4 #1-NixOS SMP PREEMPT Tue Jul 20 14:00:42 UTC 2021 x86_64 GNU/Linux - mergerfs version:
mergerfs version: 2.32.6 - mergerfs settings
- List of drives, filesystems, & sizes:
df -hlsblk
- A strace of the application having a problem:
strace -fvTtt -s 256 -o /tmp/app.strace.txt pivot_root . old_root/
376 14:54:17.947645 execve("/run/current-system/sw/bin/pivot_root", ["pivot_root", ".", "old_root"], ["LIBVA_DRIVER_NAME=iHD", "LD_LIBRARY_PATH=/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane:/run/current-system/sw/lib/pipewire", "XDG_CONFIG_HOME=/home/xps/.config", "LANG=en_US.UTF-8", "DISPLAY=:0", "SANE_CONFIG_DIR=/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/etc/sane.d", "OLDPWD=/tmp/tmp.RqhpwtZQ30", "LXVST_PATH=/home/xps/.lxvst:/home/xps/.nix-profile/lib/lxvst:/run/current-system/sw/lib/lxvst", "EDITOR=vim", "LOCALE_ARCHIVE_2_27=/nix/store/fjnvfdx15sx9z794fl9x7112hsflq742-glibc-locales-2.33-47/lib/locale/locale-archive", "MOZ_PLUGIN_PATH=/home/xps/.nix-profile/lib/mozilla/plugins:/etc/profiles/per-user/xps/lib/mozilla/plugins:/nix/var/nix/profiles/default/lib/mozilla/plugins:/run/current-system/sw/lib/mozilla/plugins", "KDEDIRS=/home/xps/.nix-profile:/etc/profiles/per-user/xps:/nix/var/nix/profiles/default:/run/current-system/sw", "NO_AT_BRIDGE=1", "XDG_VTNR=7", "QTWEBKIT_PLUGIN_PATH=/home/xps/.nix-profile/lib/mozilla/plugins/:/etc/profiles/per-user/xps/lib/mozilla/plugins/:/nix/var/nix/profiles/default/lib/mozilla/plugins/:/run/current-system/sw/lib/mozilla/plugins/", "DSSI_PATH=/home/xps/.dssi:/home/xps/.nix-profile/lib/dssi:/run/current-system/sw/lib/dssi", "XDG_SESSION_ID=2", "USER=xps", "PAGER=less -R", "DESKTOP_SESSION=/nix/store/0fj35lnn45nsjbnzai9sk4v1972lsn6c-desktops/share/xsessions/none+bspwm", "TZDIR=/etc/zoneinfo", "CUPS_DATADIR=/nix/store/r61nplqm41ih4qkm4blsnivhn3r1x2j2-cups-progs/share/cups", "LIBEXEC_PATH=/home/xps/.nix-profile/lib/libexec:/etc/profiles/per-user/xps/lib/libexec:/nix/var/nix/profiles/default/lib/libexec:/run/current-system/sw/lib/libexec", "NIX_PROFILES=/run/current-system/sw /nix/var/nix/profiles/default /etc/profiles/per-user/xps /home/xps/.nix-profile", "GTK2_RC_FILES=/home/xps/.gtkrc-2.0", "NIX_PATH=nixpkgs=/nix/store/p6wbacdckzl7mhm206rzmyibxxnz2lnm-source:nixpkgs-overlays=/nix/store/gql297cr5l39dajk231qp3mcwa5l10vn-source/overlays", "PWD=/tmp/tmp.RqhpwtZQ30/chroot", "SSH_ASKPASS=/nix/store/0higbadkjh510lyzhhd3az03ji4lxdm2-x11-ssh-askpass-1.2.4.1/libexec/x11-ssh-askpass", "HOME=/home/xps", "XDG_SESSION_TYPE=x11", "GTK_PATH=/home/xps/.nix-profile/lib/gtk-2.0:/home/xps/.nix-profile/lib/gtk-3.0:/etc/profiles/per-user/xps/lib/gtk-2.0:/etc/profiles/per-user/xps/lib/gtk-3.0:/nix/var/nix/profiles/default/lib/gtk-2.0:/nix/var/nix/profiles/default/lib/gtk-3.0:/run/current-sy"..., "XDG_DATA_DIRS=/nix/store/xg11njwnypbg7l0z7psjc0fmz1amy8g9-vscode-insiders-1627069263/share:/nix/store/ygczqxr27k63jz0lbdp9mgph9rjfszib-gtk+3-3.24.27/share/gsettings-schemas/gtk+3-3.24.27:/nix/store/yw1h6qfj5s1wnpbpkv1akcawm6y09pfd-gsettings-desktop-schemas"..., "GI_TYPELIB_PATH=/nix/store/ygczqxr27k63jz0lbdp9mgph9rjfszib-gtk+3-3.24.27/lib/girepository-1.0:/nix/store/26xwzx3kv7cabjn7g8fzn9127h06n1x2-librsvg-2.50.7/lib/girepository-1.0:/nix/store/fa8zpkdz46bvwdc514gfmaqnq3d41r3x-libsecret-0.20.4/lib/girepository-1.0"..., "MESA_LOADER_DRIVER_OVERRIDE=iris", "XDG_SESSION_DESKTOP=none+bspwm", "GIO_EXTRA_MODULES=/nix/store/iimj22ksbmg5yvq1g71i0nmg6q86im4s-gconf-3.2.6/lib/gio/modules:/nix/store/p5zsnyy0vzw09cmrxkjmvkwhlfqsgy8n-dconf-0.40.0-lib/lib/gio/modules:/nix/store/iimj22ksbmg5yvq1g71i0nmg6q86im4s-gconf-3.2.6/lib/gio/modules:/nix/store/p5zsny"..., "TERMINFO_DIRS=/home/xps/.nix-profile/share/terminfo:/etc/profiles/per-user/xps/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo", "LADSPA_PATH=/home/xps/.ladspa:/home/xps/.nix-profile/lib/ladspa:/run/current-system/sw/lib/ladspa", "__NIXOS_SET_ENVIRONMENT_DONE=1", "LV2_PATH=/home/xps/.lv2:/home/xps/.nix-profile/lib/lv2:/run/current-system/sw/lib/lv2", "VISUAL=vim", "QT_PLUGIN_PATH=/home/xps/.nix-profile/lib/qt4/plugins:/home/xps/.nix-profile/lib/kde4/plugins:/etc/profiles/per-user/xps/lib/qt4/plugins:/etc/profiles/per-user/xps/lib/kde4/plugins:/nix/var/nix/profiles/default/lib/qt4/plugins:/nix/var/nix/profiles/default"..., "NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/xps", "SHELL=/nix/store/pfk6bllfmp7k939wwd6l3iycb500mvz2-zsh-5.8/bin/zsh", "TERM=xterm-256color", "XDG_SESSION_CLASS=user", "XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0", "SCUDO_OPTIONS=ZeroContents=1", "VST_PATH=/home/xps/.vst:/home/xps/.nix-profile/lib/vst:/run/current-system/sw/lib/vst", "XDG_CURRENT_DESKTOP=none+bspwm", "XDG_SEAT=seat0", "SHLVL=5", "LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive", "RUST_SRC_PATH=/nix/store/w0srj5jk87a5anb0aiwaymqrwpyr2frd-rust-src-1.56.0-nightly-2021-07-26/lib/rustlib/src/rust/library", "_JAVA_AWT_WM_NONREPARENTING=1", "XDG_CACHE_HOME=/home/xps/.cache", "LOGNAME=xps", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus", "NIXPKGS_CONFIG=/etc/nix/nixpkgs-config.nix", "XDG_RUNTIME_DIR=/run/user/1000", "__HM_SESS_VARS_SOURCED=1", "XAUTHORITY=/home/xps/.Xauthority", "XDG_DATA_HOME=/home/xps/.local/share", "XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1", "QT_AUTO_SCREEN_SCALE_FACTOR=2", "XDG_CONFIG_DIRS=/etc/xdg:/home/xps/.nix-profile/etc/xdg:/etc/profiles/per-user/xps/etc/xdg:/nix/var/nix/profiles/default/etc/xdg:/run/current-system/sw/etc/xdg", "PATH=/run/wrappers/bin:/home/xps/.nix-profile/bin:/etc/profiles/per-user/xps/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/home/xps/.zsh/plugins/powerline10k:/home/xps/.zsh/plugins/autosuggestions:/home/xps/.zsh/plugins/fast-syntax-high"..., "INFOPATH=/home/xps/.nix-profile/info:/home/xps/.nix-profile/share/info:/etc/profiles/per-user/xps/info:/etc/profiles/per-user/xps/share/info:/nix/var/nix/profiles/default/info:/nix/var/nix/profiles/default/share/info:/run/current-system/sw/info:/run/curren"..., "DOCKER_ID_USER=tianxian", "VST3_PATH=/home/xps/.vst3:/home/xps/.nix-profile/lib/vst3:/run/current-system/sw/lib/vst3", "XCURSOR_PATH=/home/xps/.icons:/home/xps/.local/share/icons:/home/xps/.nix-profile/share/icons:/home/xps/.nix-profile/share/pixmaps:/etc/profiles/per-user/xps/share/icons:/etc/profiles/per-user/xps/share/pixmaps:/nix/var/nix/profiles/default/share/icons:/ni"..., "__ETC_PROFILE_DONE=1", "_=/run/current-system/sw/bin/strace", "APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL=true", "CHROME_DESKTOP=code-insiders-url-handler.desktop", "ORIGINAL_XDG_CURRENT_DESKTOP=none+bspwm", "GDK_BACKEND=x11", "BREAKPAD_DUMP_LOCATION=/home/xps/.config/Code - Insiders/exthost Crash Reports", "TERM_PROGRAM=vscode", "TERM_PROGRAM_VERSION=1.59.0-insider", "COLORTERM=truecolor", "VSCODE_GIT_IPC_HANDLE=/run/user/1000/vscode-git-f896d5b62f.sock", "GIT_ASKPASS=/nix/store/xg11njwnypbg7l0z7psjc0fmz1amy8g9-vscode-insiders-1627069263/lib/vscode/resources/app/extensions/git/dist/askpass.sh", "VSCODE_GIT_ASKPASS_NODE=/nix/store/xg11njwnypbg7l0z7psjc0fmz1amy8g9-vscode-insiders-1627069263/lib/vscode/code-insiders", "VSCODE_GIT_ASKPASS_MAIN=/nix/store/xg11njwnypbg7l0z7psjc0fmz1amy8g9-vscode-insiders-1627069263/lib/vscode/resources/app/extensions/git/dist/askpass-main.js", "GPG_TTY=/dev/pts/1", "P9K_SSH=0", "P9K_TTY=old", "_P9K_TTY=/dev/pts/1"]) = 0 <0.000416>
376 14:54:17.948387 brk(NULL) = 0x1c42000 <0.000012>
376 14:54:17.948566 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x784e4545e000 <0.000016>
376 14:54:17.948764 access("/etc/ld-nix.so.preload", R_OK) = -1 ENOENT (No such file or directory) <0.000020>
376 14:54:17.948987 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/glibc-hwcaps/x86-64-v3/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000046>
376 14:54:17.949121 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/glibc-hwcaps/x86-64-v3", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.949233 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/glibc-hwcaps/x86-64-v2/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.949322 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/glibc-hwcaps/x86-64-v2", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.949423 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.949510 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.949592 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.949692 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.949783 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.949899 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.949984 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000016>
376 14:54:17.950090 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/tls", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.950188 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000015>
376 14:54:17.950304 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.950390 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.950492 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.950575 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.950676 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.950763 openat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000020>
376 14:54:17.950855 newfstatat(AT_FDCWD, "/nix/store/n8v9vyd0h1ywn5x0j93x8sjsg3s16248-sane-config/lib/sane", {st_dev=makedev(0, 0x1c), st_ino=5300997, st_mode=S_IFDIR|0555, st_nlink=2, st_uid=65534, st_gid=65534, st_blksize=24064, st_blocks=33, st_size=370, st_atime=1627149824 /* 2021-07-24T14:03:44-0400 */, st_atime_nsec=0, st_mtime=1 /* 1969-12-31T19:00:01-0500 */, st_mtime_nsec=0, st_ctime=1627149824 /* 2021-07-24T14:03:44.401421402-0400 */, st_ctime_nsec=401421402}, 0) = 0 <0.000018>
376 14:54:17.951040 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/glibc-hwcaps/x86-64-v3/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000050>
376 14:54:17.951179 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/glibc-hwcaps/x86-64-v3", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000042>
376 14:54:17.951310 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/glibc-hwcaps/x86-64-v2/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000045>
376 14:54:17.951452 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/glibc-hwcaps/x86-64-v2", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000036>
376 14:54:17.951582 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000041>
376 14:54:17.951697 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000036>
376 14:54:17.951806 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000040>
376 14:54:17.951939 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000028>
376 14:54:17.952052 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000028>
376 14:54:17.952151 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000025>
376 14:54:17.952266 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000029>
376 14:54:17.952368 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/tls", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000024>
376 14:54:17.952464 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000027>
376 14:54:17.952578 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000023>
376 14:54:17.952673 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000026>
376 14:54:17.952769 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000024>
376 14:54:17.952882 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000025>
376 14:54:17.952978 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000023>
376 14:54:17.953069 openat(AT_FDCWD, "/run/current-system/sw/lib/pipewire/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000025>
376 14:54:17.953163 newfstatat(AT_FDCWD, "/run/current-system/sw/lib/pipewire", {st_dev=makedev(0, 0x1c), st_ino=4443754, st_mode=S_IFDIR|0555, st_nlink=2, st_uid=65534, st_gid=65534, st_blksize=1024, st_blocks=17, st_size=11, st_atime=1627088546 /* 2021-07-23T21:02:26-0400 */, st_atime_nsec=0, st_mtime=1 /* 1969-12-31T19:00:01-0500 */, st_mtime_nsec=0, st_ctime=1627088546 /* 2021-07-23T21:02:26.635674842-0400 */, st_ctime_nsec=635674842}, 0) = 0 <0.000025>
376 14:54:17.953350 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/glibc-hwcaps/x86-64-v3/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000014>
376 14:54:17.953449 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/glibc-hwcaps/x86-64-v3", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000011>
376 14:54:17.953547 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/glibc-hwcaps/x86-64-v2/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.953641 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/glibc-hwcaps/x86-64-v2", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000010>
376 14:54:17.953718 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.953797 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000010>
376 14:54:17.953888 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.953966 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000010>
376 14:54:17.954056 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.954136 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000010>
376 14:54:17.954213 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.954303 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/tls", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000010>
376 14:54:17.954380 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/haswell/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.954470 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/haswell/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000012>
376 14:54:17.954598 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/haswell/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000015>
376 14:54:17.954711 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/haswell", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.954849 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000014>
376 14:54:17.954969 newfstatat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/x86_64", 0x7ffdb70755d0, 0) = -1 ENOENT (No such file or directory) <0.000013>
376 14:54:17.955084 openat(AT_FDCWD, "/nix/store/j5p0j1w27aqdzncpw73k95byvhh5prw2-glibc-2.33-47/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000022>
376 14:54:17.955227 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300x\2\0\0\0\0\0@\0\0\0\0\0\0\0 \215\37\0\0\0\0\0\0\0\0\0@\08\0\16\0@\0?\0>\0\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\20\3\0\0\0\0\0\0\20\3\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0S\0\0\0\0\0\0\0S\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310S\2\0\0\0\0\0\310S\2\0\0\0\0\0\0\20\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0`\2\0\0\0\0\0\0`\2\0\0\0\0\0"..., 832) = 832 <0.000014>
376 14:54:17.955353 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\20\3\0\0\0\0\0\0\20\3\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0S\0\0\0\0\0\0\0S\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310S\2\0\0\0\0\0\310S\2\0\0\0\0\0\0\20\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0`\2\0\0\0\0\0\0`\2\0\0\0\0\0\0`\2\0\0\0\0\0\327 \24\0\0\0\0\0\327 \24\0\0\0\0\0\0\20\0\0\0\0\0\0\1\0\0\0\4\0\0\0\0\220\26\0\0\0\0\0\0\220\26\0\0\0\0\0\0\220\26\0\0\0\0\0"..., 784, 64) = 784 <0.000009>
376 14:54:17.955445 pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\200\0\300\4\0\0\0\1\0\0\0\0\0\0\0", 32, 848) = 32 <0.000009>
376 14:54:17.955520 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\5\31\266\325\207t\271\21\344C\324\2122\347h\227\214N\201J\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0", 68, 880) = 68 <0.000009>
376 14:54:17.955609 newfstatat(3, "", {st_dev=makedev(0, 0x1c), st_ino=1155147, st_mode=S_IFREG|0555, st_nlink=2, st_uid=65534, st_gid=65534, st_blksize=131072, st_blocks=1841, st_size=2071776, st_atime=1627269575 /* 2021-07-25T23:19:35.240249856-0400 */, st_atime_nsec=240249856, st_mtime=1 /* 1969-12-31T19:00:01-0500 */, st_mtime_nsec=0, st_ctime=1626818796 /* 2021-07-20T18:06:36.566271704-0400 */, st_ctime_nsec=566271704}, AT_EMPTY_PATH) = 0 <0.000011>
376 14:54:17.955761 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\20\3\0\0\0\0\0\0\20\3\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0\340\321\30\0\0\0\0\0S\0\0\0\0\0\0\0S\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310S\2\0\0\0\0\0\310S\2\0\0\0\0\0\0\20\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0`\2\0\0\0\0\0\0`\2\0\0\0\0\0\0`\2\0\0\0\0\0\327 \24\0\0\0\0\0\327 \24\0\0\0\0\0\0\20\0\0\0\0\0\0\1\0\0\0\4\0\0\0\0\220\26\0\0\0\0\0\0\220\26\0\0\0\0\0\0\220\26\0\0\0\0\0"..., 784, 64) = 784 <0.000009>
376 14:54:17.955854 mmap(NULL, 1851728, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x784e45299000 <0.000015>
376 14:54:17.955933 mmap(0x784e452bf000, 1323008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x784e452bf000 <0.000022>
376 14:54:17.956017 mmap(0x784e45402000, 315392, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x169000) = 0x784e45402000 <0.000012>
376 14:54:17.956091 mmap(0x784e4544f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b5000) = 0x784e4544f000 <0.000014>
376 14:54:17.956187 mmap(0x784e45455000, 33104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x784e45455000 <0.000011>
376 14:54:17.956272 close(3) = 0 <0.000008>
376 14:54:17.956351 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x784e45296000 <0.000010>
376 14:54:17.956428 arch_prctl(ARCH_SET_FS, 0x784e45296740) = 0 <0.000008>
376 14:54:17.956546 mprotect(0x784e4544f000, 12288, PROT_READ) = 0 <0.000014>
376 14:54:17.956639 mprotect(0x403000, 4096, PROT_READ) = 0 <0.000011>
376 14:54:17.956715 mprotect(0x784e4548f000, 8192, PROT_READ) = 0 <0.000013>
376 14:54:17.956840 brk(NULL) = 0x1c42000 <0.000008>
376 14:54:17.956909 brk(0x1c63000) = 0x1c63000 <0.000010>
376 14:54:17.956985 openat(AT_FDCWD, "/nix/store/fjnvfdx15sx9z794fl9x7112hsflq742-glibc-locales-2.33-47/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000016>
376 14:54:17.957069 newfstatat(3, "", {st_dev=makedev(0, 0x1c), st_ino=2270063, st_mode=S_IFREG|0444, st_nlink=4, st_uid=65534, st_gid=65534, st_blksize=131072, st_blocks=127225, st_size=225226832, st_atime=1627189176 /* 2021-07-25T00:59:36.718617093-0400 */, st_atime_nsec=718617093, st_mtime=1 /* 1969-12-31T19:00:01-0500 */, st_mtime_nsec=0, st_ctime=1626818435 /* 2021-07-20T18:00:35.747085048-0400 */, st_ctime_nsec=747085048}, AT_EMPTY_PATH) = 0 <0.000011>
376 14:54:17.957231 mmap(NULL, 225226832, PROT_READ, MAP_PRIVATE, 3, 0) = 0x784e37bca000 <0.000011>
376 14:54:17.957321 close(3) = 0 <0.000008>
376 14:54:17.957422 pivot_root(".", "old_root") = 0 <0.000257>
- strace of mergerfs while app tried to do it's thing:
strace -fvTtt -s 256 -p <mergerfsPID> -o /tmp/mergerfs.strace.txt
77 14:54:00.585367 read(3, <unfinished ...>
76 14:54:00.585560 read(3, <unfinished ...>
75 14:54:00.585632 read(3, <unfinished ...>
73 14:54:00.585691 read(3, <unfinished ...>
72 14:54:00.585749 read(3, <unfinished ...>
71 14:54:00.585810 read(3, <unfinished ...>
74 14:54:00.585866 read(3, <unfinished ...>
70 14:54:00.585917 read(3, <unfinished ...>
69 14:54:00.585966 read(3, <unfinished ...>
68 14:54:00.586013 read(3, <unfinished ...>
67 14:54:00.586059 read(3, <unfinished ...>
66 14:54:00.586109 read(3, <unfinished ...>
65 14:54:00.586156 futex(0x7ffd8e32e6c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
77 14:54:00.586216 <... read resumed>"/\0\0\0\1\0\0\0\252\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\1\0\0\0\0\0\0.envrc\0", 1052672) = 47 <0.000660>
77 14:54:00.586304 newfstatat(AT_FDCWD, "//.envrc", 0x7070279e2160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000018>
77 14:54:00.586529 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\252\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000017>
77 14:54:00.586676 read(3, <unfinished ...>
76 14:54:00.614256 <... read resumed>"-\0\0\0\1\0\0\0\254\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\0\0\0\0\0\0\0.git\0", 1052672) = 45 <0.028622>
76 14:54:00.614465 newfstatat(AT_FDCWD, "//.git", 0x7070282e5160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000032>
76 14:54:00.614709 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\254\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000018>
76 14:54:00.614882 read(3, <unfinished ...>
75 14:54:14.177466 <... read resumed>"8\0\0\0\3\0\0\0\256\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 56 <13.591774>
75 14:54:14.177634 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000051>
75 14:54:14.177921 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000041>
75 14:54:14.178127 writev(3, [{iov_base="x\0\0\0\0\0\0\0\256\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\210\301\264\316iIK\23\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0!\23\257^\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\361\v\250\"m1\2779m1\2779\355A\0\0\23\0\0\0\376\377\0\0\376\377\0\0\0\0\0\0\0\6\0\0\0\0\0\0", iov_len=104}], 2) = 120 <0.000039>
75 14:54:14.178252 read(3, <unfinished ...>
73 14:54:14.178297 <... read resumed>",\0\0\0\1\0\0\0\260\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <13.592551>
73 14:54:14.178353 newfstatat(AT_FDCWD, "//256", 0x707029dee160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000011>
73 14:54:14.178452 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\260\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000009>
73 14:54:14.178531 read(3, <unfinished ...>
72 14:54:14.178663 <... read resumed>",\0\0\0\1\0\0\0\262\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <13.592856>
72 14:54:14.178729 newfstatat(AT_FDCWD, "//256", 0x70702a6f1160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000010>
72 14:54:14.178809 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\262\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000009>
72 14:54:14.178904 read(3, <unfinished ...>
71 14:54:14.179484 <... read resumed>"3\0\0\0\1\0\0\0\264\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <13.593619>
71 14:54:14.179593 newfstatat(AT_FDCWD, "//pivot_root", 0x70702aff4160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000050>
71 14:54:14.179720 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\264\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000013>
71 14:54:14.179824 read(3, <unfinished ...>
74 14:54:14.179869 <... read resumed>"3\0\0\0\1\0\0\0\266\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <13.593954>
74 14:54:14.179945 newfstatat(AT_FDCWD, "//pivot_root", 0x7070294eb160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000231>
74 14:54:14.180293 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\266\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000046>
74 14:54:14.180430 read(3, <unfinished ...>
70 14:54:14.180840 <... read resumed>"1\0\0\0\1\0\0\0\270\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0old_root\0", 1052672) = 49 <13.594876>
70 14:54:14.180897 newfstatat(AT_FDCWD, "//old_root", {st_dev=makedev(0, 0x1b), st_ino=219055, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=65534, st_gid=0, st_blksize=131072, st_blocks=17, st_size=2, st_atime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_atime_nsec=968831341, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324841 /* 2021-07-26T14:40:41.008814812-0400 */, st_ctime_nsec=8814812}, AT_SYMLINK_NOFOLLOW) = 0 <0.000014>
70 14:54:14.181074 newfstatat(AT_FDCWD, "//old_root", {st_dev=makedev(0, 0x1b), st_ino=219055, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=65534, st_gid=0, st_blksize=131072, st_blocks=17, st_size=2, st_atime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_atime_nsec=968831341, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324841 /* 2021-07-26T14:40:41.008814812-0400 */, st_ctime_nsec=8814812}, AT_SYMLINK_NOFOLLOW) = 0 <0.000010>
70 14:54:14.181239 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\270\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\f\0\0\0\0\0\0\0\235\352\253\\,\20=#\1\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0po\2332\250\2348U\2\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\251\1\377`\0\0\0\0m1\2779m1\2779\334\200\206\0\355A\0\0\2\0\0\0\376\377\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000011>
70 14:54:14.181335 read(3, <unfinished ...>
69 14:54:14.197590 <... read resumed>"0\0\0\0\33\0\0\0\272\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\1\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 48 <13.611574>
69 14:54:14.197735 writev(3, [{iov_base=" \0\0\0\0\0\0\0\272\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\22\0\34pp\0\0\0\0\0\0\0\0\0\0", iov_len=16}], 2) = 32 <0.000043>
68 14:54:14.197897 <... read resumed>"P\0\0\0\34\0\0\0\274\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\1\0\0\0\0\0\0\0\22\0\34pp\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 80 <13.611841>
69 14:54:14.197952 read(3, <unfinished ...>
68 14:54:14.198000 openat(AT_FDCWD, "//", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 5 <0.000022>
68 14:54:14.198099 newfstatat(5, "", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_EMPTY_PATH) = 0 <0.000013>
68 14:54:14.198298 newfstatat(5, "", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_EMPTY_PATH) = 0 <0.000011>
68 14:54:14.198478 getdents64(5, [{d_ino=34, d_off=1, d_reclen=24, d_type=DT_DIR, d_name="."}, {d_ino=34, d_off=2, d_reclen=24, d_type=DT_DIR, d_name=".."}, {d_ino=259, d_off=273041796, d_reclen=24, d_type=DT_DIR, d_name="run"}, {d_ino=260, d_off=276750430, d_reclen=24, d_type=DT_DIR, d_name="etc"}, {d_ino=128, d_off=282601342, d_reclen=32, d_type=DT_DIR, d_name="persist"}, {d_ino=768, d_off=302065172, d_reclen=24, d_type=DT_DIR, d_name="usr"}, {d_ino=392, d_off=302452190, d_reclen=24, d_type=DT_DIR, d_name="bin"}, {d_ino=2, d_off=339835541, d_reclen=24, d_type=DT_DIR, d_name="nix"}, {d_ino=391, d_off=340815718, d_reclen=24, d_type=DT_DIR, d_name="home"}, {d_ino=219055, d_off=407479005, d_reclen=32, d_type=DT_DIR, d_name="old_root"}, {d_ino=524, d_off=416365006, d_reclen=24, d_type=DT_DIR, d_name="srv"}, {d_ino=2405, d_off=423502643, d_reclen=24, d_type=DT_DIR, d_name="opt"}, {d_ino=257, d_off=445598280, d_reclen=24, d_type=DT_DIR, d_name="sys"}, {d_ino=385, d_off=456475810, d_reclen=24, d_type=DT_DIR, d_name="tmp"}, {d_ino=514, d_off=464489028, d_reclen=24, d_type=DT_DIR, d_name="root"}, {d_ino=256, d_off=465994292, d_reclen=24, d_type=DT_DIR, d_name="proc"}, {d_ino=386, d_off=512330918, d_reclen=24, d_type=DT_DIR, d_name="var"}, {d_ino=395, d_off=527207144, d_reclen=24, d_type=DT_DIR, d_name="boot"}, {d_ino=258, d_off=529718414, d_reclen=24, d_type=DT_DIR, d_name="dev"}], 32768) = 472 <0.000024>
68 14:54:14.198684 getdents64(5, [], 32768) = 0 <0.000011>
68 14:54:14.198763 close(5) = 0 <0.000014>
68 14:54:14.198845 writev(3, [{iov_base="p\2\0\0\0\0\0\0\274\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\337Zw\322\335[\265H\1\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0.\0\0\0\0\0\0\0=\362NQ\300BXR\2\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0..\0\0\0\0\0\0\332Rw!S\252\326Y\3\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0run\0\0\0\0\0\310\24\n\34\0067\4\252\4\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0etc\0\0\0\0\0\2\313bg\357\300\3133\5\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0persist\0007\230\354c\342\240C\231\6\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0usr\0\0\0\0\0\350\200.\217w\201D\351\7\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0bin\0\0\0\0\0\5.M\204\r\325\302\343\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0nix\0\0\0\0\0"..., iov_len=608}], 2) = 624 <0.000061>
67 14:54:14.199013 <... read resumed>"P\0\0\0\34\0\0\0\276\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W\1\0\0\0\0\0\0\0\22\0\34pp\0\0\23\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 80 <13.612906>
68 14:54:14.199074 read(3, <unfinished ...>
67 14:54:14.199126 writev(3, [{iov_base="\20\0\0\0\0\0\0\0\276\1\0\0\0\0\0\0", iov_len=16}], 1) = 16 <0.000014>
67 14:54:14.199231 read(3, <unfinished ...>
66 14:54:14.199312 <... read resumed>"@\0\0\0\35\0\0\0\300\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\34pp\0\0\0\210\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 64 <13.613159>
66 14:54:14.199480 writev(3, [{iov_base="\20\0\0\0\0\0\0\0\300\1\0\0\0\0\0\0", iov_len=16}], 1) = 16 <0.000055>
66 14:54:14.199659 read(3, <unfinished ...>
77 14:54:16.149025 <... read resumed>"8\0\0\0\3\0\0\0\302\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 56 <15.562283>
77 14:54:16.149214 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000038>
77 14:54:16.149441 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000012>
77 14:54:16.149616 writev(3, [{iov_base="x\0\0\0\0\0\0\0\302\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\210\301\264\316iIK\23\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0!\23\257^\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\361\v\250\"m1\2779m1\2779\355A\0\0\23\0\0\0\376\377\0\0\376\377\0\0\0\0\0\0\0\6\0\0\0\0\0\0", iov_len=104}], 2) = 120 <0.000013>
77 14:54:16.149727 read(3, <unfinished ...>
76 14:54:16.149790 <... read resumed>"/\0\0\0\1\0\0\0\304\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\1\0\0\0\0\0\0.envrc\0", 1052672) = 47 <15.534795>
76 14:54:16.149867 newfstatat(AT_FDCWD, "//.envrc", 0x7070282e5160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000012>
76 14:54:16.149964 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\304\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000013>
76 14:54:16.150094 read(3, <unfinished ...>
75 14:54:16.173987 <... read resumed>"-\0\0\0\1\0\0\0\306\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\0\0\0\0\0\0\0.git\0", 1052672) = 45 <1.995690>
75 14:54:16.174097 newfstatat(AT_FDCWD, "//.git", 0x707028be8160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000014>
75 14:54:16.174204 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\306\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000015>
75 14:54:16.174329 read(3, <unfinished ...>
73 14:54:16.445832 <... read resumed>"*\0\0\0\1\0\0\0\310\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0p\0", 1052672) = 42 <2.267257>
73 14:54:16.445953 newfstatat(AT_FDCWD, "//p", 0x707029dee160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000015>
73 14:54:16.446092 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\310\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000014>
73 14:54:16.446209 read(3, <unfinished ...>
72 14:54:16.532258 <... read resumed>"+\0\0\0\1\0\0\0\312\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pw\0", 1052672) = 43 <2.353305>
72 14:54:16.532420 newfstatat(AT_FDCWD, "//pw", 0x70702a6f1160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000037>
72 14:54:16.532614 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\312\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000017>
72 14:54:16.532774 read(3, <unfinished ...>
71 14:54:16.767227 <... read resumed>"/\0\0\0\1\0\0\0\314\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\1\0\0\0\0\0\0.envrc\0", 1052672) = 47 <2.587355>
71 14:54:16.767423 newfstatat(AT_FDCWD, "//.envrc", 0x70702aff4160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000015>
71 14:54:16.767594 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\314\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000042>
71 14:54:16.767729 read(3, <unfinished ...>
74 14:54:16.795804 <... read resumed>"-\0\0\0\1\0\0\0\316\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\0\0\0\0\0\0\0.git\0", 1052672) = 45 <2.615327>
74 14:54:16.795918 newfstatat(AT_FDCWD, "//.git", 0x7070294eb160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000014>
74 14:54:16.796019 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\316\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000017>
74 14:54:16.796129 read(3, <unfinished ...>
70 14:54:17.674125 <... read resumed>"8\0\0\0\3\0\0\0\320\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 56 <3.492744>
70 14:54:17.674277 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000021>
70 14:54:17.674594 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000022>
70 14:54:17.674862 writev(3, [{iov_base="x\0\0\0\0\0\0\0\320\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\210\301\264\316iIK\23\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0!\23\257^\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\361\v\250\"m1\2779m1\2779\355A\0\0\23\0\0\0\376\377\0\0\376\377\0\0\0\0\0\0\0\6\0\0\0\0\0\0", iov_len=104}], 2) = 120 <0.000018>
69 14:54:17.674995 <... read resumed>",\0\0\0\1\0\0\0\322\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <3.476999>
70 14:54:17.675065 read(3, <unfinished ...>
69 14:54:17.675129 newfstatat(AT_FDCWD, "//256", 0x70702bff6160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000015>
69 14:54:17.675264 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\322\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000014>
69 14:54:17.675379 read(3, <unfinished ...>
68 14:54:17.675459 <... read resumed>",\0\0\0\1\0\0\0\324\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <3.476336>
68 14:54:17.675541 newfstatat(AT_FDCWD, "//256", 0x707030b3c160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000017>
68 14:54:17.675667 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\324\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000014>
68 14:54:17.675797 read(3, <unfinished ...>
67 14:54:17.676505 <... read resumed>"3\0\0\0\1\0\0\0\326\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <3.477199>
67 14:54:17.676603 newfstatat(AT_FDCWD, "//pivot_root", 0x70703143f160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000016>
67 14:54:17.676751 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\326\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000014>
67 14:54:17.676873 read(3, <unfinished ...>
66 14:54:17.676937 <... read resumed>"3\0\0\0\1\0\0\0\330\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <3.477209>
66 14:54:17.677036 newfstatat(AT_FDCWD, "//pivot_root", 0x707031d42160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000016>
66 14:54:17.677158 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\330\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000015>
66 14:54:17.677293 read(3, <unfinished ...>
77 14:54:17.677808 <... read resumed>"1\0\0\0\1\0\0\0\332\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0old_root\0", 1052672) = 49 <1.528024>
77 14:54:17.677894 newfstatat(AT_FDCWD, "//old_root", {st_dev=makedev(0, 0x1b), st_ino=219055, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=65534, st_gid=0, st_blksize=131072, st_blocks=17, st_size=2, st_atime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_atime_nsec=968831341, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324841 /* 2021-07-26T14:40:41.008814812-0400 */, st_ctime_nsec=8814812}, AT_SYMLINK_NOFOLLOW) = 0 <0.000017>
77 14:54:17.678147 newfstatat(AT_FDCWD, "//old_root", {st_dev=makedev(0, 0x1b), st_ino=219055, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=65534, st_gid=0, st_blksize=131072, st_blocks=17, st_size=2, st_atime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_atime_nsec=968831341, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324841 /* 2021-07-26T14:40:41.008814812-0400 */, st_ctime_nsec=8814812}, AT_SYMLINK_NOFOLLOW) = 0 <0.000015>
77 14:54:17.678390 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\332\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\f\0\0\0\0\0\0\0\235\352\253\\,\20=#\1\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0po\2332\250\2348U\2\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\251\1\377`\0\0\0\0m1\2779m1\2779\334\200\206\0\355A\0\0\2\0\0\0\376\377\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000015>
77 14:54:17.678527 read(3, <unfinished ...>
76 14:54:17.696622 <... read resumed>"0\0\0\0\33\0\0\0\334\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\1\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 48 <1.546450>
76 14:54:17.696812 writev(3, [{iov_base=" \0\0\0\0\0\0\0\334\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\220\24\0\370op\0\0\0\0\0\0\0\0\0\0", iov_len=16}], 2) = 32 <0.000022>
76 14:54:17.696980 read(3, <unfinished ...>
75 14:54:17.697035 <... read resumed>"P\0\0\0\34\0\0\0\336\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\1\0\0\0\0\0\0\220\24\0\370op\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 80 <1.522657>
75 14:54:17.697106 openat(AT_FDCWD, "//", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 5 <0.000022>
75 14:54:17.697221 newfstatat(5, "", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_EMPTY_PATH) = 0 <0.000014>
75 14:54:17.697407 newfstatat(5, "", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_EMPTY_PATH) = 0 <0.000011>
75 14:54:17.697559 getdents64(5, [{d_ino=34, d_off=1, d_reclen=24, d_type=DT_DIR, d_name="."}, {d_ino=34, d_off=2, d_reclen=24, d_type=DT_DIR, d_name=".."}, {d_ino=259, d_off=273041796, d_reclen=24, d_type=DT_DIR, d_name="run"}, {d_ino=260, d_off=276750430, d_reclen=24, d_type=DT_DIR, d_name="etc"}, {d_ino=128, d_off=282601342, d_reclen=32, d_type=DT_DIR, d_name="persist"}, {d_ino=768, d_off=302065172, d_reclen=24, d_type=DT_DIR, d_name="usr"}, {d_ino=392, d_off=302452190, d_reclen=24, d_type=DT_DIR, d_name="bin"}, {d_ino=2, d_off=339835541, d_reclen=24, d_type=DT_DIR, d_name="nix"}, {d_ino=391, d_off=340815718, d_reclen=24, d_type=DT_DIR, d_name="home"}, {d_ino=219055, d_off=407479005, d_reclen=32, d_type=DT_DIR, d_name="old_root"}, {d_ino=524, d_off=416365006, d_reclen=24, d_type=DT_DIR, d_name="srv"}, {d_ino=2405, d_off=423502643, d_reclen=24, d_type=DT_DIR, d_name="opt"}, {d_ino=257, d_off=445598280, d_reclen=24, d_type=DT_DIR, d_name="sys"}, {d_ino=385, d_off=456475810, d_reclen=24, d_type=DT_DIR, d_name="tmp"}, {d_ino=514, d_off=464489028, d_reclen=24, d_type=DT_DIR, d_name="root"}, {d_ino=256, d_off=465994292, d_reclen=24, d_type=DT_DIR, d_name="proc"}, {d_ino=386, d_off=512330918, d_reclen=24, d_type=DT_DIR, d_name="var"}, {d_ino=395, d_off=527207144, d_reclen=24, d_type=DT_DIR, d_name="boot"}, {d_ino=258, d_off=529718414, d_reclen=24, d_type=DT_DIR, d_name="dev"}], 32768) = 472 <0.000022>
75 14:54:17.697709 getdents64(5, [], 32768) = 0 <0.000010>
75 14:54:17.697783 close(5) = 0 <0.000012>
75 14:54:17.697859 writev(3, [{iov_base="p\2\0\0\0\0\0\0\336\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\337Zw\322\335[\265H\1\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0.\0\0\0\0\0\0\0=\362NQ\300BXR\2\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0..\0\0\0\0\0\0\332Rw!S\252\326Y\3\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0run\0\0\0\0\0\310\24\n\34\0067\4\252\4\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0etc\0\0\0\0\0\2\313bg\357\300\3133\5\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0persist\0007\230\354c\342\240C\231\6\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0usr\0\0\0\0\0\350\200.\217w\201D\351\7\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0bin\0\0\0\0\0\5.M\204\r\325\302\343\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0nix\0\0\0\0\0"..., iov_len=608}], 2) = 624 <0.000013>
75 14:54:17.697959 read(3, <unfinished ...>
73 14:54:17.698003 <... read resumed>"P\0\0\0\34\0\0\0\340\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\1\0\0\0\0\0\0\220\24\0\370op\0\0\23\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\210\1\0\0\0\0\0", 1052672) = 80 <1.251739>
73 14:54:17.698055 writev(3, [{iov_base="\20\0\0\0\0\0\0\0\340\1\0\0\0\0\0\0", iov_len=16}], 1) = 16 <0.000010>
73 14:54:17.698145 read(3, <unfinished ...>
72 14:54:17.698188 <... read resumed>"@\0\0\0\35\0\0\0\342\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\220\24\0\370op\0\0\0\210\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 64 <1.165364>
72 14:54:17.698240 writev(3, [{iov_base="\20\0\0\0\0\0\0\0\342\1\0\0\0\0\0\0", iov_len=16}], 1) = 16 <0.000010>
72 14:54:17.698317 read(3, <unfinished ...>
71 14:54:17.937564 <... read resumed>",\0\0\0\1\0\0\0\344\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <1.169742>
71 14:54:17.937836 newfstatat(AT_FDCWD, "//256", 0x70702aff4160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000092>
71 14:54:17.938102 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\344\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000058>
74 14:54:17.938324 <... read resumed>",\0\0\0\1\0\0\0\346\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\000256\0", 1052672) = 44 <1.142150>
71 14:54:17.938400 read(3, <unfinished ...>
74 14:54:17.938451 newfstatat(AT_FDCWD, "//256", 0x7070294eb160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000014>
74 14:54:17.938555 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\346\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000019>
74 14:54:17.938689 read(3, <unfinished ...>
70 14:54:17.939163 <... read resumed>"3\0\0\0\1\0\0\0\350\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <0.264040>
70 14:54:17.939250 newfstatat(AT_FDCWD, "//pivot_root", 0x70702b7f5160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000060>
70 14:54:17.939438 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\350\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000022>
70 14:54:17.939652 read(3, <unfinished ...>
69 14:54:17.939712 <... read resumed>"3\0\0\0\1\0\0\0\352\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0pivot_root\0", 1052672) = 51 <0.264259>
69 14:54:17.939821 newfstatat(AT_FDCWD, "//pivot_root", 0x70702bff6160, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory) <0.000014>
69 14:54:17.939917 writev(3, [{iov_base="\220\0\0\0\0\0\0\0\352\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=128}], 2) = 144 <0.000016>
69 14:54:17.940079 read(3, <unfinished ...>
68 14:54:17.940313 <... read resumed>"8\0\0\0\3\0\0\0\354\1\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 1052672) = 56 <0.264455>
68 14:54:17.940394 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000032>
68 14:54:17.940609 newfstatat(AT_FDCWD, "//", {st_dev=makedev(0, 0x1b), st_ino=34, st_mode=S_IFDIR|0755, st_nlink=19, st_uid=65534, st_gid=65534, st_blksize=1536, st_blocks=17, st_size=19, st_atime=1588532001 /* 2020-05-03T14:53:21.581438449-0400 */, st_atime_nsec=581438449, st_mtime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_mtime_nsec=968831341, st_ctime=1627324832 /* 2021-07-26T14:40:32.968831341-0400 */, st_ctime_nsec=968831341}, AT_SYMLINK_NOFOLLOW) = 0 <0.000012>
68 14:54:17.940829 writev(3, [{iov_base="x\0\0\0\0\0\0\0\354\1\0\0\0\0\0\0", iov_len=16}, {iov_base="\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\210\301\264\316iIK\23\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0!\23\257^\0\0\0\0\240\1\377`\0\0\0\0\240\1\377`\0\0\0\0\361\v\250\"m1\2779m1\2779\355A\0\0\23\0\0\0\376\377\0\0\376\377\0\0\0\0\0\0\0\6\0\0\0\0\0\0", iov_len=104}], 2) = 120 <0.000042>
68 14:54:17.941013 read(3,
Additional context
overlayfs can pivot_root correctly with lowerdir of type ZFS and upperdir and workdir of type tmpfs.
fuse-overlayfs can pivot_root correctly.
unionfs-fuse supposedly can pivot_root correctly, apparently it needs some -o chroot workaround to prevent a deadlock which may be the problem here as well.
No, it doesn't handle loops of itself which appears to be what happens. I'm not sure what the expected behavior is. I'd have to look at the other projects.
I'm not sure.
fuse-overlayfs does not have anything specific wrt pivot_root or chroot. unionfs-fuse calls chroot but when doing what you show above it just blocks. I've not tried unionfs-fuse with chroot option following what you did above to see if it too has a similar behavior.
If the expectation is that mergerfs is going to hold open file descriptors to the original branch paths that's not happening. Not now anyway. That would substantially change the way mergerfs works. It would not only impact the way it works but would change the user experience with regard to adding/removing branches, failure conditions, etc.
I'm not really sure what pivot_root expects so I'm not sure about the expectations. Though it's fine on my end since pivot_root looks like it's just used to prevent escaping to the original root within the namespace which doesn't really matter since I expose the original root (so chroot works just fine).
I included the reproduction code for unionfs-fuse and fuse-overlayfs in which pivot_root works in case it's needed in the future.
For unionfs-fuse
unshare --pid --mount --map-root-user --fork --mount-proc --propagation private
CHROOT_PATH="$(mktemp -d)"
mkdir -p "${CHROOT_PATH}/root"
mount -o rbind / "${CHROOT_PATH}/root"
UNION_ROOT="$(mktemp -d)"
unionfs -o allow_other,use_ino -o cow,chroot="${CHROOT_PATH}" /root=RW "${UNION_ROOT}"
cd "${UNION_ROOT}"
mount -t proc none proc/
mount -o rbind /dev dev/
pivot_root . .
and for fuse-overlayfs
unshare --pid --mount --map-root-user --fork --mount-proc --propagation private
WORK_DIR="$(mktemp -d)"
mkdir -p "${WORK_DIR}"/{lowerdir,workdir,union}
mount -t tmpfs none "${WORK_DIR}/lowerdir"
mount -t tmpfs none "${WORK_DIR}/workdir"
fuse-overlayfs -olowerdir="${WORK_DIR}/lowerdir",upperdir=/,workdir="${WORK_DIR}/workdir" "${WORK_DIR}/union"
cd "${WORK_DIR}/union"
mount -t proc none proc/
mount -o rbind /dev dev/
pivot_root . .
I think I got it working with a chroot similar to unionfs-fuse though I need to fool with it more.
That are you expecting to run this as non-root? Because that's not really a supported usecase by mergerfs.
I'll personally be running as root most of the time if not all with just chroot. I was just messing around with unshare since other people might be interested but can only run it unprivileged.