Opened 4 months ago

Closed 3 months ago

#31464 closed defect (fixed)

meek and moat are broken on macOS 10.9 with the switch to Go 1.12

Reported by: gk Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-rbm, meek
Cc: mcs, brade, dcf Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

When using meek and/or moat on macOS 10.9 one gets

dyld: Symbol not found: _unlinkat
  Referenced from: .../Tor Browser.app/Contents/MacOS/./Tor/PluggableTransports/meek-client-torbrowser
  Expected in: flat namespace

and the pluggable transport being non-functional. As I wrote in comment:36:ticket:30126:

I suspect the underlying problem is a change in Go 1.12 where Go is starting to use libSystem.dylib etc. for syscalls: ​https://github.com/golang/go/issues/17490. (The mac-ports folks had to work around that e.g. in ​https://trac.macports.org/ticket/58138).

Child Tickets

Change History (4)

comment:1 Changed 4 months ago by gk

I suspect fixing that problem properly is a ton of work which seems not really justified at the moment given that we did not hear a single complaint about this problem so far and 10.9 is rather old. Not sure what is causing this syscall but maybe we could avoid that instead as a workaround?

comment:2 in reply to:  1 ; Changed 4 months ago by dcf

Replying to gk:

I suspect fixing that problem properly is a ton of work which seems not really justified at the moment given that we did not hear a single complaint about this problem so far and 10.9 is rather old. Not sure what is causing this syscall but maybe we could avoid that instead as a workaround?

I suppose this is a problem not only with the meek from meek.git, but also when using meek_lite with obfs4proxy (#29430)? Or does obfs4proxy somehow avoid using the problematic _unlinkat symbol? If the latter is the case, then #29430 would seem to solve it.

According to https://github.com/golang/go/wiki/Darwin, OS X 10.9 is not supported past Go 1.10.8.

comment:3 in reply to:  2 ; Changed 3 months ago by mcs

Replying to dcf:

I suppose this is a problem not only with the meek from meek.git, but also when using meek_lite with obfs4proxy (#29430)? Or does obfs4proxy somehow avoid using the problematic _unlinkat symbol? If the latter is the case, then #29430 would seem to solve it.

In fact, obfs4proxy seems to avoid this problem. See 30126#comment:56

According to https://github.com/golang/go/wiki/Darwin, OS X 10.9 is not supported past Go 1.10.8.

I guess we should try to support macOS 10.9.x as long as we can, but it may be a losing battle. And even though Mozilla still supports it for Firefox, we should not recommend it since 10.9 only rarely receives security updates from Apple.

Georg, should we close this ticket since this issue seems to be resolved with Tor Browser 9.0a6 (after the switch to meek_lite)?

comment:4 in reply to:  3 Changed 3 months ago by gk

Resolution: fixed
Status: newclosed

Replying to mcs:

Replying to dcf:

I suppose this is a problem not only with the meek from meek.git, but also when using meek_lite with obfs4proxy (#29430)? Or does obfs4proxy somehow avoid using the problematic _unlinkat symbol? If the latter is the case, then #29430 would seem to solve it.

In fact, obfs4proxy seems to avoid this problem. See 30126#comment:56

According to https://github.com/golang/go/wiki/Darwin, OS X 10.9 is not supported past Go 1.10.8.

I guess we should try to support macOS 10.9.x as long as we can, but it may be a losing battle. And even though Mozilla still supports it for Firefox, we should not recommend it since 10.9 only rarely receives security updates from Apple.

Georg, should we close this ticket since this issue seems to be resolved with Tor Browser 9.0a6 (after the switch to meek_lite)?

Yes.

Note: See TracTickets for help on using tickets.