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

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 (moved)).

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.