Subject: | LWP::UserAgent::Tor DataDirectory issue with multiple user agent instances |
Date: | Sat, 23 Feb 2019 22:48:38 +0100 |
To: | bug-LWP-UserAgent-Tor [...] rt.cpan.org |
From: | Martin Palecek <martin.palecek [...] ketry.net> |
Hi Bernhard,
I believe there is an error in handling the temporary directories passed to
DataDirectory option of tor in LWP::UserAgent::Tor version 0.6. The Tor.pm
package only creates one directory and uses this one directory for all user
agent instances created in a script. The tor binary complains when second
and any instances after that are launched and exits.
Feb 23 22:21:09.960 [notice] Tor 0.3.3.9 (git-ca1a436fa8e53a32) running on
Linux with Libevent 2.1.8-stable, OpenSSL 1.1.1, Zlib 1.2.11, Liblzma
5.2.2, and Libzstd 1.3.5.
Feb 23 22:21:09.961 [notice] Tor can't help you if you use it wrong! Learn
how to be safe at https://www.torproject.org/download/download#warning
Feb 23 22:21:09.961 [notice] Read configuration file "/etc/tor/torrc".
Feb 23 22:21:09.964 [warn] ControlPort is open, but no authentication
method has been configured. This means that any program on your computer
can reconfigure your Tor. That's bad! You
should upgrade your Tor controller as soon as possible.
Feb 23 22:21:09.965 [notice] Scheduler type KIST has been enabled.
Feb 23 22:21:09.965 [notice] Opening Socks listener on 127.0.0.1:41121
Feb 23 22:21:09.965 [notice] Opening Control listener on 127.0.0.1:38243
*Feb 23 22:21:09.000 [warn] It looks like another Tor process is running
with the same data directory. Waiting 5 seconds to see if it goes away.*
*Feb 23 22:21:14.000 [err] No, it's still there. Exiting.
*
Feb 23 22:21:14.000 [err] set_options(): Bug: Acting on config options left
us in a broken state. Dying. (on Tor 0.3.3.9 )
Feb 23 22:21:14.000 [err] Reading config failed--see warnings above.
As a result, the Tor UserAgent then always returns a 500 response for all
but the first instance of the LWP::UserAgent::Tor class e.g. like this
500 Can't connect to www.google.com:80 (Connection refused)
Content-Type: text/plain
Client-Date: Sat, 23 Feb 2019 21:08:21 GMT
*Client-Warning: Internal response *
Can't connect to www.google.com:80 (Connection refused)
Connection refused at /usr/share/perl5/LWP/Protocol/http.pm line 50.
In the attachment you can find a modified Tor.pm module which works around
this issue to further illustrate what I mean and in case you would like to
use it.
Please let me know if you need more information.
Kind Regards,
Martin
Message body is not shown because sender requested not to inline it.