Skip to content

Commit 88cc0ad

Browse files
committed
util/linuxfw: remove yet-unused code to fix linux/arm64 crash
The util/linuxfw/iptables.go had a bunch of code that wasn't yet used (in prep for future work) but because of its imports, ended up initializing code deep within gvisor that panicked on init on arm64 systems not using 4KB pages. This deletes the unused code to delete the imports and remove the panic. We can then cherry-pick this back to the branch and restore it later in a different way. A new test makes sure we don't regress in the future by depending on the panicking package in question. Fixes tailscale#8658 Signed-off-by: Brad Fitzpatrick <[email protected]>
1 parent 7560435 commit 88cc0ad

File tree

6 files changed

+11
-863
lines changed

6 files changed

+11
-863
lines changed

cmd/derper/depaware.txt

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,6 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
7777
google.golang.org/protobuf/runtime/protoimpl from github.com/golang/protobuf/proto+
7878
google.golang.org/protobuf/types/descriptorpb from google.golang.org/protobuf/reflect/protodesc
7979
google.golang.org/protobuf/types/known/timestamppb from github.com/prometheus/client_golang/prometheus+
80-
L gvisor.dev/gvisor/pkg/abi from gvisor.dev/gvisor/pkg/abi/linux
81-
L 💣 gvisor.dev/gvisor/pkg/abi/linux from tailscale.com/util/linuxfw
82-
L gvisor.dev/gvisor/pkg/bits from gvisor.dev/gvisor/pkg/abi/linux
83-
L gvisor.dev/gvisor/pkg/context from gvisor.dev/gvisor/pkg/abi/linux
84-
L 💣 gvisor.dev/gvisor/pkg/gohacks from gvisor.dev/gvisor/pkg/abi/linux+
85-
L 💣 gvisor.dev/gvisor/pkg/hostarch from gvisor.dev/gvisor/pkg/abi/linux+
86-
L gvisor.dev/gvisor/pkg/linewriter from gvisor.dev/gvisor/pkg/log
87-
L gvisor.dev/gvisor/pkg/log from gvisor.dev/gvisor/pkg/context
88-
L gvisor.dev/gvisor/pkg/marshal from gvisor.dev/gvisor/pkg/abi/linux+
89-
L 💣 gvisor.dev/gvisor/pkg/marshal/primitive from gvisor.dev/gvisor/pkg/abi/linux
90-
L 💣 gvisor.dev/gvisor/pkg/state from gvisor.dev/gvisor/pkg/abi/linux+
91-
L gvisor.dev/gvisor/pkg/state/wire from gvisor.dev/gvisor/pkg/state
92-
L 💣 gvisor.dev/gvisor/pkg/sync from gvisor.dev/gvisor/pkg/linewriter+
93-
L gvisor.dev/gvisor/pkg/waiter from gvisor.dev/gvisor/pkg/context
9480
nhooyr.io/websocket from tailscale.com/cmd/derper+
9581
nhooyr.io/websocket/internal/errd from nhooyr.io/websocket
9682
nhooyr.io/websocket/internal/xsync from nhooyr.io/websocket
@@ -156,7 +142,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
156142
tailscale.com/util/dnsname from tailscale.com/hostinfo+
157143
tailscale.com/util/httpm from tailscale.com/client/tailscale
158144
tailscale.com/util/lineread from tailscale.com/hostinfo+
159-
L 💣 tailscale.com/util/linuxfw from tailscale.com/net/netns
145+
L tailscale.com/util/linuxfw from tailscale.com/net/netns
160146
tailscale.com/util/mak from tailscale.com/syncs+
161147
tailscale.com/util/multierr from tailscale.com/health+
162148
tailscale.com/util/set from tailscale.com/health+

cmd/tailscale/depaware.txt

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,6 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
5555
go4.org/netipx from tailscale.com/wgengine/filter
5656
W 💣 golang.zx2c4.com/wireguard/windows/tunnel/winipcfg from tailscale.com/net/interfaces+
5757
gopkg.in/yaml.v2 from sigs.k8s.io/yaml
58-
L gvisor.dev/gvisor/pkg/abi from gvisor.dev/gvisor/pkg/abi/linux
59-
L 💣 gvisor.dev/gvisor/pkg/abi/linux from tailscale.com/util/linuxfw
60-
L gvisor.dev/gvisor/pkg/bits from gvisor.dev/gvisor/pkg/abi/linux
61-
L gvisor.dev/gvisor/pkg/context from gvisor.dev/gvisor/pkg/abi/linux
62-
L 💣 gvisor.dev/gvisor/pkg/gohacks from gvisor.dev/gvisor/pkg/abi/linux+
63-
L 💣 gvisor.dev/gvisor/pkg/hostarch from gvisor.dev/gvisor/pkg/abi/linux+
64-
L gvisor.dev/gvisor/pkg/linewriter from gvisor.dev/gvisor/pkg/log
65-
L gvisor.dev/gvisor/pkg/log from gvisor.dev/gvisor/pkg/context
66-
L gvisor.dev/gvisor/pkg/marshal from gvisor.dev/gvisor/pkg/abi/linux+
67-
L 💣 gvisor.dev/gvisor/pkg/marshal/primitive from gvisor.dev/gvisor/pkg/abi/linux
68-
L 💣 gvisor.dev/gvisor/pkg/state from gvisor.dev/gvisor/pkg/abi/linux+
69-
L gvisor.dev/gvisor/pkg/state/wire from gvisor.dev/gvisor/pkg/state
70-
L 💣 gvisor.dev/gvisor/pkg/sync from gvisor.dev/gvisor/pkg/linewriter+
71-
L gvisor.dev/gvisor/pkg/waiter from gvisor.dev/gvisor/pkg/context
7258
k8s.io/client-go/util/homedir from tailscale.com/cmd/tailscale/cli
7359
nhooyr.io/websocket from tailscale.com/derp/derphttp+
7460
nhooyr.io/websocket/internal/errd from nhooyr.io/websocket
@@ -148,7 +134,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
148134
tailscale.com/util/groupmember from tailscale.com/cmd/tailscale/cli
149135
tailscale.com/util/httpm from tailscale.com/client/tailscale
150136
tailscale.com/util/lineread from tailscale.com/net/interfaces+
151-
L 💣 tailscale.com/util/linuxfw from tailscale.com/net/netns
137+
L tailscale.com/util/linuxfw from tailscale.com/net/netns
152138
tailscale.com/util/mak from tailscale.com/net/netcheck+
153139
tailscale.com/util/multierr from tailscale.com/control/controlhttp+
154140
tailscale.com/util/must from tailscale.com/cmd/tailscale/cli

