Why are there writable files in /nix/store?

Just now, I ran nix store optimize for the first time and it returned

nix store optimise
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IClipboard.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IStatusBarService.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IPlatform.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IHardware.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IUserMonitor.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/app_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/container_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/status.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/session_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/upgrader.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/initializer.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/user_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/hardware_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/clipboard_manager.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/arguments.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/run.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/images.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/http.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/drivers.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/run_core.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/logging.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/arch.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/props.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/mount.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/lxc.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/load.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/save.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/GLib.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/repository/__pycache__/__init__.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_signalhelper.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_error.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_propertyhelper.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/module.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/types.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_ossighelper.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/docstring.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/importer.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_constants.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_option.cpython-310.pyc'
warning: skipping suspicious writable file '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/__init__.cpython-310.pyc'

Just in case,

❯ nix-info -m
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.52, NixOS, 22.11 (Raccoon), 22.11.20220706.a5c867d`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.9.1`
 - channels(root): `""`
 - channels(joshua): `""`
 - nixpkgs: `/nix/store/5zpn09hgv9cr38hlbbbqxj2y0pval39a-cq8gglhvf8yd21xnrxdfjcz9xrpfb0j0-nixpkgs-patched-a5c867d`

I have the waydroid module enabled which I suspect may somehow be related.

I started waydroid and closed it and then stated each of the writable files by running find /nix/store -perm -600 -a -not -type l -print -exec stat {} \;

❯ find /nix/store -perm -600 -a -not -type l -print -exec stat {} \;
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__
  File: /nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 259,2   Inode: 10013323    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 22:28:03.130726702 -0400
Modify: 2022-07-01 22:08:27.496691877 -0400
Change: 2022-07-01 22:08:27.496691877 -0400
 Birth: 2022-07-01 22:08:27.489691977 -0400
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/GLib.cpython-310.pyc
  File: /nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/GLib.cpython-310.pyc
  Size: 22616           Blocks: 48         IO Block: 4096   regular file
Device: 259,2   Inode: 9961786     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-14 22:42:03.621579597 -0400
Modify: 2022-07-01 22:08:27.496691877 -0400
Change: 2022-07-01 22:08:27.496691877 -0400
 Birth: 2022-07-01 22:08:27.496691877 -0400


(omitted many lines due to similarity and body limit)

Both timestamps seem to be around the time when I turn off my computer where

  • 2022-07-14 22:42:03.620579605 is the time at which I shutdown by my computer last night (according to journal logs)
  • 2022-07-01 22:08:27.489691977 is likely due to the old path getting garbage collected.

Also, opening waydroid seems to have had no effect. Does anyone know why this may be happening, and if it is intended?

2 Likes

Because python is very difficult to convince NOT to write to the directories where its source files are. It’s the primary offender on this that I hear about. This is one of the reasons nixos mounts the nix store as a read-only filesystem. Essentially any python process running with write permissions on the nix store could be doing this. If it’s a mutli-user installation, that would require it run as root. On a single-user installation, it could be anything.

EDIT: Ah, didn’t notice you were on nixos. That makes it VERY strange, unless you turned off nix.readOnlyStore

By default NixOS does remount the /nix/store as a read only bind-mount, unless you deactivated nix.readOnlyStore you never should see what you see here.

If though you indeed deactived it, any process owned by root could essentially have done that.

No, nix.readOnlyStore is active (and I never deactivated it … to my knowledge)

❯ nix eval .\#nixosConfigurations.JOSHUA-PC.config.nix.readOnlyStore
warning: Git tree '/home/joshua/kde/nix/main-config' is dirty
true

Is it possible that something weird happens with shutdown order? Like the access times are all when I shutdown my computer, so maybe /nix/store get unmounted as read only before the waydroid-container service begins its shutdown?

1 Like

I’m not the foremost expert on this, but I believe nix will temporarily remount the directory read-write when it’s writing to the store, right? If the waydroid command is invoked by root in that window, surely python will start creating cache fles in the store?

