Opened 3 months ago

Last modified 3 months ago

#30249 new defect

Tor Browser starts two copies of meek-client-torbrowser, immediately kills one of them

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

Description

After the first configuration with meek, Tor Browser starts one copy of meek-client-torbrowser, kills it within a second, then starts a second copy, which it actually uses.

  1. Edit Browser/TorBrowser/Data/Tor/torrc-defaults and activate the log of meek-client-torbrowser.
    ## meek configuration
    ClientTransportPlugin meek exec ./TorBrowser/Tor/PluggableTransports/meek-client-torbrowser --log meek-client-torbrowser.log -- ./TorBrowser/Tor/PluggableTransports/meek-client
    
  2. tail -F Browser/meek-client-torbrowser.log
  3. start-tor-browser.desktop
  4. Configure, Tor is censored in my country, Provide a bridge I know:
    meek 0.0.2.0:5 url=https://meek.bamsoftware.com/
    
  5. Close the browser.
  6. Notice that on this first bootstrap, there was only one copy of meek-client-torbrowser (look for running firefox command and sig terminated).
    2019/04/19 21:00:55 running firefox command ["/home/user/tor-browser_en-US/Browser/firefox" "--invisible" "-no-remote" "-profile" "/home/user/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.meek-http-helper"]
    2019/04/19 21:00:55 firefox started with pid 19130
    2019/04/19 21:00:55 running meek-client command ["./TorBrowser/Tor/PluggableTransports/meek-client" "--helper" "127.0.0.1:44303"]
    2019/04/19 21:00:55 meek-client started with pid 19159
    2019/04/19 21:01:56 sig terminated
    2019/04/19 21:01:56 sending signal terminated to PID 19159
    2019/04/19 21:01:56 killing PID 19159
    2019/04/19 21:01:56 killing PID 19130
    
  7. start-tor-browser.desktop a second time, let it bootstrap, and close the browser.
  8. Notice that this time, there were two copies of meek-client-torbrowser, and the first one was killed right away. (See running firefox command at 21:14:51, sig terminated at 21:14:52, and running firefox command at 21:14:52.)
    2019/04/19 21:14:51 running firefox command ["/home/user/tor-browser_en-US/Browser/firefox" "--invisible" "-no-remote" "-profile" "/home/user/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.meek-http-helper"]
    2019/04/19 21:14:51 firefox started with pid 20227
    2019/04/19 21:14:51 running meek-client command ["./TorBrowser/Tor/PluggableTransports/meek-client" "--helper" "127.0.0.1:37937"]
    2019/04/19 21:14:51 meek-client started with pid 20254
    2019/04/19 21:14:52 sig terminated
    2019/04/19 21:14:52 sending signal terminated to PID 20254
    2019/04/19 21:14:52 killing PID 20254
    2019/04/19 21:14:52 killing PID 20227
    2019/04/19 21:14:52 running firefox command ["/home/user/tor-browser_en-US/Browser/firefox" "--invisible" "-no-remote" "-profile" "/home/user/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.meek-http-helper"]
    2019/04/19 21:14:52 firefox started with pid 20274
    2019/04/19 21:14:52 running meek-client command ["./TorBrowser/Tor/PluggableTransports/meek-client" "--helper" "127.0.0.1:40397"]
    2019/04/19 21:14:52 meek-client started with pid 20304
    2019/04/19 21:15:44 sig terminated
    2019/04/19 21:15:44 sending signal terminated to PID 20304
    2019/04/19 21:15:44 killing PID 20304
    2019/04/19 21:15:44 killing PID 20274
    

I started to bisect this because I don't remember seeing it before, but I got back to 7.5 and it still happened. These are the versions I tested:

tor-browser-linux64-7.5_en-US bad
tor-browser-linux64-8.0_en-US bad
tor-browser-linux64-8.0.8_en-US bad
torbrowser-install-win64-8.0.8_en-US bad

On Windows, I saw the two copies result in a "Firefox is already running" dialog, similar to what you get if you switch to meek while the browser is running (#12774).

I did not see the same problem with obfs4 configured. In torrc-defaults I tried setting

## obfs4proxy configuration
ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfs4proxy -enableLogging -logLevel DEBUG

and then monitoring Browser/TorBrowser/Data/Tor/pt_state/obfs4proxy.log, I see only one copy being started. (Look for [NOTICE]: obfs4proxy-0.0.5 - launched and [NOTICE]: obfs4proxy - terminated.)

I also did not see the problem when running tor separately from Tor Browser.

Child Tickets

Change History (1)

comment:1 Changed 3 months ago by gk

Cc: mcs brade added

Hm, interesting. I wonder whether we could squash this bug with the switch to meek_lite as well (see #29430) given that that would solve #12774, too. (Nevertheless figuring out what exactly goes wrong is still worthwhile)

Note: See TracTickets for help on using tickets.