cmd/tailscaled/depaware.txt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,18 +162,13 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
162162
go4.org/netipx from tailscale.com/ipn/ipnlocal+
163163
W 💣 golang.zx2c4.com/wintun from github.com/tailscale/wireguard-go/tun+
164164
W 💣 golang.zx2c4.com/wireguard/windows/tunnel/winipcfg from tailscale.com/net/dns+
165-
L gvisor.dev/gvisor/pkg/abi from gvisor.dev/gvisor/pkg/abi/linux
166-
L 💣 gvisor.dev/gvisor/pkg/abi/linux from tailscale.com/util/linuxfw
167165
gvisor.dev/gvisor/pkg/atomicbitops from gvisor.dev/gvisor/pkg/tcpip+
168-
gvisor.dev/gvisor/pkg/bits from gvisor.dev/gvisor/pkg/bufferv2+
166+
gvisor.dev/gvisor/pkg/bits from gvisor.dev/gvisor/pkg/bufferv2
169167
💣 gvisor.dev/gvisor/pkg/bufferv2 from gvisor.dev/gvisor/pkg/tcpip+
170-
gvisor.dev/gvisor/pkg/context from gvisor.dev/gvisor/pkg/refs+
168+
gvisor.dev/gvisor/pkg/context from gvisor.dev/gvisor/pkg/refs
171169
💣 gvisor.dev/gvisor/pkg/gohacks from gvisor.dev/gvisor/pkg/state/wire+
172-
L 💣 gvisor.dev/gvisor/pkg/hostarch from gvisor.dev/gvisor/pkg/abi/linux+
173170
gvisor.dev/gvisor/pkg/linewriter from gvisor.dev/gvisor/pkg/log
174171
gvisor.dev/gvisor/pkg/log from gvisor.dev/gvisor/pkg/context+
175-
L gvisor.dev/gvisor/pkg/marshal from gvisor.dev/gvisor/pkg/abi/linux+
176-
L 💣 gvisor.dev/gvisor/pkg/marshal/primitive from gvisor.dev/gvisor/pkg/abi/linux
177172
gvisor.dev/gvisor/pkg/rand from gvisor.dev/gvisor/pkg/tcpip/network/hash+
178173
gvisor.dev/gvisor/pkg/refs from gvisor.dev/gvisor/pkg/bufferv2+
179174
💣 gvisor.dev/gvisor/pkg/sleep from gvisor.dev/gvisor/pkg/tcpip/transport/tcp
@@ -333,7 +328,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
333328
💣 tailscale.com/util/hashx from tailscale.com/util/deephash
334329
tailscale.com/util/httpm from tailscale.com/client/tailscale+
335330
tailscale.com/util/lineread from tailscale.com/hostinfo+
336-
L 💣 tailscale.com/util/linuxfw from tailscale.com/net/netns+
331+
L tailscale.com/util/linuxfw from tailscale.com/net/netns+
337332
tailscale.com/util/mak from tailscale.com/control/controlclient+
338333
tailscale.com/util/multierr from tailscale.com/control/controlclient+
339334
tailscale.com/util/must from tailscale.com/logpolicy

cmd/tailscaled/tailscaled_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,15 @@ func TestDeps(t *testing.T) {
2020
GOOS: "darwin",
2121
GOARCH: "arm64",
2222
BadDeps: map[string]string{
23-
"gvisor.dev/gvisor/pkg/hostarch": "will crash on non-4K page sizes",
23+
"gvisor.dev/gvisor/pkg/hostarch": "will crash on non-4K page sizes; see https://github.com/tailscale/tailscale/issues/8658",
2424
},
2525
}.Check(t)
2626

2727
deptest.DepChecker{
28-
GOOS: "linux",
29-
GOARCH: "arm64",
28+
GOOS: "linux",
29+
GOARCH: "arm64",
3030
BadDeps: map[string]string{
31-
// TODO: per https://github.com/tailscale/tailscale/issues/8658,
32-
// add this line too:
33-
// "gvisor.dev/gvisor/pkg/hostarch": "will crash on non-4K page sizes",
31+
"gvisor.dev/gvisor/pkg/hostarch": "will crash on non-4K page sizes; see https://github.com/tailscale/tailscale/issues/8658",
3432
},
3533
}.Check(t)
3634
}

0 commit comments

Comments
 (0)