It’s not time-based, it’s process based. The nix daemon always has rw access, and other processes are always ro.

3 Likes

The store is writable in

2 Likes

Shutdown and boot are indeed the only 2 occasions when I can see such a race happen.

I have not enough insights into how exactly the boot process works, or how systemd determines shutdown order, though before the remount and after RO gets released, to be able to actually “release” /, there is a chance for other processes to write the store.

Looking through my system logs on the 1st of July and commit history, I was reminded of something weird that happened.

I had encountered this issue glibc locales cause nixos-rebuild to fail · Issue #179486 · NixOS/nixpkgs · GitHub then upon adding the requested locales, I accidentally ran sudo nixos-rebuild switch instead of dry-activate. This triggered a lot of services to be reloaded and eventually failed. The time of this event aligns with when the directory was created.

Jul 01 22:08:25 JOSHUA-PC sudo[245285]:   joshua : TTY=pts/15 ; PWD=/home/joshua/.config/nix ; USER=root ; COMMAND=/nix/store/1psw6gi16i6188ww3clbnxaqr3mp9hqy-nix-2.9.1/bin/nix-env -p /nix/var/nix/profiles/system --set /nix/store/dyh2ci9r499q4y5pdkydmyr0x9r8n8mb-nixos-system-JOSHUA-PC-22.11.20220629.cf3ab54
Jul 01 22:08:25 JOSHUA-PC sudo[245285]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Jul 01 22:08:25 JOSHUA-PC sudo[245285]: pam_unix(sudo:session): session closed for user root
Jul 01 22:08:25 JOSHUA-PC sudo[245299]:   joshua : TTY=pts/15 ; PWD=/home/joshua/.config/nix ; USER=root ; COMMAND=/nix/store/dyh2ci9r499q4y5pdkydmyr0x9r8n8mb-nixos-system-JOSHUA-PC-22.11.20220629.cf3ab54/bin/switch-to-configuration switch
Jul 01 22:08:25 JOSHUA-PC sudo[245299]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Jul 01 22:08:27 JOSHUA-PC nixos[245300]: switching to system configuration /nix/store/dyh2ci9r499q4y5pdkydmyr0x9r8n8mb-nixos-system-JOSHUA-PC-22.11.20220629.cf3ab54
Jul 01 22:08:27 JOSHUA-PC ModemManager[201760]: <info>  caught signal, shutting down...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopping Modem Manager...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: NetworkManager-wait-online.service: Deactivated successfully.
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopped Network Manager Wait Online.
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopping Network Manager...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopping Accounts Service...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopping Kernel Auditing...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopping CUPS Remote Printer Discovery...
Jul 01 22:08:27 JOSHUA-PC cupsd[1217]: Expiring subscriptions...
Jul 01 22:08:27 JOSHUA-PC systemd[1]: cpufreq.service: Deactivated successfully.

.... (omitted due to limit)

Jul 01 22:08:27 JOSHUA-PC waydroid[245355]: [22:08:27] WayDroid container is STOPPED
Jul 01 22:08:27 JOSHUA-PC vboxnet0-post-stop[245356]: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Jul 01 22:08:27 JOSHUA-PC waydroid[245427]: [22:08:27] WayDroid session is not started
Jul 01 22:08:27 JOSHUA-PC systemd[1]: waydroid-container.service: Deactivated successfully.
Jul 01 22:08:27 JOSHUA-PC systemd[1]: Stopped Waydroid Container.
Jul 01 22:08:27 JOSHUA-PC systemd[1]: waydroid-container.service: Consumed 4.982s CPU time, no IP traffic.
Jul 01 22:08:30 JOSHUA-PC polkitd[201746]: Reloading rules
Jul 01 22:08:30 JOSHUA-PC polkitd[201746]: Collecting garbage unconditionally...
Jul 01 22:08:30 JOSHUA-PC polkitd[201746]: Loading rules from directory /etc/polkit-1/rules.d
Jul 01 22:08:30 JOSHUA-PC polkitd[201746]: Loading rules from directory /run/current-system/sw/share/polkit-1/rules.d

