| 1 Feb 2026 |
BMG | Arian: Mic92 I've added a new analysis https://huggingface.co/datasets/brianmcgee/nix-cache-dataset/commit/d9f842b684647eba6635c3f63239fe336ed41f0b which lists the store paths that will be affected by the proposed nixos images we want to remove. | 14:27:32 |
BMG | Loading deletion set...
Loaded 150,581 deletion hashes in 0.2s
Total: 297,634,067 rows in 10 row groups
Processing with 10 workers (batch size 50,000)...
Streaming results to datasets/narinfos-nixos-images-dangling-refs-2026-01-06T01-13Z.parquet
Completed in 750.7s (12.5 min)
Rate: 396,499 rows/sec
==================================================
SUMMARY
==================================================
Entries with dangling refs: 105,944
Sample pnames with dangling refs (50 of 105,944):
nixos-test-driver-boot-bios-usb: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-16.09.1943.25f4906da6: 3 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uboot-extlinux: 1 dangling ref(s)
nixos-test-driver-boot-bios-usb: 1 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-19.03.173172.a607a931f6f: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-test-driver-ec2-config-userdata: 1 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-19.03beta172077.34e0c75d7f9: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-ec2-nixops-userdata: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
nixos-test-driver-boot-bios-usb: 1 dangling ref(s)
nixos-test-driver-boot-bios-usb: 1 dangling ref(s)
nixos-17.09.1966.0f9ab62873: 1 dangling ref(s)
nixos-19.09.1968.845b911ac21: 5 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-test-driver-boot-uefi-usb: 1 dangling ref(s)
nixos-test-driver-boot-uefi-cdrom: 1 dangling ref(s)
| 14:28:09 |
BMG | ~106K affected paths, with ~95K of those of the form nixos-test-driver-%:
D select count(*) FROM 'datasets/narinfos-nixos-images-dangling-refs-2026-01-06T01-13Z.parquet';
┌──────────────┐
│ count_star() │
│ int64 │
├──────────────┤
│ 105944 │
└──────────────┘
D select count(*) FROM 'datasets/narinfos-nixos-images-dangling-refs-2026-01-06T01-13Z.parquet' where pname like 'nixos-test-driver-%';
┌──────────────┐
│ count_star() │
│ int64 │
├──────────────┤
│ 95032 │
└──────────────┘
| 14:34:47 |
Mic92 | Looks nixos tests to me. Should be safe to drop | 14:34:56 |
BMG | The other 10k look to be nixos releases:
D select count(*) FROM 'datasets/narinfos-nixos-images-dangling-refs-2026-01-06T01-13Z.parquet' where pname like 'nixos-%.%';
┌──────────────┐
│ count_star() │
│ int64 │
├──────────────┤
│ 10912 │
└──────────────┘
| 14:36:17 |
BMG | Of the form nixos-19.03.172539.72c2c58356e | 14:36:28 |
Mic92 | I think that might be actually nixos toplevel closures from tests | 14:37:47 |
Mic92 | Is it possible to just include the references as well in the deletion tests? | 14:38:46 |
Mic92 | * Is it possible to just include the references as well in the deletion set | 14:38:58 |
BMG | The archeologist account I have for AWS, that is definitely read -only ? I want to test the --dry-run against the bucket but I want to be really sure it can't affect anything yet | 14:39:14 |
BMG | I should be able to | 14:39:35 |
Mic92 | I can check | 14:39:36 |
Mic92 | @brian:bmcgee.ie: only list/get | 14:40:30 |
BMG | ok cool | 14:40:38 |
BMG | Mic92: fixed a bug and improved the progress logging:
{
"dry_run": true,
"targets": {
"nar_infos": 150581
},
"removed": {
"nars": 150581,
"nar_infos": 150581,
"errors": 0
},
"missing_in_s3": {
"nars": 0,
"nar_infos": 0
}
}
| 15:46:09 |
BMG | I'm going to capture those extra references in a separate file that you can just run through the simple gc same as the nixos images one. | 15:46:34 |
Mic92 | Alright | 16:07:48 |
BMG | Mic92: I pushed an updated version of the dangling refs parquet file which you should be able to run through simple gc to remove them just like with nixos images.
I also locally tweaked the dangling refs script to load those first order dangling refs into the deletion set and the result was no more dangling refs found:
==================================================
SUMMARY
==================================================
Entries with dangling refs: 0
No dangling references found
| 16:55:49 |
BMG | So removing the nixos images and the extra dangling refs results in store paths with missing references due to the removals | 16:56:26 |
BMG | * So removing the nixos images and the extra dangling refs results in no store paths with missing references due to the removals | 16:56:35 |
BMG | So to be clear, narinfos-nixos-images-2026-01-06T01-13Z.parquet is the proposed deletion, narinfos-nixos-images-dangling-refs-2026-01-06T01-13Z.parquet is anything that referred to the entries in the first file. | 16:57:45 |
BMG | I'm gonna test with a dry run to be sure there's no issues with the dangling refs format | 16:59:07 |