Opened 3 years ago

Last modified 6 months ago

#12774 new defect

"Firefox is already running" when you select meek after bootstrapping

Reported by: dcf Owned by: dcf
Priority: Medium Milestone:
Component: Obfuscation/meek Version:
Severity: Normal Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

  1. Let Tor Browser bootstrap without any pluggable transports.
  2. Open Network Settings and choose meek.

An alert appears:

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

After that you can't browse. But closing the browser and allowing it to bootstrap from scratch again (with meek) works.

Tested on 3.6.3-meek-1 and on a build of the 4.0-alpha-1 branch.

Child Tickets

Change History (4)

comment:1 follow-up: Changed 3 years ago by dcf

The proximate cause seems to be tor starting two instances of meek-client-torbrowser, which both try to start their own headless browser helper with -no-remote. Here is the tor log showing four rounds of "does not provide any needed transports" messages, the first two with meek and the next two without, when I select meek at 09:56:53.000:

Aug 02 09:56:53.000 [notice] Pluggable transport proxy (fte exec ./TorBrowser/Tor/PluggableTransports/fteproxy.bin --managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (obfs2,obfs3,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfsproxy.bin managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (flashproxy exec ./TorBrowser/Tor/PluggableTransports/flashproxy-client --register :0 :9000) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (meek exec ./TorBrowser/Tor/PluggableTransports/meek-client-torbrowser -- ./TorBrowser/Tor/PluggableTransports/meek-client) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (fte exec ./TorBrowser/Tor/PluggableTransports/fteproxy.bin --managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (obfs2,obfs3,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfsproxy.bin managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (flashproxy exec ./TorBrowser/Tor/PluggableTransports/flashproxy-client --register :0 :9000) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (meek exec ./TorBrowser/Tor/PluggableTransports/meek-client-torbrowser -- ./TorBrowser/Tor/PluggableTransports/meek-client) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (fte exec ./TorBrowser/Tor/PluggableTransports/fteproxy.bin --managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (obfs2,obfs3,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfsproxy.bin managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (flashproxy exec ./TorBrowser/Tor/PluggableTransports/flashproxy-client --register :0 :9000) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (fte exec ./TorBrowser/Tor/PluggableTransports/fteproxy.bin --managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (obfs2,obfs3,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfsproxy.bin managed) does not provide any needed transports and will not be launched.
Aug 02 09:56:53.000 [notice] Pluggable transport proxy (flashproxy exec ./TorBrowser/Tor/PluggableTransports/flashproxy-client --register :0 :9000) does not provide any needed transports and will not be launched.
Aug 02 09:56:54.000 [notice] Our directory information is no longer up-to-date enough to build circuits: We have no usable consensus.
Aug 02 09:57:32.000 [warn] The communication stream of managed proxy './TorBrowser/Tor/PluggableTransports/meek-client-torbrowser' is 'closed'. Most probably the managed proxy stopped running. This might be a bug of the managed proxy, a bug of Tor, or a misconfiguration. Please enable logging on your managed proxy and check the logs for errors.
Aug 02 09:57:32.000 [notice] Failed to terminate process with PID '21979' ('No child processes').
Aug 02 09:57:33.000 [warn] We were supposed to connect to bridge '0.0.2.0:1' using pluggable transport 'meek', but we can't find a pluggable transport proxy supporting 'meek'. This can happen if you haven't provided a ClientTransportPlugin line, or if your pluggable transport proxy stopped running.
Aug 02 09:58:58.000 [notice] Tried for 120 seconds to get a connection to [scrubbed]:80. Giving up. (waiting for circuit)
Aug 02 09:59:14.000 [notice] Owning controller connection has closed -- exiting now.

Of course, meek-client-torbrowser should be able to cope with two instances of itself running at once.
It may be that -no-remote, used in meek-client-torbrowser, is not what we want. If profile.meek-http-helper is opened twice, it seems we want both to run, using the same profile, and it's probably okay to have them even in the same process.

Firefox has -new-instance, which is separate from -no-remote. Historically their relationship has been muddled. In the past, -no-remote was required, if you didn't want Firefox to ignore your -profile option, but that may no longer be the case. Also note that Tor Browser has a patch (in the 4.0 branch, not in maint-3.6) that makes -no-remote the default, and to turn it off you must use -allow-remote.

So we should try starting the helper with either "-allow-remote -new-instance" or "-allow-remote".

Last edited 6 months ago by dcf (previous) (diff)

comment:2 in reply to: ↑ 1 Changed 6 months ago by dcf

  • Severity set to Normal

Replying to dcf:

So we should try starting the helper with either "-allow-remote -new-instance" or "-allow-remote".

Mozilla bug 855899 says that -new-instance doesn't work on Windows.

comment:3 Changed 6 months ago by cypherpunks

This is Tor bug, for changed options it assume transport starts and reports back instantly, else it re-reads reports only once a second every (pt_configure_remaining_proxies called by run_scheduled_events). Any (RE)SETCONF trigger call of pt_prepare_proxy_list_for_config_read, that in-tolerate for yet starting transports. It must to allow non-PT_PROTO_COMPLETED managed proxy if changed options unrelated to those managed proxy. For example you should be allowed to add bridges for another transports without terminating non completed transport just started before, or even some changes to bridge unrelated options.

comment:4 Changed 6 months ago by cypherpunks

to add bridges for another transports

Or for the same transport too. Logic for managed stuff to terminate-then-launch-depends-something-something need to be rewritten.

Note: See TracTickets for help on using tickets.