.... (omitted due to limit)

Jul 01 22:08:41 JOSHUA-PC cupsd[246039]: Expiring subscriptions...
Jul 01 22:08:42 JOSHUA-PC nixos[245300]: switching to system configuration /nix/store/dyh2ci9r499q4y5pdkydmyr0x9r8n8mb-nixos-system-JOSHUA-PC-22.11.20220629.cf3ab54 failed (status 4)
Jul 01 22:08:42 JOSHUA-PC sudo[245299]: pam_unix(sudo:session): session closed for user root

I tried it on my system and found these files:

[davidak@gaming:~]$ find /nix/store -perm -600 -a -not -type l -print -exec stat {} \;
/nix/store
  File: /nix/store
  Size: 31268864  	Blocks: 61096      IO Block: 4096   directory
Device: 8,2	Inode: 2752514     Links: 6851
Access: (1775/drwxrwxr-t)  Uid: (    0/    root)   Gid: (30000/  nixbld)
Access: 2020-10-11 12:31:58.262963662 +0200
Modify: 2022-07-04 19:34:33.910151336 +0200
Change: 2022-07-14 20:47:49.530000042 +0200
 Birth: 2019-04-22 23:17:26.403037305 +0200
/nix/store/.links
  File: /nix/store/.links
  Size: 53227520  	Blocks: 104016     IO Block: 4096   directory
Device: 8,2	Inode: 2752515     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-04-22 23:17:26.403037305 +0200
Modify: 2022-06-10 19:00:03.116615942 +0200
Change: 2022-06-10 19:00:03.116615942 +0200
 Birth: 2019-04-22 23:17:26.403037305 +0200
/nix/store/fvv94h4kbf6r392864v3v3ibap7ig4mk-diagnostics-sandbox.lock
  File: /nix/store/fvv94h4kbf6r392864v3v3ibap7ig4mk-diagnostics-sandbox.lock
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 8,2	Inode: 2752936     Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-06-10 19:51:14.307914690 +0200
Modify: 2022-06-10 19:51:14.307914690 +0200
Change: 2022-06-10 19:51:14.307914690 +0200
 Birth: 2022-06-10 19:51:14.307914690 +0200
/nix/store/gxyirv79gald2gvkn09mm885qif0i72c-diagnostics-sandbox.lock
  File: /nix/store/gxyirv79gald2gvkn09mm885qif0i72c-diagnostics-sandbox.lock
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 8,2	Inode: 2752938     Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-06-10 19:51:15.074918118 +0200
Modify: 2022-06-10 19:51:15.074918118 +0200
Change: 2022-06-10 19:51:15.074918118 +0200
 Birth: 2022-06-10 19:51:15.074918118 +0200

Hope that might help.

[davidak@gaming:~]$ nix-shell -p nix-info --run "nix-info -m"

  • system: "x86_64-linux"
  • host os: Linux 5.15.43, NixOS, 22.05 (Quokka), 22.05.714.e5556c75ac0
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 2.8.1
  • channels(root): "home-manager-22.05.tar.gz, nixos-22.05, nixos-hardware, nixos-unstable"
  • nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Huh, this is interesting.

❯ nix store optimise
warning: skipping suspicious writable file '/nix/store/25ncbhswq8mcihl2a4l347ikxg18jcgs-gcc-10.3.0.tar.xz'

Perhaps we need a stronger mechanism to keep /nix/store read-only. Is there something to prevent rw remount?

Well, I thought I’d proven that the writable paths in my store aren’t registered in the Nix DB, but I was mistaken, and a small number of them are

I also saw those files, but omitted them since I assumed this was usual.

For me a complete list of writable files is

