getlantern / lantern-client

Lantern Client code
GNU General Public License v3.0
14 stars 3 forks source link

Android CI fix for invalid reference to net.zoneCache #1169

Closed atavism closed 2 months ago

atavism commented 2 months ago

go: downloading golang.org/x/mobile v0.0.0-20240404231514-09dbf07665ed go: downloading golang.org/x/mod v0.20.0 go: downloading golang.org/x/tools v0.24.0 gomobile: go build -tags headless,lantern -ldflags -s -w -X github.com/getlantern/lantern-client/internalsdk/common.RevisionDate=20240910.224651 -X github.com/getlantern/lantern-client/internalsdk/common.ApplicationVersion=8.0.0 -X github.com/getlantern/lantern-client/internalsdk/common.BuildDate=20240910.225124 -buildmode=c-shared -o=/var/folders/py/lcjn3y352g1106vf1rqk521r0000gn/T/gomobile-work-3186563317/android/src/main/jniLibs/armeabi-v7a/libgojni.so ./gobind failed: exit status 1

gobind/gobind

link: github.com/wlynxg/anet: invalid reference to net.zoneCache

jigar-f commented 2 months ago

@atavism, this is crashing for me with these logs, Can you confirm can run this on android?

ERROR iptool: iptool.go:86 Unable to determine interface addresses, will proceed with using only global private-use networks: route ip+net: netlinkrib: permission denied [error=Unable to determine interface addresses, will proceed with using only global private-use networks: %v error_location=github.com/getlantern/iptool.New (iptool.go:86) error_op=route error_text=Unable to determine interface addresses, will proceed with using only global private-use networks: route ip+net: netlinkrib: permission denied error_type=errors.Error network=ip+net]
19:12:06.630  E  ERROR iptool: iptool.go:86   at github.com/getlantern/iptool.New (iptool.go:86)
19:12:06.630  E  ERROR iptool: iptool.go:86   at github.com/getlantern/netx.init.0 (netx.go:40)
19:12:06.630  E  ERROR iptool: iptool.go:86   at runtime.doInit1 (proc.go:7290)
19:12:06.630  E  ERROR iptool: iptool.go:86   at runtime.doInit (proc.go:7257)
19:12:06.630  E  ERROR iptool: iptool.go:86   at runtime.main (proc.go:254)
19:12:06.630  E  ERROR iptool: iptool.go:86   at runtime.goexit (asm_arm64.s:1223)
19:12:06.630  E  ERROR iptool: iptool.go:86 Caused by: route ip+net: netlinkrib: permission denied
19:12:06.630  E  ERROR iptool: iptool.go:86 Caused by: netlinkrib: permission denied
19:12:06.630  E  ERROR iptool: iptool.go:86 Caused by: permission denied
atavism commented 2 months ago

@atavism, this is crashing for me with these logs, Can you confirm can run this on android?

I see the same error, but that isn't what is causing the app to crash for me. I'm getting a fatal runtime error: "stack split at bad time"

