this derivation will be built: /nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv building '/nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv' on 'ssh-ng://customer@mac02' building '/nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv' treefmt-check> treefmt v2.6.0ERRO formatter | ast-grep: failed to apply with options '[scan crates/tinc-conf/src/hostdirs.rs crates/tinc-conf/src/lib.rs crates/tinc-conf/src/name.rs crates/tinc-conf/src/parse.rs crates/tinc-conf/src/pem.rs crates/tinc-conf/src/vars.rs crates/tinc-conf/tests/roundtrip.rs crates/tinc-crypto/src/aead.rs crates/tinc-crypto/src/b64.rs crates/tinc-crypto/src/chapoly.rs crates/tinc-crypto/src/ecdh.rs crates/tinc-crypto/src/hybrid.rs crates/tinc-crypto/src/invite.rs crates/tinc-crypto/src/lib.rs crates/tinc-crypto/src/prf.rs crates/tinc-crypto/src/sign.rs crates/tinc-crypto/tests/kat.rs crates/tinc-device/src/arena.rs crates/tinc-device/src/bsd.rs crates/tinc-device/src/bsd/macos_x.rs crates/tinc-device/src/bsd/tests.rs crates/tinc-device/src/ether.rs crates/tinc-device/src/fd.rs crates/tinc-device/src/lib.rs crates/tinc-device/src/linux.rs crates/tinc-device/src/raw.rs crates/tinc-device/src/tso.rs crates/tinc-device/src/tso/tests.rs crates/tinc-device/tests/mq.rs crates/tinc-device/tests/utun_batch.rs crates/tinc-ffi/build.rs crates/tinc-ffi/src/lib.rs crates/tinc-ffi/tests/handshake.rs crates/tinc-proto/src/addr.rs crates/tinc-proto/src/lib.rs crates/tinc-proto/src/msg/edge.rs crates/tinc-proto/src/msg/key.rs crates/tinc-proto/src/msg/misc.rs crates/tinc-proto/src/msg/mod.rs crates/tinc-proto/src/msg/subnet.rs crates/tinc-proto/src/request.rs crates/tinc-proto/src/subnet.rs crates/tinc-proto/src/tok.rs crates/tinc-proto/tests/adversarial.rs crates/tinc-proto/tests/roundtrip.rs crates/tinc-sptps/src/lib.rs crates/tinc-sptps/src/state.rs crates/tinc-sptps/tests/common/mod.rs crates/tinc-sptps/tests/sptps/aead.rs crates/tinc-sptps/tests/sptps/fastpath.rs crates/tinc-sptps/tests/sptps/framing.rs crates/tinc-sptps/tests/sptps/hybrid.rs crates/tinc-sptps/tests/sptps/hybrid_confirm.rs crates/tinc-sptps/tests/sptps/main.rs crates/tinc-sptps/tests/sptps/nonce_limit.rs crates/tinc-sptps/tests/sptps/rekey.rs crates/tinc-sptps/tests/sptps/replay_window.rs crates/tinc-sptps/tests/sptps/small_order.rs crates/tinc-sptps/tests/sptps/stream_reassembly.rs crates/tinc-sptps/tests/vs_c.rs crates/tinc-tools/src/bin/sptps_keypair.rs crates/tinc-tools/src/bin/sptps_test.rs crates/tinc-tools/src/bin/tinc-auth.rs crates/tinc-tools/src/bin/tinc.rs crates/tinc-tools/src/cmd/config.rs crates/tinc-tools/src/cmd/config/tests.rs crates/tinc-tools/src/cmd/ctl_simple.rs crates/tinc-tools/src/cmd/dump.rs crates/tinc-tools/src/cmd/dump/tests.rs crates/tinc-tools/src/cmd/edit.rs crates/tinc-tools/src/cmd/exchange.rs crates/tinc-tools/src/cmd/fsck.rs crates/tinc-tools/src/cmd/fsck/conf.rs crates/tinc-tools/src/cmd/fsck/display.rs crates/tinc-tools/src/cmd/fsck/keys.rs crates/tinc-tools/src/cmd/fsck/scripts.rs crates/tinc-tools/src/cmd/fsck/tests.rs crates/tinc-tools/src/cmd/genkey.rs crates/tinc-tools/src/cmd/info.rs crates/tinc-tools/src/cmd/info/tests.rs crates/tinc-tools/src/cmd/init.rs crates/tinc-tools/src/cmd/invite.rs crates/tinc-tools/src/cmd/join.rs crates/tinc-tools/src/cmd/join/finalize.rs crates/tinc-tools/src/cmd/join/server_stub.rs crates/tinc-tools/src/cmd/join/tests.rs crates/tinc-tools/src/cmd/join/url.rs crates/tinc-tools/src/cmd/join/wire.rs crates/tinc-tools/src/cmd/mod.rs crates/tinc-tools/src/cmd/network.rs crates/tinc-tools/src/cmd/sign.rs crates/tinc-tools/src/cmd/sign/tests.rs crates/tinc-tools/src/cmd/start.rs crates/tinc-tools/src/cmd/stream.rs crates/tinc-tools/src/cmd/top.rs crates/tinc-tools/src/cmd/top/tests.rs crates/tinc-tools/src/ctl.rs crates/tinc-tools/src/ctl/rows.rs crates/tinc-tools/src/ctl/tests.rs crates/tinc-tools/src/idp.rs crates/tinc-tools/src/idp/tests.rs crates/tinc-tools/src/keypair.rs crates/tinc-tools/src/lib.rs crates/tinc-tools/src/names.rs crates/tinc-tools/src/testutil.rs crates/tinc-tools/src/tui.rs crates/tinc-tools/tests/self_roundtrip.rs crates/tinc-tools/tests/tinc_cli/argv.rs crates/tinc-tools/tests/tinc_cli/auth_http.rs crates/tinc-tools/tests/tinc_cli/config.rs crates/tinc-tools/tests/tinc_cli/ctl.rs crates/tinc-tools/tests/tinc_cli/dump.rs crates/tinc-tools/tests/tinc_cli/edit.rs crates/tinc-tools/tests/tinc_cli/export_import.rs crates/tinc-tools/tests/tinc_cli/fsck.rs crates/tinc-tools/tests/tinc_cli/genkey.rs crates/tinc-tools/tests/tinc_cli/idp_http.rs crates/tinc-tools/tests/tinc_cli/info.rs crates/tinc-tools/tests/tinc_cli/init.rs crates/tinc-tools/tests/tinc_cli/invite_join.rs crates/tinc-tools/tests/tinc_cli/main.rs crates/tinc-tools/tests/tinc_cli/sign_verify.rs crates/tinc-tools/tests/tinc_cli/top_log_pcap.rs crates/tincd/benches/throughput.rs crates/tincd/benches/throughput_macos.rs crates/tincd/build.rs crates/tincd/src/addr.rs crates/tincd/src/addrcache.rs crates/tincd/src/autoconnect.rs crates/tincd/src/bgresolve.rs crates/tincd/src/bin/tincd/args.rs crates/tincd/src/bin/tincd/main.rs crates/tincd/src/bin/tincd/procsetup.rs crates/tincd/src/broadcast.rs crates/tincd/src/compress.rs crates/tincd/src/conn.rs crates/tincd/src/conn/tests.rs crates/tincd/src/control.rs crates/tincd/src/daemon.rs crates/tincd/src/daemon/autoconnect.rs crates/tincd/src/daemon/connect.rs crates/tincd/src/daemon/dp.rs crates/tincd/src/daemon/dump.rs crates/tincd/src/daemon/endpoint.rs crates/tincd/src/daemon/gossip/edges.rs crates/tincd/src/daemon/gossip/graph.rs crates/tincd/src/daemon/gossip/keys.rs crates/tincd/src/daemon/gossip/mod.rs crates/tincd/src/daemon/gossip/send.rs crates/tincd/src/daemon/gossip/subnets.rs crates/tincd/src/daemon/gossip/weight.rs crates/tincd/src/daemon/intervals.rs crates/tincd/src/daemon/metaconn.rs crates/tincd/src/daemon/net.rs crates/tincd/src/daemon/net/device.rs crates/tincd/src/daemon/net/helpers.rs crates/tincd/src/daemon/net/icmp.rs crates/tincd/src/daemon/net/macos_rx.rs crates/tincd/src/daemon/net/route.rs crates/tincd/src/daemon/net/rx.rs crates/tincd/src/daemon/net/sptps.rs crates/tincd/src/daemon/periodic.rs crates/tincd/src/daemon/punch.rs crates/tincd/src/daemon/purge.rs crates/tincd/src/daemon/settings.rs crates/tincd/src/daemon/setup.rs crates/tincd/src/daemon/tx_control.rs crates/tincd/src/daemon/udp_info.rs crates/tincd/src/darwin_x.rs crates/tincd/src/dispatch.rs crates/tincd/src/dispatch/tests.rs crates/tincd/src/dns.rs crates/tincd/src/egress.rs crates/tincd/src/egress/linux.rs crates/tincd/src/egress/macos.rs crates/tincd/src/event/io/epoll.rs crates/tincd/src/event/io/kqueue.rs crates/tincd/src/event/io/mod.rs crates/tincd/src/event/mod.rs crates/tincd/src/event/sig.rs crates/tincd/src/event/timer.rs crates/tincd/src/fragment.rs crates/tincd/src/graph/mod.rs crates/tincd/src/icmp.rs crates/tincd/src/ids.rs crates/tincd/src/inthash.rs crates/tincd/src/invitation_serve.rs crates/tincd/src/keys.rs crates/tincd/src/lib.rs crates/tincd/src/listen.rs crates/tincd/src/listen/tarpit.rs crates/tincd/src/listen/tests.rs crates/tincd/src/local_addr.rs crates/tincd/src/log_tap.rs crates/tincd/src/mac_lease.rs crates/tincd/src/mss.rs crates/tincd/src/mss/tests.rs crates/tincd/src/neighbor.rs crates/tincd/src/node_id.rs crates/tincd/src/outgoing.rs crates/tincd/src/packet.rs crates/tincd/src/platform.rs crates/tincd/src/pmtu.rs crates/tincd/src/portmap/igd.rs crates/tincd/src/portmap/mod.rs crates/tincd/src/portmap/pcp.rs crates/tincd/src/punch.rs crates/tincd/src/reload.rs crates/tincd/src/route_decide.rs crates/tincd/src/route_mac.rs crates/tincd/src/sandbox.rs crates/tincd/src/script.rs crates/tincd/src/scriptworker.rs crates/tincd/src/sd_notify.rs crates/tincd/src/seen.rs crates/tincd/src/shard/bpf/attach.rs crates/tincd/src/shard/bpf/cbpf.rs crates/tincd/src/shard/bpf/mod.rs crates/tincd/src/shard/mod.rs crates/tincd/src/shard/probe.rs crates/tincd/src/shard/punt.rs crates/tincd/src/shard/runtime.rs crates/tincd/src/shard/rx.rs crates/tincd/src/shard/seal.rs crates/tincd/src/shard/snapshot.rs crates/tincd/src/shard/worker.rs crates/tincd/src/socks.rs crates/tincd/src/subnet_tree.rs crates/tincd/src/subnet_tree/tests.rs crates/tincd/src/tcp_tunnel.rs crates/tincd/src/testutil.rs crates/tincd/src/tunnel.rs crates/tincd/src/udp_info.rs crates/tincd/tests/addrcache.rs crates/tincd/tests/busyloop.rs crates/tincd/tests/common/bench.rs crates/tincd/tests/common/mod.rs crates/tincd/tests/common/node.rs crates/tincd/tests/gossip_sim.rs crates/tincd/tests/graph_kat.rs crates/tincd/tests/macos_smoke.rs crates/tincd/tests/netns/autoconnect_shortcut.rs crates/tincd/tests/netns/bpf_steer.rs crates/tincd/tests/netns/chaos.rs crates/tincd/tests/netns/crossimpl.rs crates/tincd/tests/netns/main.rs crates/tincd/tests/netns/nat_hub.rs crates/tincd/tests/netns/ping.rs crates/tincd/tests/netns/portmap.rs crates/tincd/tests/netns/rig.rs crates/tincd/tests/netns/sandbox.rs crates/tincd/tests/netns/stress.rs crates/tincd/tests/netns/tcp_fallback.rs crates/tincd/tests/netns/tunnel_addr.rs crates/tincd/tests/netns/udp_asymmetric.rs crates/tincd/tests/retry.rs crates/tincd/tests/scripts.rs crates/tincd/tests/security.rs crates/tincd/tests/socket_activation.rs crates/tincd/tests/stop/cli_flags.rs crates/tincd/tests/stop/control.rs crates/tincd/tests/stop/lifecycle.rs crates/tincd/tests/stop/main.rs crates/tincd/tests/stop/peer.rs crates/tincd/tests/two_daemons/basic.rs crates/tincd/tests/two_daemons/data_path.rs crates/tincd/tests/two_daemons/dns.rs crates/tincd/tests/two_daemons/fd_tunnel.rs crates/tincd/tests/two_daemons/main.rs crates/tincd/tests/two_daemons/proxy.rs crates/tincd/tests/two_daemons/purge.rs crates/tincd/tests/two_daemons/reload.rs crates/tincd/tests/two_daemons/reqkey_race.rs crates/tincd/tests/two_daemons/script_latency.rs crates/tincd/tests/two_daemons/three_node.rs]': exit status 1 treefmt-check> treefmt-check> error[no-comment-essays]: comment block of 8+ lines; condense it to the WHY treefmt-check> ┌─ crates/tincd/src/daemon.rs:555:5 treefmt-check> │ treefmt-check> 548 │ ╭ /// Listener addresses proven to belong to a node: the dial target treefmt-check> 549 │ │ ╭ /// of every ACK'd outgoing conn, and the address behind every treefmt-check> │ ╰────────────' treefmt-check> 550 │ │ ╭ /// `ID` that named a different node than we dialled. The edge-walk treefmt-check> │ ╰──────────' treefmt-check> 551 │ │ ╭ /// in `setup_outgoing_connection` drops a candidate for `bob` treefmt-check> │ ╰────────' treefmt-check> 552 │ │ ╭ /// that this table attributes to someone else: a leaf behind a treefmt-check> │ ╰──────' treefmt-check> 553 │ │ ╭ /// hub's NAT is gossiped at the hub's public address, and dialling treefmt-check> │ ╰────' treefmt-check> 554 │ │ ╭ /// it reaches the hub (#100). In-memory only; a later ACK treefmt-check> │ ╰──' treefmt-check> 555 │ ╭ │ /// overwrites, so a reassigned address heals itself. treefmt-check> │ │ ╰' treefmt-check> 556 │ │ pub(crate) addr_owners: HashMap, treefmt-check> │ │ --------------------------------------------------- treefmt-check> │ ╰──────────────^ treefmt-check> treefmt-check> error[no-comment-essays]: comment block of 8+ lines; condense it to the WHY treefmt-check> ┌─ crates/tincd/src/daemon/connect.rs:513:9 treefmt-check> │ treefmt-check> 506 │ // treefmt-check> │ -- treefmt-check> 507 │ // "Seen bob at" is a NAT-side view: a leaf behind hub H's treefmt-check> │ ---------------------------------------------------------- treefmt-check> 508 │ // masquerade is reported by every other neighbour at H's treefmt-check> │ --------------------------------------------------------- treefmt-check> 509 │ // public IP with bob's UDP port, i.e. exactly H's listener treefmt-check> │ ----------------------------------------------------------- treefmt-check> 510 │ // (#100). `addr_owners` knows which addresses answered as treefmt-check> │ ---------------------------------------------------------- treefmt-check> 511 │ // whom; anything attributed to a node other than bob is treefmt-check> │ -------------------------------------------------------- treefmt-check> 512 │ // dropped. Tunnel addresses are gated in `edge_wire_addr` treefmt-check> │ ---------------------------------------------------------- treefmt-check> 513 │ // (and again at dial time, for the other tiers). treefmt-check> │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> 514 │ ╭ let known: Vec = nid treefmt-check> · │ treefmt-check> 528 │ │ .collect(); treefmt-check> │ ╰───────────────────────' treefmt-check> treefmt-check> error[no-comment-essays]: comment block of 8+ lines; condense it to the WHY treefmt-check> ┌─ crates/tincd/src/daemon/net/helpers.rs:33:1 treefmt-check> │ treefmt-check> 26 │ ╭ /// treefmt-check> 27 │ │ ╭ /// Gates on `cached.is_none() OR addr changed` — not just addr-change — treefmt-check> │ ╰────────────' treefmt-check> 28 │ │ ╭ /// because gossip seeds `udp_addr` while clearing `udp_addr_cached`. treefmt-check> │ ╰──────────' treefmt-check> 29 │ │ ╭ /// treefmt-check> │ ╰────────' treefmt-check> 30 │ │ ╭ /// A source inside the mesh's own Subnets is a datagram that came treefmt-check> │ ╰──────' treefmt-check> 31 │ │ ╭ /// through the tunnel (see `daemon::endpoint`); it is authenticated treefmt-check> │ ╰────' treefmt-check> 32 │ │ ╭ /// and processed, but never becomes the peer's endpoint. Checked treefmt-check> │ ╰──' treefmt-check> 33 │ ╭ │ /// after the steady-state early return so the per-packet cost is nil. treefmt-check> │ │ ╰' treefmt-check> 34 │ │ ╭ pub(super) fn confirm_udp_addr( treefmt-check> │ ╰────────────────^ treefmt-check> · │ treefmt-check> 65 │ │ } treefmt-check> │ ╰───────────────' treefmt-check> treefmt-check> error[no-comment-essays]: comment block of 8+ lines; condense it to the WHY treefmt-check> ┌─ crates/tincd/src/daemon/net/helpers.rs:75:1 treefmt-check> │ treefmt-check> 68 │ ╭ /// cannot be sent to from here" — routing (`ENETUNREACH`, treefmt-check> 69 │ │ ╭ /// `EHOSTUNREACH`, `ENETDOWN`), family/source (`EAFNOSUPPORT`, treefmt-check> │ ╰────────────' treefmt-check> 70 │ │ ╭ /// `EADDRNOTAVAIL`) and policy (`EPERM`: firewall; `EIO`: Android treefmt-check> │ ╰──────────' treefmt-check> 71 │ │ ╭ /// refusing a VPN-protected socket a destination that routes back treefmt-check> │ ╰────────' treefmt-check> 72 │ │ ╭ /// into the VPN). The reaction is the same for all: forget the treefmt-check> │ ╰──────' treefmt-check> 73 │ │ ╭ /// address so the next send goes via the cold path or the TCP relay. treefmt-check> │ ╰────' treefmt-check> 74 │ │ ╭ /// `EMSGSIZE` and `EAGAIN` are handled elsewhere and are not "this treefmt-check> │ ╰──' treefmt-check> 75 │ ╭ │ /// address is wrong". treefmt-check> │ │ ╰' treefmt-check> 76 │ │ ╭ pub(super) fn is_udp_unreachable_errno(e: &io::Error) -> bool { treefmt-check> │ ╰────────────────^ treefmt-check> · │ treefmt-check> 90 │ │ } treefmt-check> │ ╰───────────────' treefmt-check> treefmt-check> Error: 4 error(s) found in code. treefmt-check> Help: Scan succeeded and found error level diagnostics in the codebase. treefmt-check> treefmt-check> treefmt-check> traversed 731 files treefmt-check> emitted 302 files for processing treefmt-check> formatted 27 files (0 changed) in 1.711s treefmt-check> Error: failed to finalise formatting: formatting failures detected error: build of '/nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv' on 'ssh-ng://customer@mac02' failed: Cannot build '/nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/d4jcfi0kd5lyx4lnhsr3jbn8i49wysaf-treefmt-check Last 25 log lines: > │ ╰──────────' > 71 │ │ ╭ /// refusing a VPN-protected socket a destination that routes back > │ ╰────────' > 72 │ │ ╭ /// into the VPN). The reaction is the same for all: forget the > │ ╰──────' > 73 │ │ ╭ /// address so the next send goes via the cold path or the TCP relay. > │ ╰────' > 74 │ │ ╭ /// `EMSGSIZE` and `EAGAIN` are handled elsewhere and are not "this > │ ╰──' > 75 │ ╭ │ /// address is wrong". > │ │ ╰' > 76 │ │ ╭ pub(super) fn is_udp_unreachable_errno(e: &io::Error) -> bool { > │ ╰────────────────^ > · │ > 90 │ │ } > │ ╰───────────────' > > Error: 4 error(s) found in code. > Help: Scan succeeded and found error level diagnostics in the codebase. > > > traversed 731 files > emitted 302 files for processing > formatted 27 files (0 changed) in 1.711s > Error: failed to finalise formatting: formatting failures detected For full logs, run: nix log /nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv error: Cannot build '/nix/store/9yxm4jw5jhkwq6wy4hj6vf7v5jbx776m-treefmt-check.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/d4jcfi0kd5lyx4lnhsr3jbn8i49wysaf-treefmt-check