❯ find /nix/store -perm -600 -a -not -type l -print
/nix/store
/nix/store/.links
/nix/store/4agfyrawczlhw8y83c0klgnhskkf1j3m-diagnostics-sandbox.lock
/nix/store/0qh8fb5vzj5ypa5nll8icl58ylb3c5bc-diagnostics-sandbox.lock
/nix/store/3jvbmiyk3639gf9smj4qiw5vhm84vv4j-nixpkgs-patched-4a01ca3.lock
/nix/store/bm9xxvicsdddramw6308rhj4cmvb4x2b-nix.conf.lock
/nix/store/d73rwn7r1lhd1wiv6znirm15xw9224w6-ecm-7.0.4.lock
/nix/store/cxfklq537m7hi1pwxd4sykd8ldaihd4i-fltk-1.3.8.lock
/nix/store/hnyc3ydx6kalwadv962gwncawjk44bll-elliptic_curves-0.8.1.lock
/nix/store/xq2rjp310k21q4al7m3j71yqk6rxibqv-dtplyr_1.2.1.tar.gz.lock
/nix/store/2ls67jkkz2qcisbblk80021rm56mb78n-flintqs-1.0.lock
/nix/store/rckjmvifqgvc8p5rx1x60kjgiyc7ysnn-corrplot_0.92.tar.gz.lock
/nix/store/xa8ia27diva5q70lqgapy3fpdhywvbrc-fftw-single-3.3.10-dev.lock
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0.lock
/nix/store/2f0p3779zn8spsw5kfwrhzwlz3ab9vcj-fftw-double-3.3.10-dev.lock
/nix/store/j7hkjjmh3nvbnav86wbqsws8xs22nfdm-cowplot_1.1.1.tar.gz.lock
/nix/store/wyz7cmjlzlflll15631j8qq73qpikm26-car_3.1-0.tar.gz.lock
/nix/store/si4rnp1x2avb2j46169v97s3ka92gs7p-octave_kernel-0.34.2.tar.gz.lock
/nix/store/dl52r751d6q1s7a1pmf7w21gq3bjiysy-r-base64enc-0.1-3.lock
/nix/store/6mj9xiizf8xcjqvijin87030gpfnbxvp-r-abind-1.4-5.lock
/nix/store/pyz0kbhzyn4jdfvwnc0aphvqv0av21a4-data.table_1.14.2.tar.gz.lock
/nix/store/za4facpf6mcwyrdnnhx8sxmcdx88v0q5-r-SparseM-1.81.lock
/nix/store/rckjmvifqgvc8p5rx1x60kjgiyc7ysnn-corrplot_0.92.tar.gz
/nix/store/wyz7cmjlzlflll15631j8qq73qpikm26-car_3.1-0.tar.gz
/nix/store/xq2rjp310k21q4al7m3j71yqk6rxibqv-dtplyr_1.2.1.tar.gz
/nix/store/p52szjhbn08b4qa1qzplvxwm9fy1h67a-r-carData-3.0-5.lock
/nix/store/pyz0kbhzyn4jdfvwnc0aphvqv0av21a4-data.table_1.14.2.tar.gz
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_fiber.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_json.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_context.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_tr1f.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_c99.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_tr1l.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_iostreams.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_graph.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_locale.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_program_options.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_nowide.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_contract.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_atomic.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_c99l.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_exception.a
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_log.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_filesystem.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_tr1.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_log_setup.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_prg_exec_monitor.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_coroutine.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_date_time.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_math_c99f.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_chrono.so.1.79.0
/nix/store/nd43i22j0wqsiy24nzg2py566x6shs8q-boost-1.79.0/lib/libboost_container.so.1.79.0
/nix/store/d73rwn7r1lhd1wiv6znirm15xw9224w6-ecm-7.0.4
/nix/store/d73rwn7r1lhd1wiv6znirm15xw9224w6-ecm-7.0.4/bin
/nix/store/d73rwn7r1lhd1wiv6znirm15xw9224w6-ecm-7.0.4/bin/ecm
/nix/store/bm9xxvicsdddramw6308rhj4cmvb4x2b-nix.conf
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/GLib.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/overrides/__pycache__/__init__.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/repository/__pycache__
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/repository/__pycache__/__init__.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_signalhelper.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_error.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_propertyhelper.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/module.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/types.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_ossighelper.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/docstring.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/importer.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_constants.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/_option.cpython-310.pyc
/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1/lib/python3.10/site-packages/gi/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IClipboard.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IStatusBarService.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IPlatform.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IHardware.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/interfaces/__pycache__/IUserMonitor.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/app_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/container_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/status.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/session_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/upgrader.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/actions/__pycache__/initializer.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/user_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/hardware_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/clipboard_manager.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/services/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/arguments.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/run.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/images.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/http.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/drivers.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/run_core.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/logging.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/arch.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/props.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/mount.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/helpers/__pycache__/lxc.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/load.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/__init__.cpython-310.pyc
/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1/lib/python3.10/site-packages/tools/config/__pycache__/save.cpython-310.pyc

