tailscale / tailscale/tailscale

Kernel regression around `seek` on `/proc/net/tcp` causes test failures and likely more

Open
#16,966 15 comments 24 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
36.5k
Forks
3.2k
Avg merge
1d 23h
Merged PRs (30d)
132

Description

# Defect resolution

This defect has been resolved by the stable kernel versions released on **September 9th, 2025**. That's the following:

1. [6.16.6](https://lwn.net/Articles/1037360/)
2. [6.12.46](https://lwn.net/Articles/1037361/)
3. [6.6.105](https://lwn.net/Articles/1037362/)

If your kernel version is not among them, you may still encounter the issues described below.

# Defect details
Recent stable LTS linux kernels 6.6.102 and 6.12.42 have a regression regarding network interface monitoring.

https://lore.kernel.org/all/20250815195616.64497967@chagall.paradoxon.rec/

> I have bisected the issue to the commits https://github.com/torvalds/linux/commit/33c778ea0bd0fa62ff590497e72562ff90f82b13 in 6.6.102 and https://github.com/torvalds/linux/commit/fc1072d934f687e1221d685cf1a49a5068318f34 in 6.12.42 which are both the same change code-wise (upstream commit https://github.com/torvalds/linux/commit/ff7ec8dc1b646296f8d94c39339e8d3833d16c05).

Fixes are coming in https://lore.kernel.org/all/20250821105806.1453833-1-wangzijie1@honor.com/ (unsure of merge status at time of issue filing.)

I detected this personally trying to build Tailscale on kernel 6.12.43 while running the following tests:

```
--- FAIL: TestGetList (0.00s)
portlist_test.go:19: seek /proc/net/tcp: illegal seek
--- FAIL: TestIgnoreLocallyBoundPorts (0.00s)
portlist_test.go:40: seek /proc/net/tcp: illegal seek
--- FAIL: TestPoller (0.00s)
portlist_test.go:61: seek /proc/net/tcp: illegal seek
```

The NixOS build machine [also detected these issues](https://cache.nixos.org/log/18r5bq5bx8n79mgpv69mnfjq8w7z05b0-tailscale-1.82.5.drv) trying to build Tailscale.

Contributor guide

Open the contributing guide

Research direction

Start with the failures in portlist_test.go and the /proc/net/tcp seek path, then compare behavior on the affected Linux kernel versions with the listed stable releases. Done means determining whether Tailscale needs a code or test change, or whether the kernel fixes fully resolve the reported failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
networking, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.