09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86 Unable to determine interface addresses, will proceed with using only global private-use networks: route ip+net: netlinkrib: permission denied [error=Unable to determine interface addresses, will proceed with using only global private-use networks: %v error_location=github.com/getlantern/iptool.New (iptool.go:86) error_op=route error_text=Unable to determine interface addresses, will proceed with using only global private-use networks: route ip+net: netlinkrib: permission denied error_type=errors.Error network=ip+net]
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at github.com/getlantern/iptool.New (iptool.go:86)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at github.com/getlantern/netx.init.0 (netx.go:40)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at runtime.doInit1 (proc.go:7290)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at runtime.doInit (proc.go:7257)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at runtime.main (proc.go:254)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86   at runtime.goexit (asm_arm64.s:1223)
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86 Caused by: route ip+net: netlinkrib: permission denied
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86 Caused by: netlinkrib: permission denied
09-11 18:14:17.156 13288 13375 E GoLog   : ERROR iptool: iptool.go:86 Caused by: permission denied
09-11 18:14:17.159 13288 13376 I GoLog   : DEBUG netx: netx.go:49 Enabling NAT64 auto-discovery
09-11 18:14:17.159 13288 13377 I GoLog   : DEBUG netx: netx.go:53 Checking for updated NAT64 prefix
09-11 18:14:17.160 13288     0 E Go      : runtime: newstack at runtime.printlock+0x78 sp=0x4000084a10 stack=[0x4000084000, 0x4000085000]
09-11 18:14:17.160 13288     0 E Go      :  morebuf={pc:0x78d75eed10 sp:0x4000084a10 lr:0x0}
09-11 18:14:17.160 13288     0 E Go      :  sched={pc:0x78d7625028 sp:0x4000084a10 lr:0x78d75eed10 ctxt:0x0}
09-11 18:14:17.160 13288     0 E Go      : runtime.callbackUpdateSystemStack(0x4000072008, 0x7fc7cc9250, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:257 +0x90 fp=0x4000084a70 sp=0x4000084a10 pc=0x78d75eed10
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallbackg(0x78d85a31a0, 0x7fc7cc9340, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:322 +0x68 fp=0x4000084ac0 sp=0x4000084a70 pc=0x78d75eeed8
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallbackg(0x78d85a31a0, 0x7fc7cc9340, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  <autogenerated>:1 +0x1c fp=0x4000084af0 sp=0x4000084ac0 pc=0x78d7668c0c
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallback(0x4000084b68, 0x78d85765c4, 0x78d85aed98)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/asm_arm64.s:1131 +0xb0 fp=0x4000084b20 sp=0x4000084af0 pc=0x78d7666b60
09-11 18:14:17.160 13288     0 E Go      : runtime.systemstack_switch()
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/asm_arm64.s:201 +0x8 fp=0x4000084b30 sp=0x4000084b20 pc=0x78d7664728
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocall(0x78d85aed98, 0x4000084ba8)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:185 +0x70 fp=0x4000084b70 sp=0x4000084b30 pc=0x78d76577e0
09-11 18:14:17.160 13288     0 E Go      : main._Cfunc_cproxyminisql_DB_Exec(0x2a, {0xb400007b3706ac90, 0xc8, {0x0, 0x0, 0x0, 0x0}}, 0xffffffe8)
09-11 18:14:17.160 13288     0 E Go      :  _cgo_gotypes.go:1588 +0x34 fp=0x4000084ba0 sp=0x4000084b70 pc=0x78d85765c4
09-11 18:14:17.160 13288     0 E Go      : main.(*proxyminisql_DB).Exec.func1(0x40002fe16c, {0xb400007b3706ac90, 0xc8, {0x0, 0x0, 0x0, 0x0}}, 0xffffffe8)
09-11 18:14:17.160 13288     0 E Go      :  /private/var/folders/j5/yrnkkcxx6wlcr7h2f574qfjc0000gn/T/gomobile-work-604768024/src-android-arm64/gobind/go_minisqlmain.go:584 +0x84 fp=0x4000084c00 sp=0x4000084ba0 pc=0x78d858f1e4
09-11 18:14:17.160 13288     0 E Go      : main.(*proxyminisql_DB).Exec(0x40002fe16c, {0x40002f03f0?, 0x10?}, {0x78d8b48e28, 0x40002b6ee8})
09-11 18:14:17.160 13288     0 E Go      :  /private/var/folders/j5/yrnkkcxx6wlcr7h2f574qfjc0000gn/T/gomobile-work-604768024/src-android-arm64/gobind/go_minisqlmain.go:584 +0x7c fp=0x4000084c50 sp=0x4000084c00 pc=0x78d858f05c
09-11 18:14:17.160 13288     0 E Go      : github.com/getlantern/pathdb/minisql.(*QueryableAPI).Exec(0x40002d5d70, {0x40002f03f0, 0x64}, {0x0?, 0x1?, 0x78d7601088?})
09-11 18:14:17.160 13288     0 E Go      :  /Users/todd/go/pkg/mod/github.com/getlantern/pathdb@v0.0.0-20231026090702-54ee1ddd99eb/minisql/api.go:14 +0x6c fp=0x4000084c90 sp=0x4000084c50 pc=0x78d839746c
09-11 18:14:17.160 13288     0 E Go      : github.com/getlantern/pathdb.NewDB({0x78d8b52028, 0x40002fe16c}, {0x78d72ac2e5, 0x3})
09-11 18:14:17.160 13288     0 E Go      :  /Users/todd/go/pkg/mod/github.com/getlantern/pathdb@v0.0.0-20231026090702-54ee1ddd99eb/db.go:125 +0x14c fp=0x4000084d70 sp=0x4000084c90 pc=0x78d839bf8c
09-11 18:14:17.160 13288     0 E Go      : github.com/getlantern/lantern-client/internalsdk.newModel({0x78d72ac2e5, 0x3}, {0x78d8b52028?, 0x40002fe16c?})
09-11 18:14:17.160 13288     0 E Go      :  /Users/todd/go/src/github.com/getlantern/lantern-client/internalsdk/model.go:87 +0x44 fp=0x4000084db0 sp=0x4000084d70 pc=0x78d85495f4
09-11 18:14:17.160 13288     0 E Go      : github.com/getlantern/lantern-client/internalsdk.NewVPNModel({0x78d8b52028?, 0x40002fe16c?})
09-11 18:14:17.160 13288     0 E Go      :  /Users/todd/go/src/github.com/getlantern/lantern-client/internalsdk/vpn_model.go:27 +0x38 fp=0x4000084df0 sp=0x4000084db0 pc=0x78d8561bb8
09-11 18:14:17.160 13288     0 E Go      : main.proxyinternalsdk__NewVPNModel(0x2a)
09-11 18:14:17.160 13288     0 E Go      :  /private/var/folders/j5/yrnkkcxx6wlcr7h2f574qfjc0000gn/T/gomobile-work-604768024/src-android-arm64/gobind/go_internalsdkmain.go:4509 +0x64 fp=0x4000084e40 sp=0x4000084df0 pc=0x78d858c734
09-11 18:14:17.160 13288     0 E Go      : _cgoexp_7a18dc8f8e4b_proxyinternalsdk__NewVPNModel(0x7fc7ccaa80)
09-11 18:14:17.160 13288     0 E Go      :  _cgo_gotypes.go:5083 +0x28 fp=0x4000084e60 sp=0x4000084e40 pc=0x78d85a19c8
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallbackg1(0x78d85a19a0, 0x7fc7ccaa80, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:442 +0x21c fp=0x4000084f30 sp=0x4000084e60 pc=0x78d75ef20c
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallbackg(0x78d85a19a0, 0x7fc7ccaa80, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/cgocall.go:361 +0xf4 fp=0x4000084f80 sp=0x4000084f30 pc=0x78d75eef64
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallbackg(0x78d85a19a0, 0x7fc7ccaa80, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  <autogenerated>:1 +0x1c fp=0x4000084fb0 sp=0x4000084f80 pc=0x78d7668c0c
09-11 18:14:17.160 13288     0 E Go      : runtime.cgocallback(0x0, 0x0, 0x0)
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/asm_arm64.s:1131 +0xb0 fp=0x4000084fe0 sp=0x4000084fb0 pc=0x78d7666b60
09-11 18:14:17.160 13288     0 E Go      : runtime.goexit({})
09-11 18:14:17.160 13288     0 E Go      :  /opt/homebrew/Cellar/go/1.23.1/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x4000084fe0 sp=0x4000084fe0 pc=0x78d7666c54
09-11 18:14:17.160 13288     0 E Go      : fatal error: runtime: stack split at bad time

This looks unrelated to any recent changes on our end and seems to be an open issue that landed in Go 1.22.5 and CL 600296 supposedly resolves the issue...

The app doesn't crash for me if I rollback to Go 1.22.4 so I think we should just do that for now (just pushed those changes). Are you seeing something similar?

jigar-f commented 2 months ago

Seems like this is working for me...Merging