The boost library wasn’t there this morning and likely was due to my updating my system. Also, nix store verify --all only yields

❯ nix store verify --all
path '/nix/store/y1hybm8h1kln0hg06c42m4g1wsblc0ig-freefont-ttf-20120503' is untrusted
path '/nix/store/qbmb43cd3g4h3ijchrswf23mi40h2fxa-python3.10-pygobject-3.42.1' was modified! expected hash 'sha256:0ccmwwc29aza2m4w6mpsb5bbri4rf3gw4qn5yh9pjpz0fi1khhi7', got 'sha256:1clxi2pihybacwjdyj39dmav5f2fk7yd84pa1v0dn9jcliq79v78'
path '/nix/store/ah9gyp7rxak9ig2q829myn6172jn302f-hack-font-3.003' is untrusted
path '/nix/store/dbn507rrsmgmdxwknhb3554nmkl0kvgi-gyre-fonts-2.005' is untrusted
path '/nix/store/iag7srqg2lapd9j29z5lgfibhs3s1rb4-waydroid-1.2.1' was modified! expected hash 'sha256:09zr4g90sizz04j5bid6jwk0i1bh5b5ajs23fbcivs3qn93sgj2r', got 'sha256:1ds30fsdxanwlmg023kvrnww66hyplwp73x9mnxpzhazn4gn6zks'

Ok so I think this is due to the Gnome bug

find /nix/store -perm -600 -a -not -type l -print \
  | (xargs nix path-info 2> /dev/null) \
  | sort -u \
  | xargs stat

This stats the registered store paths that contain writable files. There are a lot of unregistered paths in there that are ultimately red herrings. On my system, I just get two packages this way:

  File: /nix/store/cxavvazn8ibcimdqg2icawj2kk182vi5-python3.9-pygobject-3.42.0
  Size: 3         	Blocks: 18         IO Block: 512    directory
Device: 0,31	Inode: 1355270     Links: 3
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-05-28 21:24:17.426384396 -0400
Modify: 1969-12-31 19:00:01.000000000 -0500
Change: 2022-05-12 20:21:53.009540249 -0400
 Birth: 2022-05-12 20:21:52.981539646 -0400
  File: /nix/store/zcijvq1nz56l9qcqdcn0kafarqpm596n-python3.9-pycairo-1.20.1
  Size: 5         	Blocks: 18         IO Block: 512    directory
Device: 0,31	Inode: 1401838     Links: 5
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-05-28 21:24:17.430384470 -0400
Modify: 1969-12-31 19:00:01.000000000 -0500
Change: 2022-05-12 20:21:58.064648850 -0400
 Birth: 2022-05-12 20:21:58.056648678 -0400

I’m noticing that they were both “Changed” on May 12th, which is exactly the day I reinstalled this system and configured it for Gnome the first time. I managed to “fix” the Gnome bug on my system by manually disabling PackageKit on June 16th. The Access time on those paths is not after that date.

So I’m thinking the fact that PackageKit remounted my /nix/store writable allowed something to mess with these paths.

3 Likes