!RROtHmAaQIkiJzJZZE:nixos.org

NixOS Infrastructure

483 Members
Next Infra call: 2024-07-11, 18:00 CEST (UTC+2) | Infra operational issues backlog: https://github.com/orgs/NixOS/projects/52 | See #infra-alerts:nixos.org for real time alerts from Prometheus.151 Servers

Load older messages


SenderMessageTime
22 Jun 2026
@vcunat:matrix.orgVladimír ČunátThanks for working on these issues. It's not nice to block channels for too long.05:58:21
@joerg:thalheim.ioMic92Is fastly doing negative caching?05:58:45
@vcunat:matrix.orgVladimír ČunátEven if it isn't, nix does it locally.06:03:37
@joerg:thalheim.ioMic92I think I disabled that already06:04:02
@vcunat:matrix.orgVladimír Čunát(I'm not sure about Fastly, but I think that short negative cache is desirable there as well.)06:04:03
@joerg:thalheim.ioMic92Yeah. Worst comes to worse and we have to add the s3 bucket as a secondary substituter06:04:41
@vcunat:matrix.orgVladimír Čunáthttp headers should releval if it's cached?06:05:04
@joerg:thalheim.ioMic92Checking now06:06:14
@vcunat:matrix.orgVladimír Čunát
$ curl -s https://cache.nixos.org/gypp7g48p2fcpjx952i84dhw4ak95np1.narinfo --show-headers
HTTP/2 404 
server: Varnish
retry-after: 0
content-type: text/plain
accept-ranges: bytes
date: Mon, 22 Jun 2026 06:06:44 GMT
via: 1.1 varnish
x-served-by: cache-vie6368-VIE
x-cache: MISS
x-cache-hits: 0
access-control-allow-origin: *
content-length: 3

404⏎                                                                                                          
06:07:03
@vcunat:matrix.orgVladimír ČunátDoesn't look cached to me.06:07:07
@vcunat:matrix.orgVladimír Čunát(tried a few times)06:07:17
@joerg:thalheim.ioMic92Or it is06:07:58
@vcunat:matrix.orgVladimír Čunát I even managed to get a repeated x-served-by 06:08:20
@vcunat:matrix.orgVladimír Čunát Now I'm force-updating the nixos-26.05 channel to e8210c649915 / https://hydra.nixos.org/build/331669102 06:51:28
@arianvp:matrix.orgArianNope we don't do negative caching. That was very much on purpose iirc? 06:55:10
@vcunat:matrix.orgVladimír ČunátIt's certainly not a problem not to cache those, as long as it doesn't cost us much.06:56:59
@vcunat:matrix.orgVladimír Čunát* It's certainly fine not to cache those, as long as it doesn't cost us much.06:57:11
@vcunat:matrix.orgVladimír Čunát

Also this one, it was 7 days old commit

8c14fa3ccacd..ea68a74f45ad  nixpkgs-26.05-darwin
08:25:24
@joerg:thalheim.ioMic92https://github.com/NixOS/infra/pull/1097 with this we got now release-26.05-small back to green: https://hydra.nixos.org/eval/182648609:54:01
@arianvp:matrix.orgArian
In reply to @vcunat:matrix.org
It's certainly fine not to cache those, as long as it doesn't cost us much.

We do get charged for 404s and 200s just the same.

Idk what the ratio between uncached 404s and 200s is. We can look this up in fastly.

Caching 404s definitely saves money. But idk how much.

But we currently don't cache them exactly so that we don't have read after write inconsistencies.

10:01:42
@vcunat:matrix.orgVladimír ČunátI don't think the old queue-runner would mind.10:02:32
@vcunat:matrix.orgVladimír Čunát(it wasn't pulling from Fastly IIRC)10:02:46
@vcunat:matrix.orgVladimír ČunátI don't expect it's a major concern right now anyway.10:03:24
@vcunat:matrix.orgVladimír ČunátMaybe a future TODO to investigate.10:03:29
@hexa:lossy.networkhexaelated-minsky is fairly idle and constantly shows capacity: no11:15:39
@hexa:lossy.networkhexaRedacted or Malformed Event11:15:44
@hexa:lossy.networkhexaRedacted or Malformed Event11:15:54
@hexa:lossy.networkhexa I checked store dir and build dir is available (>20%) and pressure is normal 11:16:28
@hexa:lossy.networkhexathe only remaining check I can't evaluate in my head is11:16:47
@hexa:lossy.networkhexa
        let now = jiff::Timestamp::now().as_second();
        let jobs_in_last_30s_start = self.stats.jobs_in_last_30s_start.load(Ordering::Relaxed);
        let jobs_in_last_30s_count = self.stats.jobs_in_last_30s_count.load(Ordering::Relaxed);

        // ensure that we dont submit more than 4 jobs in 30s
        if now <= (jobs_in_last_30s_start + 30)
            && jobs_in_last_30s_count >= 4
            // ensure that we havent already finished some of them, because then its fine again
            && self.stats.get_current_jobs() >= 4
        {
            return false;
        } else if now > (jobs_in_last_30s_start + 30) {
            // reset count
            self.stats
                .jobs_in_last_30s_start
                .store(0, Ordering::Relaxed);
            self.stats
                .jobs_in_last_30s_count
                .store(0, Ordering::Relaxed);
        }

11:16:51

Show newer messages


Back to Room ListRoom Version: 6