!QCCCSJHEsTIfozrZxz:nixos.org

Nix + Go

206 Members
Go packaging for and with Nixpkgs. | Be excellent to each other.48 Servers

Load older messages


SenderMessageTime
27 Jun 2025
@nazarewk:matrix.orgkdn *

K900: back to the topic of NetBird (or any golang program whatsoveer) building extremely slowly in my setup, I came up with this bpftrace syscalls trace for a netbird build of 10 minutes.
They all are seem to be mostly related to runtime.netpoll, which might explain some issue while running in offline environment of Nix builds. I might be wrong though.
A few of those are in ranges of 120/180 seconds suggesting some form of timeout

{
  "event": "syscall_exit",
  "timestamp": "2025-06-27T15:38:31.089",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 180008,
  "ret": 1,
  "stack": null
}
{
  "event": "slow_syscall",
  "timestamp": "2025-06-27T15:38:31.089",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 180008,
  "stack": [
    "40d9ee internal/runtime/syscall.Syscall6+14 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "43a7d2 runtime.netpoll+210 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4476e5 runtime.findRunnable+2245 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "448cb1 runtime.schedule+177 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "449165 runtime.park_m+645 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47b88e runtime.mcall+78 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "475b6e runtime.gopark+206 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "439dd7 runtime.netpollblock+247 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "474d85 internal/poll.runtime_pollWait+133 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4f5d67 internal/poll.(*pollDesc).wait+39 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4f705a internal/poll.(*FD).Read+634 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "50316f os.(*File).Read+79 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "5379b8 bytes.(*Buffer).ReadFrom+152 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4ed351 io.copyBuffer+337 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "503aaf os.genericWriteTo+79 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "5039dc os.(*File).WriteTo+156 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4ed29d io.copyBuffer+157 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "53d6b4 os/exec.(*Cmd).writerDescriptor.func1+52 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "53e2cc os/exec.(*Cmd).Start.func2+44 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "53e264 os/exec.(*Cmd).Start.gowrap1+36 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47d741 runtime.goexit.abi0+1 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)"
  ]
}
{
  "event": "syscall_exit",
  "timestamp": "2025-06-27T15:40:32.103",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 120004,
  "ret": 1,
  "stack": null
}
{
  "event": "slow_syscall",
  "timestamp": "2025-06-27T15:40:32.103",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 120004,
  "stack": [
    "40d9ee internal/runtime/syscall.Syscall6+14 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "43a7d2 runtime.netpoll+210 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4476e5 runtime.findRunnable+2245 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "448cb1 runtime.schedule+177 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "449165 runtime.park_m+645 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47b88e runtime.mcall+78 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "0 0 ([unknown])"
  ]
}
{
  "event": "syscall_exit",
  "timestamp": "2025-06-27T15:46:11.110",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 339003,
  "ret": 1,
  "stack": null
}
{
  "event": "slow_syscall",
  "timestamp": "2025-06-27T15:46:11.110",
  "pid": 315688,
  "syscall": "epoll_pwait",
  "syscall_id": 281,
  "duration_ms": 339003,
  "stack": [
    "40d9ee internal/runtime/syscall.Syscall6+14 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "43a7d2 runtime.netpoll+210 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4476e5 runtime.findRunnable+2245 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "448cb1 runtime.schedule+177 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "449165 runtime.park_m+645 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47b88e runtime.mcall+78 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "475b6e runtime.gopark+206 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "429a49 runtime.(*scavengerState).park+73 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "429fd9 runtime.bgscavenge+89 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "420405 runtime.gcenable.gowrap2+37 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47d741 runtime.goexit.abi0+1 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)"
  ]
}
{
  "event": "syscall_exit",
  "timestamp": "2025-06-27T15:46:11.111",
  "pid": 315688,
  "syscall": "waitid",
  "syscall_id": 247,
  "duration_ms": 639030,
  "ret": 0,
  "stack": null
}
{
  "event": "slow_syscall",
  "timestamp": "2025-06-27T15:46:11.111",
  "pid": 315688,
  "syscall": "waitid",
  "syscall_id": 247,
  "duration_ms": 639030,
  "stack": [
    "40d9ee internal/runtime/syscall.Syscall6+14 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "49bbca syscall.Syscall6+106 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "4f4859 internal/syscall/unix.Waitid+57 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "5079e9 os.(*Process).pidfdWait+521 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "502805 os.(*Process).wait+37 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "53ea45 os/exec.(*Cmd).Wait+69 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "53d72d os/exec.(*Cmd).Run+45 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "95e64a cmd/go/internal/work.(*Shell).runOut+1642 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "95de50 cmd/go/internal/work.(*Shell).run+112 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "94effb cmd/go/internal/work.gcToolchain.ld+4443 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "960a4f cmd/go/internal/work.(*gcToolchain).ld+79 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "9377b6 cmd/go/internal/work.(*Builder).link+918 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "919dcd cmd/go/internal/work.ActorFunc.Act+45 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "92b584 cmd/go/internal/work.(*Builder).Do.func3+2244 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "92aaee cmd/go/internal/work.(*Builder).Do.func4+174 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)",
    "47d741 runtime.goexit.abi0+1 (/nix/store/mdn9hnvf0qmxywbrpbywmxww2adxdn5v-go-1.24.4/share/go/bin/go)"
  ]
}

14:29:14
@k900:0upti.meK900 epoll is just waiting for something 14:29:49
@k900:0upti.meK900 Maybe a network connection 14:29:55
@nazarewk:matrix.orgkdnI've no clue why this only happens on my NixOS configs base and only on x86 (arm works fine)14:29:58
@nazarewk:matrix.orgkdnyeah, I'm wondering why is it waiting for a network connection at all and not get denied immediately14:30:29
@nazarewk:matrix.orgkdn those 120/180s timeouts all have runtime.netpoll+210 reference in the stack, not sure how to identify a specific function exactly in this case 14:31:09
@nazarewk:matrix.orgkdncould there be something in Nix configuratio that could affect this behavior?14:37:15
@nazarewk:matrix.orgkdn* could there be something in Nix configuration that could affect this behavior?14:37:21
@nazarewk:matrix.orgkdnmaybe firewall rules (no idea if those apply at all in case of Nix builders)?14:37:36
@nazarewk:matrix.orgkdnFYI: I have asked about it on Gophers, maybe somebody will help there https://gophers.slack.com/archives/C0VP8EF3R/p175103953939931916:06:42
@nazarewk:matrix.orgkdn funny enough, my customized install-iso also builds Netbird pretty quickly (under a minute) 17:35:21
@nazarewk:matrix.orgkdn a Hetzner machine with quite similar config builds slowly already 17:41:08
@k900:0upti.meK900Well feels like you have a starting point to bisect from17:41:50
@nazarewk:matrix.orgkdn actually looking at btop seems like the hetzner build is CPU bould 17:42:08
@nazarewk:matrix.orgkdncould it be something with ZFS slowing things down?17:43:14
@nazarewk:matrix.orgkdn could nix builder have some problem with ~500 bind mounts due to persistence setup? 17:57:38
@nazarewk:matrix.orgkdn nevermind, I don't have persistence on my laptop at all 17:57:48
@nazarewk:matrix.orgkdn * nevermind, I don't have persistence on my laptop at all, I have it on my rpi4 that builds the stuff quickly enough too 17:58:34
1 Jul 2025
@opna2608:matrix.orgPuna joined the room.09:08:37
@opna2608:matrix.orgPuna don't really know much about Go and its different compilers, so i figured I'd ask here: how many things would explode if i replaced go with gccgo in Nixpkgs? is Go stuff generally compatible with the latter, maybe only with missing Nix glue here and there for it to be a direct go = gccgo job?
i have a platform that go doesn't really support anymore since 1.9 (or at least not in a manner where affordable hardware can use it), and upstream has no interest in fixing that support, so I'm planning to mark go as unsupported on it and am looking for alternatives. this replacement would only affect that particular platform.
09:21:44
@k900:0upti.meK900gccgo is not practically usable AFAIK09:22:18
@opna2608:matrix.orgPunain that the project itself is borked / not up-to-spec and incompatible with out-in-the-wild Go code, or is our packaging of it bad?09:23:59
@k900:0upti.meK900I think upstream09:24:31
@k900:0upti.meK900
The GCC 12 and 13 releases include a complete implementation of the Go 1.18 standard library. However, GCC does not yet include support for generics.
09:25:14
@k900:0upti.meK900https://go.dev/doc/install/gccgo09:25:17
@k900:0upti.meK900So yeah it's stuck on an ancient Go version09:25:21
@opna2608:matrix.orgPuna hmm… and i assume usage of generics is common enough for that to matter?
any important packages i'd miss out on by just marking go unsupported and accepting that Go is just a no-go (lol)?
09:30:42
@k900:0upti.meK900Honestly, lots09:32:48
@k900:0upti.meK900What platform is that even?09:32:51
@opna2608:matrix.orgPunabig-endian ppc6409:33:00

Show newer messages


Back to Room ListRoom Version: 9