Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2010-08-05T16:16:34Zhttps://gitlab.torproject.org/legacy/trac/-/issues/1798arm failing to parse certain torrc options2010-08-05T16:16:34ZDamian Johnsonarm failing to parse certain torrc optionsvoidzero reported on irc that when he starts arm it reports:
[ARM-WARN] Unable to validate torrc
This indicates that requesting a couple of the options is causing torctl to return an error response (in this case SocksBindAddress and All...voidzero reported on irc that when he starts arm it reports:
[ARM-WARN] Unable to validate torrc
This indicates that requesting a couple of the options is causing torctl to return an error response (in this case SocksBindAddress and AllowUnverifiedNodes). Most likely these torrc options are special in some way (like hidden service options) and will require a special case.
Also, I should improve the warning by providing the line that it fails on.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/1799arm chokes on tabs when used in ExitPolicy lines2010-08-06T04:51:10ZDamian Johnsonarm chokes on tabs when used in ExitPolicy linesvoidzero reports that tabs in the ExitPolicy lines causes a variety of gremlins when determining the exit policy. This includes display issues when parsing the torrc and a crashing issue in the connection panel:
1. Traceback (most rec...voidzero reports that tabs in the ExitPolicy lines causes a variety of gremlins when determining the exit policy. This includes display issues when parsing the torrc and a crashing issue in the connection panel:
1. Traceback (most recent call last):
2. File "init/starter.py", line 178, in <module>
3. interface.controller.startTorMonitor(expandedEvents, param["startup.blindModeEnabled"])
4. File "/home/void/user/arm/interface/controller.py", line 1287, in startTorMonitor
5. curses.wrapper(drawTorMonitor, loggedEvents, isBlindMode)
6. File "/usr/lib/python2.6/curses/wrapper.py", line 44, in wrapper
7. return func(stdscr, *args, **kwds)
8. File "/home/void/user/arm/interface/controller.py", line 377, in drawTorMonitor
9. panels["conn"] = connPanel.ConnPanel(stdscr, conn, isBlindMode)
10. File "/home/void/user/arm/interface/connPanel.py", line 170, in __init__
11. self.reset()
12. File "/home/void/user/arm/interface/connPanel.py", line 336, in reset
13. if SCRUB_PRIVATE_DATA and fIp not in self.fingerprintMappings.keys(): isPrivate = isExitAllowed(fIp, fPort, self.exitPolicy, self.exitRejectPrivate)
14. File "/home/void/user/arm/interface/connPanel.py", line 893, in isExitAllowed
15. maxPort = int(entryPort[entryPort.find("-") + 1:])
16. ValueError: invalid literal for int() with base 10: '22"'Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/1800arm bandwidth graph reset by sighups2010-08-04T21:07:26ZDamian Johnsonarm bandwidth graph reset by sighupsarm uses the tor process' uptime to determine if all the values in the state file can be trusted to belong to this tor instance or not. Unfortunately issuing a sighup evidently resets the uptime reported by ps, making arm skip the bandwi...arm uses the tor process' uptime to determine if all the values in the state file can be trusted to belong to this tor instance or not. Unfortunately issuing a sighup evidently resets the uptime reported by ps, making arm skip the bandwidth graph prepopulation for the following day.
Sebastian pointed out this is especially a problem for Debian since it has a sighup issued daily (meaning we'd never prepopulate the bandwidth).Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2026ARM exits immediatly after launch2010-10-08T16:23:41ZThomas BenjaminARM exits immediatly after launchI have just installed arm for the first time on my relay. When I run it it immediately exits with the output included in the attachment. I am using no armrc.
Vital statistics:
[root@heydt-benjamin ~]# uname -a
Linux heydt-benjamin.com...I have just installed arm for the first time on my relay. When I run it it immediately exits with the output included in the attachment. I am using no armrc.
Vital statistics:
[root@heydt-benjamin ~]# uname -a
Linux heydt-benjamin.com 2.6.9-023stab048.6-enterprise #1 SMP Mon Nov 17 19:09:18 MSK 2008 i686 i686 i386 GNU/Linux
[root@heydt-benjamin ~]# tor --version
Oct 08 07:55:58.467 [notice] Tor v0.2.2.17-alpha (git-a3f488a88773225a). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
Tor version 0.2.2.17-alpha (git-a3f488a88773225a).
[root@heydt-benjamin ~]# python --version
Python 2.7
[root@heydt-benjamin ~]# arm --version
arm version 1.3.7 (released October 6, 2010)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2323directory src/TorCtl does not exist2010-12-30T15:09:35ZJens Kubiezieldirectory src/TorCtl does not existI cloned the ARM repository today to r23979 and wanted to install the software. So I ran:
`python setup.py install -n --prefix=$HOME/Foo`
The output was:
```
running install
running build
running build_py
creating build
creating build...I cloned the ARM repository today to r23979 and wanted to install the software. So I ran:
`python setup.py install -n --prefix=$HOME/Foo`
The output was:
```
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/arm
copying src/prereq.py -> build/lib.linux-i686-2.6/arm
copying src/version.py -> build/lib.linux-i686-2.6/arm
copying src/__init__.py -> build/lib.linux-i686-2.6/arm
copying src/test.py -> build/lib.linux-i686-2.6/arm
copying src/starter.py -> build/lib.linux-i686-2.6/arm
creating build/lib.linux-i686-2.6/arm/interface
copying src/interface/headerPanel.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/configPanel.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/descriptorPopup.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/controller.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/logPanel.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/torrcPanel.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/connPanel.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/__init__.py -> build/lib.linux-i686-2.6/arm/interface
copying src/interface/fileDescriptorPopup.py -> build/lib.linux-i686-2.6/arm/interface
creating build/lib.linux-i686-2.6/arm/interface/graphing
copying src/interface/graphing/connStats.py -> build/lib.linux-i686-2.6/arm/interface/graphing
copying src/interface/graphing/psStats.py -> build/lib.linux-i686-2.6/arm/interface/graphing
copying src/interface/graphing/bandwidthStats.py -> build/lib.linux-i686-2.6/arm/interface/graphing
copying src/interface/graphing/__init__.py -> build/lib.linux-i686-2.6/arm/interface/graphing
copying src/interface/graphing/graphPanel.py -> build/lib.linux-i686-2.6/arm/interface/graphing
creating build/lib.linux-i686-2.6/arm/util
copying src/util/connections.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/hostnames.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/conf.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/sysTools.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/uiTools.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/torConfig.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/log.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/__init__.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/procTools.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/torTools.py -> build/lib.linux-i686-2.6/arm/util
copying src/util/panel.py -> build/lib.linux-i686-2.6/arm/util
error: package directory 'src/TorCtl' does not exist
```
The `README` says that TorCtl is inluded in ARM, so it should not be necessary to install it.
However if I manually create the directory, a warning is printed and the script finishes its job:
```
package init file 'src/TorCtl/__init__.py' not found (or not a regular file)
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2354arm crash on e in first screen2011-01-06T16:27:37ZTracarm crash on e in first screenbuilt debian package from most recent svn trunk (r24038)
on a lenny machine with python-minimal
ii python-minimal 2.5.2-3
python -V
Python 2.5.2
press e and
the back trace is:
Traceback (most recent call last):
...built debian package from most recent svn trunk (r24038)
on a lenny machine with python-minimal
ii python-minimal 2.5.2-3
python -V
Python 2.5.2
press e and
the back trace is:
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 282, in <module>
interface.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
File "/usr/share/arm/interface/controller.py", line 1756, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime, loggedEvents, isBlindMode)
File "/usr/lib/python2.5/curses/wrapper.py", line 44, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/interface/controller.py", line 1075, in drawTorMonitor
eventsInput = panels["control"].getstr(0, 15)
File "/usr/share/arm/util/panel.py", line 362, in getstr
textbox = curses.textpad.Textbox(inputSubwindow, True)
TypeError: __init__() takes exactly 2 arguments (3 given)
**Trac**:
**Username**: murbleDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2414Bad torrc Crashes Arm [multiple myfamily entries]2011-01-20T03:28:49ZTom LowenthalBad torrc Crashes Arm [multiple myfamily entries]I tried changing my torrc, adding multiple MyFamily entries of the form:
MyFamily $whateverfp, #somecomment
Tor successfully starts with this torrc. Arm, however, fails to start, with the following trace:
File "/usr/share/arm/starte...I tried changing my torrc, adding multiple MyFamily entries of the form:
MyFamily $whateverfp, #somecomment
Tor successfully starts with this torrc. Arm, however, fails to start, with the following trace:
File "/usr/share/arm/starter.py", line 282, in <module>
interface.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
File "/usr/share/arm/interface/controller.py", line 1781, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime, loggedEvents, isBlindMode)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/interface/controller.py", line 554, in drawTorMonitor
panels["conn"] = connPanel.ConnPanel(stdscr, conn, isBlindMode)
File "/usr/share/arm/interface/connPanel.py", line 165, in __init__
self.resetOptions()
File "/usr/share/arm/interface/connPanel.py", line 215, in resetOptions
self._resolveFamilyEntries()
File "/usr/share/arm/interface/connPanel.py", line 854, in _resolveFamilyEntries
if familyEntry[0] == "$":Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2416Improve keyboard navigation2011-01-20T04:03:17ZTom LowenthalImprove keyboard navigationCurrently, Arm has an inconsistent interface. Some functions (like <i>nterval) produce a menu that can be traversed with the arrow keys. Some (like graph <b>ounds) sysle through the possible options. Some (like log <e>vents) provide a me...Currently, Arm has an inconsistent interface. Some functions (like <i>nterval) produce a menu that can be traversed with the arrow keys. Some (like graph <b>ounds) sysle through the possible options. Some (like log <e>vents) provide a menu that must be navigated by key-entry. Some standardization would be nice.
A desirable interface* would be a hotkeyable menu. That is, rather like the <i>nterval menu, but with a particular hotkey for each entry, perhaps indicated in bold.
*where possible, admittedly this is difficult with functions like log <e>ventsDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2417Always display help items2011-01-20T04:09:34ZTom LowenthalAlways display help itemsCurrently, there is a small rubric above the graph, indicating some functions that can be activated with hotkeys. One of these brings up the help menu, with some additional functions. However, the short rubric takes up only a small fract...Currently, there is a small rubric above the graph, indicating some functions that can be activated with hotkeys. One of these brings up the help menu, with some additional functions. However, the short rubric takes up only a small fraction of the available horizontal space on that line. A better UI might use that whole line to display as many options as possible, or use a menu-like arrangement along the top of the screen (like the Links browser).Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2418Exit policy heading does not line wrap2011-01-20T03:47:19ZTom LowenthalExit policy heading does not line wrapThe heading item on line three on the right indicates the current exit policy. However, if this is longer than the screen, it just runs off, and does not wrap onto a new line. Especially given that the `best-practice' policy from https:/...The heading item on line three on the right indicates the current exit policy. However, if this is longer than the screen, it just runs off, and does not wrap onto a new line. Especially given that the `best-practice' policy from https://blog.torproject.org/blog/tips-running-exit-node-minimal-harassment is rather long, wrapping this text is desirable.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2419Customisable header2011-01-20T04:16:51ZTom LowenthalCustomisable headerCurrently, arm's header consists of three lines, on two sides, containing a fixed selection of information. It would be fun to customize this info, picking and choosing what to display, and in which columns. The parameters for this could...Currently, arm's header consists of three lines, on two sides, containing a fixed selection of information. It would be fun to customize this info, picking and choosing what to display, and in which columns. The parameters for this could be stored in ~/.arm/conf in a plain-text format.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2427"Hide duplicates" should hide similar log entries with different parameters2011-01-24T05:15:22ZTom Lowenthal"Hide duplicates" should hide similar log entries with different parametersArm has the facility to hide duplicate log entries. However, the feature currently only removes log entries whose text is exactly identical. Many log entries produce slightly different text for the same basic entry. For instance:
Possib...Arm has the facility to hide duplicate log entries. However, the feature currently only removes log entries whose text is exactly identical. Many log entries produce slightly different text for the same basic entry. For instance:
Possible replay detected! We received an INTRODUCE2 cell with same first part of Diffie-Hellman handshake <t> seconds ago. Dropping cell.
and,
Error launching circuit to node <name> for service <address>.
will produce different text, depending on the specific parameters, but are essentially the same. The second example is especially prone to appearing many times if the connection is interrupted.
Arm should groups these types of entries, and hide them, whether or not the text is exactly identical.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2501Useless warning on arm startup2011-04-10T16:36:43ZTracUseless warning on arm startupI am using arm on several relays. On all relays arm gives out this warning on startup
12:39:28 [ARM_WARN] The torrc differ from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- configuration value ...I am using arm on several relays. On all relays arm gives out this warning on startup
12:39:28 [ARM_WARN] The torrc differ from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- configuration value is missing from the torrc:
tor is using the same torrc that arm is complaining.
**Trac**:
**Username**: torlandDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2776arm doesn't update IP address on change2011-04-10T16:39:48Ztagnaqarm doesn't update IP address on changeThe second line in the arm interface shows some basic information about the relay:
<nickname> - <ip-address>:<ORPort> ...
If the IP address of the relay changes, which can be seen in the tor log file as:
Our IP Address has changed from ...The second line in the arm interface shows some basic information about the relay:
<nickname> - <ip-address>:<ORPort> ...
If the IP address of the relay changes, which can be seen in the tor log file as:
Our IP Address has changed from ... to ...; rebuilding descriptor (source: ...).
the arm interface still shows the old IP address.
used version:
tor-arm 1.4.1.2-1
(debian package)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2778arm Unhandled exception: sys.excepthook2011-04-10T16:41:00Ztagnaqarm Unhandled exception: sys.excepthookarm
Password:
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
Exception in thread TorLoop (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/...arm
Password:
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
Exception in thread TorLoop (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
File "/usr/lib/python2.6/threading.py", line 484, in run
File "/usr/share/arm/TorCtl/TorCtl.py", line 673, in _loop
File "/usr/share/arm/TorCtl/TorCtl.py", line 826, in _read_reply
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Unfortunately I can't provide a reproducer because arm was running for a while and I saw that message after closing it.
arm version:
tor-arm 1.4.1.2-1
(debian package)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/2830Arm should redraw on CTRL-L2011-10-03T02:59:09ZTracArm should redraw on CTRL-LIn some conditions arm fails to redraw itself properly. In particular when used in combination with dtach for instance. Being able to simply hit CTRL-L to redraw is the expected improvement.
As a workaround resizing the window fixes the...In some conditions arm fails to redraw itself properly. In particular when used in combination with dtach for instance. Being able to simply hit CTRL-L to redraw is the expected improvement.
As a workaround resizing the window fixes the issue most of the time. This is inconvenient in particular in conjunction with a tiling window manager.
**Trac**:
**Username**: npDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3128"AttributeError: 'NoneType' object has no attribute 'getDetails'" by trying t...2011-05-10T02:09:48ZGeorge Kadianakis"AttributeError: 'NoneType' object has no attribute 'getDetails'" by trying to select a connection, when there are no connectionsHi,
if the connection tab is empty (for example, when bootstrapping a new relay) and I press "Enter" inside it, arm crashes and I get this trace:
Traceback (most recent call last):
File "./src/starter.py", line 398, in <module>
c...Hi,
if the connection tab is empty (for example, when bootstrapping a new relay) and I press "Enter" inside it, arm crashes and I get this trace:
Traceback (most recent call last):
File "./src/starter.py", line 398, in <module>
cli.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
File "/home/user/arm/src/cli/controller.py", line 1441, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime, loggedEvents, isBlindMode)
File "/usr/lib/python2.5/curses/wrapper.py", line 44, in wrapper
return func(stdscr, *args, **kwds)
File "/home/user/arm/src/cli/controller.py", line 1429, in drawTorMonitor
panels["conn"].handleKey(key)
File "/home/user/arm/src/cli/connections/connPanel.py", line 153, in handleKey
self.redraw(True)
File "/home/user/arm/src/util/panel.py", line 355, in redraw
self.draw(self.maxX - 1, self.maxY)
File "/home/user/arm/src/cli/connections/connPanel.py", line 231, in draw
drawEntries = cursorSelection.getDetails(width)
AttributeError: 'NoneType' object has no attribute 'getDetails'
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
File "/home/user/arm/src/util/connections.py", line 457, in run
File "/usr/lib/python2.5/threading.py", line 115, in release
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Exception in thread conn (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
File "/home/user/arm/src/cli/connections/connPanel.py", line 187, in run
File "/usr/lib/python2.5/threading.py", line 115, in release
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Exception in thread header (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
File "/home/user/arm/src/cli/headerPanel.py", line 286, in run
File "/usr/lib/python2.5/threading.py", line 115, in release
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
It's nothing important but I felt like I should report it.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3391add arm to the official tor deb repository2016-03-13T01:32:08ZTracadd arm to the official tor deb repositoryRight now, the arm download page (http://www.atagar.com/arm/download.php) links to the official debian repositories.
Is there any chance to get arm integrated in the official tor deb repository (http://deb.torproject.org/torproject.org)...Right now, the arm download page (http://www.atagar.com/arm/download.php) links to the official debian repositories.
Is there any chance to get arm integrated in the official tor deb repository (http://deb.torproject.org/torproject.org). This would allow users in protected environments that only trust the torproject repository to obtain and update arm easily. On top of that, as debian stable is updated only once in two years, the regular arm who do not want to struggle with installing arm manually, will pretty much lack ahind upstream.
Thank you
**Trac**:
**Username**: toruser32Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3394"New Identity" feature for arm2011-06-17T11:15:57ZTrac"New Identity" feature for armI am using arm to monitor my tor relays. Whilst the bandwith graphs look great, I am missing one essential feature: the "New Identity" button. Can you add this?
Thank you
**Trac**:
**Username**: toruser32I am using arm to monitor my tor relays. Whilst the bandwith graphs look great, I am missing one essential feature: the "New Identity" button. Can you add this?
Thank you
**Trac**:
**Username**: toruser32Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3396custom resolver2011-06-13T15:45:00ZTraccustom resolverI am running arm on GNU/Linux in the context of a user that is neither root nor the user of the tor instance that is monitored. Obviously all available connection resolver fail.
I think it is feasible to get the arm user to be able to w...I am running arm on GNU/Linux in the context of a user that is neither root nor the user of the tor instance that is monitored. Obviously all available connection resolver fail.
I think it is feasible to get the arm user to be able to write an own connection resolver. This could be achieved by adding a new option in armrc that links to a user provided file that implements the listener.
I would solve my problem then by writing one that executes sudo -u my-tor-user netstat -np etc. - with the sudo being a NONPASSWD-command via /etc/sudoers.
**Trac**:
**Username**: toruser32Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3614When using arm to configure tor, arm wipes /etc/tor/torrc2011-07-20T14:47:38ZRuna SandvikWhen using arm to configure tor, arm wipes /etc/tor/torrcI am running Debian Squeeze on the DreamPlug, version 0.2.1.29 of tor from deb.torproject.org, and version 1.4.2.4 (released April 21, 2011) of arm from squeeze-backports.
When using arm to configure tor, arm wipes /etc/tor/torrc comple...I am running Debian Squeeze on the DreamPlug, version 0.2.1.29 of tor from deb.torproject.org, and version 1.4.2.4 (released April 21, 2011) of arm from squeeze-backports.
When using arm to configure tor, arm wipes /etc/tor/torrc completely. I have tried to write to the existing configuration file, as well as create a new one. In both cases, the configuration file is empty after arm reports that it has saved the config.
This is what I do:
Go to page three, select Nickname, hit enter, type 'foobar', hit enter, press 'w', choose "Save", and confirm that I want to save to /etc/tor/torrc. I then see a message from arm telling me that the config has been saved. The result is that /etc/tor/torrc is completely empty.
The same thing happens if I choose "Save As..." and write /etc/tor/torrc.test instead. The file is created, but it is empty.
I have tried to edit src/interface/controller.py with the following on line 1773:
```
log.log(log.ERR, "attempting to save the following... %s" % "\n".join(configLines))
```
... but I still get an empty config file. Same result when moving the line above to line 1759 in controller.pyDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/3995Add quit option to wizard2011-09-24T21:00:27ZTracAdd quit option to wizardAdd a quit option (similar to the one on the main screen) to the tor invocation wizard.
At the moment, the only option to quit the wizard that is invoked when arm doesn't detect a running tor instance is via ctrl-c. q/q similar to the ...Add a quit option (similar to the one on the main screen) to the tor invocation wizard.
At the moment, the only option to quit the wizard that is invoked when arm doesn't detect a running tor instance is via ctrl-c. q/q similar to the main interface would be great.
**Trac**:
**Username**: monochromecDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4092Arm should recognise similar Tor log entries and treat them as duplicates2011-09-24T20:53:16ZTom LowenthalArm should recognise similar Tor log entries and treat them as duplicatesMany of Tor's log entries are similar modulo the inclusion of a specific number. These entries should be treated like duplicates despite being different. Ideally, Arm's file of regular expressions for log entries should be updated with Tor.Many of Tor's log entries are similar modulo the inclusion of a specific number. These entries should be treated like duplicates despite being different. Ideally, Arm's file of regular expressions for log entries should be updated with Tor.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4096Deduplicate a larger selection of log entries2011-09-26T14:16:38ZTom LowenthalDeduplicate a larger selection of log entriesMany of Tor's log entries contain slight variation, as in:
> "Flobbed %s widgets. Reticulating splines"
Although the text of these entries is different, users may reasonably expect arm to deduplicate them.
This is a tracking ticket fo...Many of Tor's log entries contain slight variation, as in:
> "Flobbed %s widgets. Reticulating splines"
Although the text of these entries is different, users may reasonably expect arm to deduplicate them.
This is a tracking ticket for additions to the list of pattens matched to deduplicate logs in arm.Tom LowenthalTom Lowenthalhttps://gitlab.torproject.org/legacy/trac/-/issues/4098Arm crashes when TAKEOWNERSHIP command is issued in panel mode2011-09-28T14:40:06ZSebastian HahnArm crashes when TAKEOWNERSHIP command is issued in panel modeLet me know if more is needed to reproduce:
```
Traceback (most recent call last):
File "./src/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/Downloads/arm/src/cli/controller.py"...Let me know if more is needed to reproduce:
```
Traceback (most recent call last):
File "./src/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/Downloads/arm/src/cli/controller.py", line 683, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/Downloads/arm/src/cli/controller.py", line 784, in drawTorMonitor
isKeystrokeConsumed = panelImpl.handleKey(key)
File "/Downloads/arm/src/cli/interpretorPanel.py", line 96, in handleKey
self.prompt()
File "/Downloads/arm/src/cli/interpretorPanel.py", line 73, in prompt
input, isDone = input.strip(), False
AttributeError: 'NoneType' object has no attribute 'strip'
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4236pwdx isn't available on OS X2011-10-15T21:20:06ZSebastian Hahnpwdx isn't available on OS XWhen starting arm and connecting to a tor process that used a relative path for torrc, arm complains it can't find the torrc:
```
[ARM_WARN] Unable to load torrc (querying tor's pwd failed because the pwdx call failed: 'pwdx' is unavail...When starting arm and connecting to a tor process that used a relative path for torrc, arm complains it can't find the torrc:
```
[ARM_WARN] Unable to load torrc (querying tor's pwd failed because the pwdx call failed: 'pwdx' is unavailable)
```
Instead, on OS X you can use this (quite possibly something more elegant is possible too, but didn't see it in lsof's manpage at first glance):
```
lsof -a -p $PID -d cwd -Fn | cut -c2- | grep -v $PID
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4237arm warning when used with tor master2020-06-13T14:13:49ZSebastian Hahnarm warning when used with tor masterwhen used with current master, arm prints this warning:
```
[ARM_WARN] The torrc differ from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- configuration value is missing from the torrc: DirReqSt...when used with current master, arm prints this warning:
```
[ARM_WARN] The torrc differ from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- configuration value is missing from the torrc: DirReqStat
```}
Also there's a typo here, it should be "The torrc differS from what" I think.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4281Usage popup not unique clients2019-01-11T18:46:46ZDamian JohnsonUsage popup not unique clientsThe usage popup either shows the number of client connections we've had per a locale or exit connections per port. For the client counts this isn't very useful since it counts *each* connection that a person makes so it's more of an acti...The usage popup either shows the number of client connections we've had per a locale or exit connections per port. For the client counts this isn't very useful since it counts *each* connection that a person makes so it's more of an activity metric rather than showing how many people are using you.
I should only count each source ip once.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4305arm should check the length of authentication-cookie files2011-10-27T05:21:24ZRobert Ransomarm should check the length of authentication-cookie filesDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4471Arm crashes with 'ControlPort auto'2020-06-13T01:10:34ZDamian JohnsonArm crashes with 'ControlPort auto'Arm assumes querying 'GETCONF ControlPort' either provides an int or fails. The new 'auto' argument breaks this assumption, causing a stacktrace...
```
cba@cluster3:~$ sudo arm --interface 127.0.0.1:46632
Traceback (most recent call las...Arm assumes querying 'GETCONF ControlPort' either provides an int or fails. The new 'auto' argument breaks this assumption, causing a stacktrace...
```
cba@cluster3:~$ sudo arm --interface 127.0.0.1:46632
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 390, in <module>
interface.controller.startTorMonitor(time.time() - initTime, expandedEvents, param["startup.blindModeEnabled"])
File "/usr/share/arm/interface/controller.py", line 1918, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime, loggedEvents, isBlindMode)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/interface/controller.py", line 458, in drawTorMonitor
torPid = torTools.getConn().getMyPid()
File "/usr/share/arm/util/torTools.py", line 839, in getMyPid
return self._getRelayAttr("pid", None)
File "/usr/share/arm/util/torTools.py", line 1647, in _getRelayAttr
result = getPid(int(self.getOption("ControlPort", 9051)), self.getOption("PidFile"))
ValueError: invalid literal for int() with base 10: 'auto'
```
On first glance there's four spots that need to be fixed...
```
atagar@morrigan:~/Desktop/arm$ grep -R "getOption(\"ControlPort" src/
src/cli/headerPanel.py: self.vals["tor/controlPort"] = conn.getOption("ControlPort", "0")
src/cli/connections/connEntry.py: myCtlPort = conn.getOption("ControlPort")
src/cli/graphing/connStats.py: self.controlPort = conn.getOption("ControlPort", "0")
src/util/torTools.py: result = getPid(int(self.getOption("ControlPort", 9051)), self.getOption("PidFile"))
```
The change should be an isdigit check on the response and, if it fails, use the default value (the second argument in the getOption call or None if undefined).
This was caught by PurplePeter.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4601Arm torrc validation fails on Tor Cloud2011-12-07T17:25:59ZDamian JohnsonArm torrc validation fails on Tor CloudTor's config parsing is case insensitive, so arm's validation should be too. At present having "Exitpolicy reject *:*" in the torrc is counted as both being unnecessary and missing since it doesn't match "ExitPolicy reject *:*".Tor's config parsing is case insensitive, so arm's validation should be too. At present having "Exitpolicy reject *:*" in the torrc is counted as both being unnecessary and missing since it doesn't match "ExitPolicy reject *:*".Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4602Arm's torrc validation misses alternate Log default2020-06-13T02:22:18ZDamian JohnsonArm's torrc validation misses alternate Log defaultTor reports a default log value ("Log notice stdout") if none is defined as per...
https://trac.torproject.org/projects/tor/ticket/2362
However, with the deb it defaults to "Log notice file /var/log/tor/log" instead, causing validation ...Tor reports a default log value ("Log notice stdout") if none is defined as per...
https://trac.torproject.org/projects/tor/ticket/2362
However, with the deb it defaults to "Log notice file /var/log/tor/log" instead, causing validation to think that this is an issue. I should account for this too.
Thanks to Sebastian, here's the part that determines this...
12:31 < Sebastian> atagar:
12:31 < Sebastian> + if (debian_running_as_debiantor()) {
12:31 < Sebastian> + if (!options->Logs && !from_setconf)
12:31 < Sebastian> + config_line_append(&options->Logs, "Log", "notice file /var/log/tor/log");Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4621Minor help text tweak2011-12-01T15:38:02ZtwildeMinor help text tweakThe help text for "enter" on the connection panel was incorrect, I've pushed a proposed fix to the timhack branch on git://github.com/twilde/arm.git, simple one-line patch against master HEAD also inlined below in git format-patch style,...The help text for "enter" on the connection panel was incorrect, I've pushed a proposed fix to the timhack branch on git://github.com/twilde/arm.git, simple one-line patch against master HEAD also inlined below in git format-patch style, not sure which is easier. :)
---
src/cli/connections/connPanel.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/cli/connections/connPanel.py b/src/cli/connections/connPanel.py
index 9745176..3a8a07c 100644
--- a/src/cli/connections/connPanel.py
+++ b/src/cli/connections/connPanel.py
@@ -308,7 +308,7 @@ class ConnectionPanel(panel.Panel, threading.Thread):
options.append(("down arrow", "scroll down a line", None))
options.append(("page up", "scroll up a page", None))
options.append(("page down", "scroll down a page", None))
- options.append(("enter", "edit configuration option", None))
+ options.append(("enter", "toggle connection details", None))
options.append(("d", "raw consensus descriptor", None))
if self.isClientsAllowed():
--Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4694Merge request: UPnP support2013-01-10T05:40:56ZKamran KhanMerge request: UPnP supportUPnP support is added in connections panel for discovering internet gateway devices and enabling port-forwarding for ORPort.
No new dependencies are added, SOAP is parsed manually. A green notice is shown below the connections panel if ...UPnP support is added in connections panel for discovering internet gateway devices and enabling port-forwarding for ORPort.
No new dependencies are added, SOAP is parsed manually. A green notice is shown below the connections panel if a UPnP device is found. (Am not so sure though about the red notice in case they're not found, it looks intrusive and UPnP isn't "critical". Will remove it if that's what others think.)
Development was done in my krkhan branch where individual commits can be found. I have squashed and formatted a patch at: https://gist.github.com/1459276Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4777Proc tools should account for big-endian architectures2012-01-07T18:42:59ZDamian JohnsonProc tools should account for big-endian architecturesThe psutil project on which the arm proc tools are based caught a bug I should fix...
https://code.google.com/p/psutil/source/detail?r=1113
Evidently this occurs on OpenWRT. Thanks to swalker for pointing this out!The psutil project on which the arm proc tools are based caught a bug I should fix...
https://code.google.com/p/psutil/source/detail?r=1113
Evidently this occurs on OpenWRT. Thanks to swalker for pointing this out!Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4901Arm install fails if torctl in path2016-03-13T01:38:45ZDamian JohnsonArm install fails if torctl in pathWhen you run arm's install script it...
- checks if TorCtl is available and, if not, prompts the user to get a copy
- copies all the modules, including TorCtl, to the installation destination
If the user has python-torctl installed then...When you run arm's install script it...
- checks if TorCtl is available and, if not, prompts the user to get a copy
- copies all the modules, including TorCtl, to the installation destination
If the user has python-torctl installed then we skip fetching a local copy of torctl (since it's already available externally), then setup.py fails to copy a 'src/TorCtl' module since it's not contained within arm itself.
Issue caught by DustyDingoDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/4964Resource starvation causes arm to overwhelm server2016-03-13T01:39:37ZTracResource starvation causes arm to overwhelm serverI'm running a fast relay/exit node and as part of an audit, I ran a DoS attack upon the server which starved system resources.
Once the process was complete, it caused arm to use 51% of system ram, approx 760mb, and 99% of available CPU...I'm running a fast relay/exit node and as part of an audit, I ran a DoS attack upon the server which starved system resources.
Once the process was complete, it caused arm to use 51% of system ram, approx 760mb, and 99% of available CPU power.
The chart attached shows CPU during and after the DoS attack, and after 7.04am the light blue shows arm's affect on the server.
A second attachment is (unhelpfully a screenshot) of top showing the resources arm is using.
**Trac**:
**Username**: kerruptDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5003Connection resolver chokes on UDP connections, on OS X 10.6.82016-03-13T01:40:54ZTracConnection resolver chokes on UDP connections, on OS X 10.6.8A default arm installation doesn't show me any connections, and gives me the error message as well:
`We were unable to use any of your system's resolvers to get tor's connections. This is fine, but means that the connections page will b...A default arm installation doesn't show me any connections, and gives me the error message as well:
`We were unable to use any of your system's resolvers to get tor's connections. This is fine, but means that the connections page will be empty. This is usually permissions related so if you would like to fix this then run arm with the same user as tor (ie, "sudo -u <tor user> arm").`
Here is the log line:
`2/1/2012 19:54:42 [DEBUG] system call: lsof -wnPi | egrep "^tor *26419.*((UDP.*)|(\(ESTABLISHED\)))" (runtime: 0.02)`
I fixed it by replacing the LSOF command, using the attached patch.
**Trac**:
**Username**: mphippsDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5061Arm missing CIRC_MINOR, SIGNAL, CONF_CHANGED2016-03-13T01:41:20ZDamian JohnsonArm missing CIRC_MINOR, SIGNAL, CONF_CHANGEDNew tor versions have added several event types that TorCtl does not have handlers for. The result is that arm gives a notice that it's missing these handlers.
This is really a TorCtl issue, but I've pretty much forked it in arm due to ...New tor versions have added several event types that TorCtl does not have handlers for. The result is that arm gives a notice that it's missing these handlers.
This is really a TorCtl issue, but I've pretty much forked it in arm due to multiple unmerged patches so I should just add support to my fork.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5186Show streams on circuits2019-12-21T22:04:34ZcypherpunksShow streams on circuitsArm should show the targets of individual streams. For example, currently arm might show a new stream like this (spaces removed):
```
127.0.0.1:42051 --> 127.0.0.1:9050 UNKNOWN 0.0s (SOCKS)
```
Of course the destination is `127.0....Arm should show the targets of individual streams. For example, currently arm might show a new stream like this (spaces removed):
```
127.0.0.1:42051 --> 127.0.0.1:9050 UNKNOWN 0.0s (SOCKS)
```
Of course the destination is `127.0.0.1:9050`. That's just our socksport, and it provides no new information to the arm user. The destination should be shown as the target of the stream.
Once the stream is attached to a circuit, this binding should be shown explicitly. Note that this is not entirely trivial to do: for example, sometimes streams are reattached to different circuits (e.g. if a particular circuit does not work).
It might also be useful to indicate the status of a particular stream, e.g. "SENTRESOLVE", "SUCCEEDED", etc.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5265arm dies on "day is out of range for month"2020-06-13T14:45:07Zcypherpunksarm dies on "day is out of range for month"Leap year related?
```
$ arm
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/arm/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/local/lib/pyth...Leap year related?
```
$ arm
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/arm/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/local/lib/python2.7/site-packages/arm/cli/controller.py", line 683, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/local/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/local/lib/python2.7/site-packages/arm/cli/controller.py", line 703, in drawTorMonitor
initController(stdscr, startTime)
File "/usr/local/lib/python2.7/site-packages/arm/cli/controller.py", line 86, in initController
firstPagePanels.append(cli.logPanel.LogPanel(stdscr, expandedEvents, config))
File "/usr/local/lib/python2.7/site-packages/arm/cli/logPanel.py", line 645, in __init__
self.reprepopulateEvents()
File "/usr/local/lib/python2.7/site-packages/arm/cli/logPanel.py", line 689, in reprepopulateEvents
torEventBacklog = getLogFileEntries(setRunlevels, readLimit, addLimit, self._config)
File "/usr/local/lib/python2.7/site-packages/arm/cli/logPanel.py", line 305, in getLogFileEntries
eventTimeComp = list(time.strptime(timestamp, "%b %d %H:%M:%S"))
File "/usr/local/lib/python2.7/_strptime.py", line 454, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/local/lib/python2.7/_strptime.py", line 440, in _strptime
datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month
$ date
Wed Feb 29 01:02:38 UTC 2012
```
Above log is from FreeBSD with arm from ports, also dying on my Linux box.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5267Erroneous 'Unable to determine fingerprint' warnings2012-04-27T02:16:11ZDamian JohnsonErroneous 'Unable to determine fingerprint' warningsSebastian reported that arm is giving him a weird warning...
```
03:00:02 [ARM_WARN] Unable to determine the fingerprint for a relay in our own circuit: BUILD_FLAGS=NEED_CAPACITY [1 duplicate hidden]
```
This is because in [torTools.py...Sebastian reported that arm is giving him a weird warning...
```
03:00:02 [ARM_WARN] Unable to determine the fingerprint for a relay in our own circuit: BUILD_FLAGS=NEED_CAPACITY [1 duplicate hidden]
```
This is because in [torTools.py](https://gitweb.torproject.org/arm.git/blob/HEAD:/src/util/torTools.py#l2404) we are misparsing a key=value entry as being the path. According to the [spec](https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt#l1160) those lines have an optional path followed by several optional key=value entries.
We should simply add a check for '=' to rule it out as being a key=value entry.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5270When pre-populating logs arm only look at the very first log config option2016-03-13T01:46:53ZSebastian HahnWhen pre-populating logs arm only look at the very first log config optionConnecting to a Tor started like this:
```
./tor log "debug file /bla" log "notice file /blub"
```
arm will show debug info in its log view, but connecting to a tor started like this:
```
./tor log "notice file /blub" log "debug file /bl...Connecting to a Tor started like this:
```
./tor log "debug file /bla" log "notice file /blub"
```
arm will show debug info in its log view, but connecting to a tor started like this:
```
./tor log "notice file /blub" log "debug file /bla"
```
arm will show notice logs. Not sure what the appropriate behaviour is in either case, but having it like it is currently surely is wrong.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5281sudo -u debian-tor arm : 29.02 date problem2012-02-29T23:55:32ZTracsudo -u debian-tor arm : 29.02 date problemfollowing error appears:
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 683, in st...following error appears:
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 683, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 703, in drawTorMonitor
initController(stdscr, startTime)
File "/usr/share/arm/cli/controller.py", line 86, in initController
firstPagePanels.append(cli.logPanel.LogPanel(stdscr, expandedEvents, config))
File "/usr/share/arm/cli/logPanel.py", line 645, in __init__
self.reprepopulateEvents()
File "/usr/share/arm/cli/logPanel.py", line 689, in reprepopulateEvents
torEventBacklog = getLogFileEntries(setRunlevels, readLimit, addLimit, self._config)
File "/usr/share/arm/cli/logPanel.py", line 305, in getLogFileEntries
eventTimeComp = list(time.strptime(timestamp, "%b %d %H:%M:%S"))
File "/usr/lib/python2.7/_strptime.py", line 454, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/lib/python2.7/_strptime.py", line 440, in _strptime
datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month
**Trac**:
**Username**: mikkegenDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5652Add a GUI to introduce the connection password in arm2013-01-10T05:39:55ZTracAdd a GUI to introduce the connection password in armWhen launching arm in GUI mode (arm -g) you must introduce the password to connect to Tor in the command line. It would be great to have a graphical dialog for this.
This way it will improve its integration in the desktop.
**Trac**:
...When launching arm in GUI mode (arm -g) you must introduce the password to connect to Tor in the command line. It would be great to have a graphical dialog for this.
This way it will improve its integration in the desktop.
**Trac**:
**Username**: miceliuxhttps://gitlab.torproject.org/legacy/trac/-/issues/5678Arm crashes if it lacks write permissons for home directory2016-03-13T01:47:09ZDamian JohnsonArm crashes if it lacks write permissons for home directoryArm defaults to putting its data directory in '~/.arm'. However, in at least one reported case they lacked write permissions there resulting in...
```
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 543, in <...Arm defaults to putting its data directory in '~/.arm'. However, in at least one reported case they lacked write permissions there resulting in...
```
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 543, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 683, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 44, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 778, in drawTorMonitor
cli.wizard.showWizard()
File "/usr/share/arm/cli/wizard.py", line 313, in showWizard
relaySelection = RelayType.RESUME if manager.isTorrcAvailable() else RelayType.RELAY
File "/usr/share/arm/cli/controller.py", line 482, in isTorrcAvailable
torrcLoc = self.getTorrcPath()
File "/usr/share/arm/cli/controller.py", line 474, in getTorrcPath
return self._controller.getDataDirectory() + "torrc"
File "/usr/share/arm/cli/controller.py", line 401, in getDataDirectory
if not os.path.exists(dataDir): os.makedirs(dataDir)
File "/usr/lib/python2.6/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/ubuntu/.arm/'
```
We should make arm fall back to not having a data directory at all. This means making the getDataDirectory() callers accept a None response...
```
atagar@morrigan:~/Desktop/arm$ grep -R "getDataDirectory(" ./*
./release_rpm/src/cli/wizard.py: dataDir = cli.controller.getController().getDataDirectory()
./release_rpm/src/cli/wizard.py: dataDir = cli.controller.getController().getDataDirectory()
./release_rpm/src/cli/controller.py: def getDataDirectory(self):
./release_rpm/src/cli/controller.py: return self._controller.getDataDirectory() + "torrc"
./src/cli/wizard.py: dataDir = cli.controller.getController().getDataDirectory()
./src/cli/wizard.py: dataDir = cli.controller.getController().getDataDirectory()
./src/cli/controller.py: def getDataDirectory(self):
./src/cli/controller.py: return self._controller.getDataDirectory() + "torrc"
```
Bug reported by MoPac.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5735Warning while parsing the desktop file2012-05-02T14:06:45ZTracWarning while parsing the desktop fileWhen I install the provided .desktop file I get a warning about a missing trailing semicolon:
warning: key "Categories" is a list and does not have a semicolon as trailing character, fixing
**Trac**:
**Username**: miceliuxWhen I install the provided .desktop file I get a warning about a missing trailing semicolon:
warning: key "Categories" is a list and does not have a semicolon as trailing character, fixing
**Trac**:
**Username**: miceliuxDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5835getstr() doesn't support the delete key2019-01-10T23:09:16ZDamian Johnsongetstr() doesn't support the delete keyCurses getstr prompts are dumb, and we need to teach it how to be a sane text editor. Arm's TextInputValidator class [1] supports the left/right arrows, home, end, and esc keys. We should add support there for the delete key too.
This s...Curses getstr prompts are dumb, and we need to teach it how to be a sane text editor. Arm's TextInputValidator class [1] supports the left/right arrows, home, end, and esc keys. We should add support there for the delete key too.
This should be easy...
- add a line here to log keycodes
- run arm, navigate to the interpretor panel, hit the delete key
- see in the log what the keycode is
- add a handler for that keycode to delete the next character
Another minor bug is that hitting backspace when at the start of the line deletes the first character.
[1] https://gitweb.torproject.org/arm.git/blob/HEAD:/src/util/textInput.py#l12Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5842Expanded ORPort confuses arm2016-03-13T01:49:30ZDamian JohnsonExpanded ORPort confuses armProposal 186 greatly expands the ORPort option, so it's no longer simply just a single port number (it might have addresses, multiple ports, special attributes, etc).
This change breaks arm's GETCONF calls to figure out the ORPort. We s...Proposal 186 greatly expands the ORPort option, so it's no longer simply just a single port number (it might have addresses, multiple ports, special attributes, etc).
This change breaks arm's GETCONF calls to figure out the ORPort. We should figure out how arm wants to handle and display information about these new capabilities.
On tor's side, implementation for this was added in...
5f0a8dcd2cfcbafc3deb3a6717808b607a459dac
According to the man page this stuff doesn't yet seem to be documented which is pesky...
https://www.torproject.org/docs/tor-manual-dev.html
Issue caught by swalker.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/5973Error launching arm because UsrMove and PATH ordering2012-05-28T19:44:15ZTracError launching arm because UsrMove and PATH orderingI cannot launch arm in Fedora 17 because the UsrMove Feature [1], and the PATH ordering causes that arm is called with /bin/arm, so the wrapper script fails to set arm_base correctly.
I attach a patch which fix it for me.
[1] https://f...I cannot launch arm in Fedora 17 because the UsrMove Feature [1], and the PATH ordering causes that arm is called with /bin/arm, so the wrapper script fails to set arm_base correctly.
I attach a patch which fix it for me.
[1] https://fedoraproject.org/wiki/Features/UsrMove
**Trac**:
**Username**: miceliuxDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6132Arm missing from precise repo2012-06-12T21:27:43ZDamian JohnsonArm missing from precise repoMoving from an email from proper...
> tor-arm is not yet in the tpo precise repo.
> Do you have plans to change that?
Also, we have an 'RPM packaging' component but nothing more generic than that. Filing this under arm since it's relat...Moving from an email from proper...
> tor-arm is not yet in the tpo precise repo.
> Do you have plans to change that?
Also, we have an 'RPM packaging' component but nothing more generic than that. Filing this under arm since it's related, but maybe we should rename 'RPM packaging' to 'Packaging'?Ulises VitulliUlises Vitullihttps://gitlab.torproject.org/legacy/trac/-/issues/6351tor uptime is not reported2012-07-11T15:37:40ZTractor uptime is not reported```
arm - slush.phatservers.com (FreeBSD...) Tor 0.2.2.37 (recommended)
FILEZcom2 - 64.6.104.19:4443, Dir Port: 8080, Control Socket: /var/run/tor/torct
cpu: 0% tor, 0.7% arm mem: 0 (0%) pid: 73723 uptime:
fingerprint: AD...```
arm - slush.phatservers.com (FreeBSD...) Tor 0.2.2.37 (recommended)
FILEZcom2 - 64.6.104.19:4443, Dir Port: 8080, Control Socket: /var/run/tor/torct
cpu: 0% tor, 0.7% arm mem: 0 (0%) pid: 73723 uptime:
fingerprint: ADE3DA05124A033FF4B27956D074FFAD76A53848
flags: none
```
On FreeBSD 7 and 8. tor uptime is not reported. I didnt tried it on linux.
**Trac**:
**Username**: hsnDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6430Circuit list scares relay operators by using term 'exit'2020-06-13T03:26:49ZRoger DingledineCircuit list scares relay operators by using term 'exit'When you attach arm to your shiny new relay, and it does a reachability test by making a circuit back to itself, arm labels the third hop in that circuit the 'Exit'. Which makes at least one user freak out because he thought he set his e...When you attach arm to your shiny new relay, and it does a reachability test by making a circuit back to itself, arm labels the third hop in that circuit the 'Exit'. Which makes at least one user freak out because he thought he set his exit policy to reject *:*.
Perhaps arm should learn whether circuits are Internal or not (via the getinfo details), and call the final hop something other than Exit in that case?Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6439Arm periodically freezes2012-12-18T16:15:11ZDamian JohnsonArm periodically freezesArm version 1.4.4 had an issue where it froze after running for several days. I managed to get a reliable repro for this sort of glitch and tracked it to an interaction between readline and screen which has been fixed in 1.4.5, but the o...Arm version 1.4.4 had an issue where it froze after running for several days. I managed to get a reliable repro for this sort of glitch and tracked it to an interaction between readline and screen which has been fixed in 1.4.5, but the original problem persists.
At this point I'm at a loss for what is causing it or how to diagnose the problem since it takes days to manifest. At present I'm trying a sort of git bisect to narrow down the issue. I'll update this ticket as I narrow things down.
Commit e249dc8 (version 1.4.5.0) - broken
Commit d0bb81a (version 1.4.2.0) - testing...
Commit f403ccc (version 1.4.0.0) - worksDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6467Dialog explaining flags2019-12-21T22:38:48ZTracDialog explaining flagsArm shows that nodes are Guard nodes or not, but doesn't explain it in the documentation ( man page )
What is a guard node?
**Trac**:
**Username**: SpiderArm shows that nodes are Guard nodes or not, but doesn't explain it in the documentation ( man page )
What is a guard node?
**Trac**:
**Username**: Spiderhttps://gitlab.torproject.org/legacy/trac/-/issues/6862arm does not show uptime2012-09-17T00:26:25ZTracarm does not show uptimeI saw other ticket which put this down to not running under tor account. I am running under tor account and have also tried under root. I think the ps command is not being parsed properly.
thanxs
**Trac**:
**Username**: drforbinI saw other ticket which put this down to not running under tor account. I am running under tor account and have also tried under root. I think the ps command is not being parsed properly.
thanxs
**Trac**:
**Username**: drforbinDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6881Can't connect to sockets with password auth2016-03-13T01:54:05ZTracCan't connect to sockets with password auth>arm --debug
Unable to use socket '/home/localadmin/.tor/control': Unable to authenticate: no passphrase provided
>cat ~/.arm/log
Arm 1.4.5.0 Debug Dump, 22:45:15 09/17/2012 (EDT)
Python Version: 2.7.3
Platform: Linux (Ubuntu 12.04 pre...>arm --debug
Unable to use socket '/home/localadmin/.tor/control': Unable to authenticate: no passphrase provided
>cat ~/.arm/log
Arm 1.4.5.0 Debug Dump, 22:45:15 09/17/2012 (EDT)
Python Version: 2.7.3
Platform: Linux (Ubuntu 12.04 precise)
--------------------------------------------------------------------------------
9/17/2012 22:45:15 [DEBUG] system call: ps -A co command (runtime: 0.01)
>tor --version
Sep 17 22:46:00.606 [notice] Tor v0.2.3.22-rc (git-4a0c70a817797420) running on Linux.
Tor version 0.2.3.22-rc (git-4a0c70a817797420).
vidalia version 0.2.20
**Trac**:
**Username**: btb@bitrate.netDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6905arm 1.4.5.0 connecting to tor 0.2.4.2: ProtocolError: Badly formatted reply l...2012-09-21T17:28:35ZTracarm 1.4.5.0 connecting to tor 0.2.4.2: ProtocolError: Badly formatted reply line: unknown type 'P'
```
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/TorCtl/TorCtl.py", line 635, in _loop
isEvent, reply = self._read_reply()
File "/usr/lib/python2.7/site-packages/TorCtl/TorCtl.py", line 810, in _read...
```
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/TorCtl/TorCtl.py", line 635, in _loop
isEvent, reply = self._read_reply()
File "/usr/lib/python2.7/site-packages/TorCtl/TorCtl.py", line 810, in _read_reply
raise ProtocolError("Badly formatted reply line: unknown type %r"%tp)
ProtocolError: Badly formatted reply line: unknown type 'P'
Terminated
```
**Trac**:
**Username**: cypherpunkxDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6907arm simply assumes it is connecting to a local tor instance (which is not nec...2016-03-13T01:54:27ZTracarm simply assumes it is connecting to a local tor instance (which is not necessarily always the case)It looks like arm simply assumes to connect to a local tor instance:
- the hostname and kernel version displayed in arm's interface is not from the relay (it is from localhost).
The following warnings are also caused by this assumption...It looks like arm simply assumes to connect to a local tor instance:
- the hostname and kernel version displayed in arm's interface is not from the relay (it is from localhost).
The following warnings are also caused by this assumption:
```
[ARM_WARN] The torrc differs from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- torrc values differ
[ARM_WARN] Unable to read tor's log file: /var/log/tor/log on lines: 2, 3, 4, 6, 7, 8, 9, 10
```
Maybe arm could try to detect if it is connecting to a local tor instance by comparing the IP from the '-i' parameter with locally configured IP adresses?
An alternative method and probably easier and more reliable: If the pid (gathered via 'GETINFO process/pid') does not match one of the pids returned by 'pidof tor' it is probably not a local tor instance.
What do you think?
**Trac**:
**Username**: cypherpunkxDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/6908installing arm from debian repo: dependency issues? (arch: arm)2016-03-13T01:55:22ZTracinstalling arm from debian repo: dependency issues? (arch: arm)from /etc/apt/sources.lst
```
deb http://deb.torproject.org/torproject.org squeeze main
deb http://deb.torproject.org/torproject.org experimental-squeeze main
```
```
aptitude install tor-arm
The following NEW packages will be i...from /etc/apt/sources.lst
```
deb http://deb.torproject.org/torproject.org squeeze main
deb http://deb.torproject.org/torproject.org experimental-squeeze main
```
```
aptitude install tor-arm
The following NEW packages will be installed:
python-support{a} tor-arm{b}
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 340 kB of archives. After unpacking 1,451 kB will be used.
The following packages have unmet dependencies:
tor-arm: Depends: python-torctl (>= 20110618git-1~bpo60+1) which is a virtual package.
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1) tor-arm [Not Installed]
Accept this solution? [Y/n/q/?]
```
**Trac**:
**Username**: cypherpunkxDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7611Man page parser out of date2016-03-13T01:55:37ZDamian JohnsonMan page parser out of dateIt looks like arm's man page parser is having issues with tor's new man page. We should update the parser, preferably moving it to arm as we do so.
> 12/1/2012 20:41:56 [NOTICE] Unrecognized category in the man page: COMMAND-LINE OPTION...It looks like arm's man page parser is having issues with tor's new man page. We should update the parser, preferably moving it to arm as we do so.
> 12/1/2012 20:41:56 [NOTICE] Unrecognized category in the man page: COMMAND-LINE OPTIONS
> 12/1/2012 20:41:56 [NOTICE] Unrecognized category in the man page: GENERAL OPTIONSDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7709DisableDebuggerAttachment when running as root2016-03-13T01:56:29ZproperDisableDebuggerAttachment when running as rootArm shows the DisableDebuggerAttachment related notice, even when running as root.Arm shows the DisableDebuggerAttachment related notice, even when running as root.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7813arm doesn't consistently list connections on OpenBSD 5.12020-06-13T01:52:32ZTracarm doesn't consistently list connections on OpenBSD 5.1using 1.4.5.0 tarball will sometimes work, but it eventually hangs.
using 26ea3b0e690bbbfaf992be19829ac2fa65fc0cc7, but it hangs before drawing anything. the log seems to indicate that it hangs while calling lsof.
going with the theme ...using 1.4.5.0 tarball will sometimes work, but it eventually hangs.
using 26ea3b0e690bbbfaf992be19829ac2fa65fc0cc7, but it hangs before drawing anything. the log seems to indicate that it hangs while calling lsof.
going with the theme of calling external programs for information, i think an appropriate solution is to use the fstat(1) program instead of lsof(1), which is available in the base distribution of OpenBSD, FreeBSD, and NetBSD.
**Trac**:
**Username**: mischiefDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7837arm crashes when I open the conenctions page2016-03-13T01:16:28ZTracarm crashes when I open the conenctions pageWhen I use the left/right buttons or the menu option.
version 1.4.6_dev
```
Traceback (most recent call last):
File "arm/src/starter.py", line 497, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/s...When I use the left/right buttons or the menu option.
version 1.4.6_dev
```
Traceback (most recent call last):
File "arm/src/starter.py", line 497, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/soakednoodle/arm/src/cli/controller.py", line 569, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/soakednoodle/arm/src/cli/controller.py", line 624, in drawTorMonitor
control.redraw(False)
File "/home/soakednoodle/arm/src/cli/controller.py", line 341, in redraw
panelImpl.redraw(force)
File "/home/soakednoodle/arm/src/util/panel.py", line 408, in redraw
self.draw(self.maxX, self.maxY)
File "/home/soakednoodle/arm/src/cli/connections/connPanel.py", line 388, in draw
drawEntry = entryLine.getListingEntry(width - scrollOffset - len(prefix), currentTime, self._listingType)
File "/home/soakednoodle/arm/src/cli/connections/connEntry.py", line 290, in getListingEntry
myListing = entries.ConnectionPanelLine.getListingEntry(self, width, currentTime, listingType)
File "/home/soakednoodle/arm/src/cli/connections/entries.py", line 136, in getListingEntry
self._listingCache = self._getListingEntry(width, currentTime, listingType)
File "/home/soakednoodle/arm/src/cli/connections/connEntry.py", line 324, in _getListingEntry
(self._getListingContent(width - (12 + timeWidth) - 1, listingType), lineFormat),
File "/home/soakednoodle/arm/src/cli/connections/connEntry.py", line 545, in _getListingContent
dstAddress = self.getDestinationLabel(26, includeLocale = True)
File "/home/soakednoodle/arm/src/cli/connections/connEntry.py", line 828, in getDestinationLabel
foreignLocale = self.foreign.getLocale("??")
File "/home/soakednoodle/arm/src/cli/connections/connEntry.py", line 111, in getLocale
return conn.getInfo("ip-to-country/%s" % self.ipAddr, default)
File "/home/soakednoodle/arm/src/util/torTools.py", line 441, in getInfo
return self.controller.get_info(param, default)
File "/home/soakednoodle/arm/src/stem/control.py", line 841, in get_info
log.warn("Tor's geoip database is unavailable.")
File "/home/soakednoodle/arm/src/stem/util/log.py", line 153, in warn
def warn(message): log(Runlevel.WARN, message)
File "/home/soakednoodle/arm/src/stem/util/log.py", line 128, in log
LOGGER.log(LOG_VALUES[runlevel], message)
File "/usr/lib/python2.7/logging/__init__.py", line 1203, in log
self._log(level, msg, args, **kwargs)
File "/usr/lib/python2.7/logging/__init__.py", line 1258, in _log
self.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1268, in handle
self.callHandlers(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1308, in callHandlers
hdlr.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 748, in handle
self.emit(record)
File "/home/soakednoodle/arm/src/cli/logPanel.py", line 584, in emit
eventColor = RUNLEVEL_EVENT_COLOR[record.levelname]
KeyError: 'WARNING'
```
I think "Tor's geoip database is unavailable." shouldn't fail this hard, right?
**Trac**:
**Username**: SoakedNoodleDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7913Patch to get arm running on FreeBSD again2013-01-12T05:12:35ZfkPatch to get arm running on FreeBSD again8dbea0fa broke arm on FreeBSD for me.
$ ./arm
get_bsd_jail_id() takes exactly 1 argument (0 given)
The attached patch gets arm running again.
The jail detection appears to still be broken, but this seems to be an unrelated problem and...8dbea0fa broke arm on FreeBSD for me.
$ ./arm
get_bsd_jail_id() takes exactly 1 argument (0 given)
The attached patch gets arm running again.
The jail detection appears to still be broken, but this seems to be an unrelated problem and I rediscovered some patches in a stem branch that look relevant.
I'll file a stem ticket about this once I have more information.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7960AttributeError: 'module' object has no attribute 'camel_case'2013-01-17T06:37:22ZSathyanarayanan GunasekaranAttributeError: 'module' object has no attribute 'camel_case'I have no idea how I triggered this. I was randomly pressing keys trying to edit the torrc in arm and it crashed.
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.c...I have no idea how I triggered this. I was randomly pressing keys trying to edit the torrc in arm and it crashed.
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 635, in drawTorMonitor
cli.menu.menu.showMenu()
File "/home/gsathya/arm/src/cli/menu/menu.py", line 80, in showMenu
menu = cli.menu.actions.makeMenu()
File "/home/gsathya/arm/src/cli/menu/actions.py", line 23, in makeMenu
baseMenu.add(makeViewMenu())
File "/home/gsathya/arm/src/cli/menu/actions.py", line 89, in makeViewMenu
label = " / ".join([str_tools.camel_case(panel.getName()) for panel in pagePanels])
AttributeError: 'module' object has no attribute 'camel_case'
```
(I can't think of a proper title for this ticket, please feel free to change it)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7978AttributeError: 'LogPanel' object has no attribute 'showDuplicates'2013-01-19T05:50:52ZSathyanarayanan GunasekaranAttributeError: 'LogPanel' object has no attribute 'showDuplicates'Pressing 'm' to go to the menu causes this stacktrace. Running latest arm master(5b3906463c428647f621b65191e3be740b675494)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
...Pressing 'm' to go to the menu causes this stacktrace. Running latest arm master(5b3906463c428647f621b65191e3be740b675494)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 635, in drawTorMonitor
cli.menu.menu.showMenu()
File "/home/gsathya/arm/src/cli/menu/menu.py", line 80, in showMenu
menu = cli.menu.actions.makeMenu()
File "/home/gsathya/arm/src/cli/menu/actions.py", line 31, in makeMenu
baseMenu.add(makeLogMenu(pagePanel))
File "/home/gsathya/arm/src/cli/menu/actions.py", line 188, in makeLogMenu
if logPanel.showDuplicates: label, arg = "Hide", False
AttributeError: 'LogPanel' object has no attribute 'showDuplicates'
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7988AttributeError: 'module' object has no attribute 'getOption'2013-01-19T05:50:40ZSathyanarayanan GunasekaranAttributeError: 'module' object has no attribute 'getOption'Steps to reproduce - clueless. i don't remember the keys i pressed :|
running on latest arm master (5b3906463c428647f621b65191e3be740b675494)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line...Steps to reproduce - clueless. i don't remember the keys i pressed :|
running on latest arm master (5b3906463c428647f621b65191e3be740b675494)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 655, in drawTorMonitor
overrideKey = cli.popups.showHelpPopup()
File "/home/gsathya/arm/src/cli/popups.py", line 117, in showHelpPopup
helpOptions += entry.getHelp()
File "/home/gsathya/arm/src/cli/connections/connPanel.py", line 332, in getHelp
if self.isExitsAllowed():
File "/home/gsathya/arm/src/cli/connections/connPanel.py", line 210, in isExitsAllowed
if not torTools.getOption("ORPort", None):
AttributeError: 'module' object has no attribute 'getOption'
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7990NameError: global name 'enumeration' is not defined2013-01-19T21:51:37ZSathyanarayanan GunasekaranNameError: global name 'enumeration' is not definedsteps to reproduce -
1) menu -> view -> connections
2) menu -> connections -> fingerprint
running on latest arm master(69e196defd289e9e160cf938fc2b5228082ea5c4)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./s...steps to reproduce -
1) menu -> view -> connections
2) menu -> connections -> fingerprint
running on latest arm master(69e196defd289e9e160cf938fc2b5228082ea5c4)
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 635, in drawTorMonitor
cli.menu.menu.showMenu()
File "/home/gsathya/arm/src/cli/menu/menu.py", line 114, in showMenu
cursor.handleKey(key)
File "/home/gsathya/arm/src/cli/menu/menu.py", line 46, in handleKey
else: self._isDone = self._selection.select()
File "/home/gsathya/arm/src/cli/menu/item.py", line 198, in select
self._group.action(self._arg)
File "/home/gsathya/arm/src/cli/connections/connPanel.py", line 189, in setListingType
armConf.set("features.connection.listingType", enumeration.keys()[Listing.index_of(listingType)])
NameError: global name 'enumeration' is not defined
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/7991IOError: 'module' object has no attribute 'controller'2013-01-19T21:53:55ZSathyanarayanan GunasekaranIOError: 'module' object has no attribute 'controller'Menu ->Actions -> stop tor
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/cont...Menu ->Actions -> stop tor
```
gsathya@nub:~/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 635, in drawTorMonitor
cli.menu.menu.showMenu()
File "/home/gsathya/arm/src/cli/menu/menu.py", line 114, in showMenu
cursor.handleKey(key)
File "/home/gsathya/arm/src/cli/menu/menu.py", line 46, in handleKey
else: self._isDone = self._selection.select()
File "/home/gsathya/arm/src/cli/menu/item.py", line 62, in select
self._callback()
File "/home/gsathya/arm/src/util/torTools.py", line 1151, in shutdown
if raisedException: raise raisedException
IOError: 'module' object has no attribute 'controller'
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8004Saving log file to ~/foo.txt doesn't work as 'expected'2013-01-19T21:56:30ZSathyanarayanan GunasekaranSaving log file to ~/foo.txt doesn't work as 'expected'When you save a log file to ~/foo.txt it creates a new folder called '~' in pwd and saves a 'foo.txt' log file in that folder.
A more intuitive approach would be to expand '~' to the users $HOME dir.When you save a log file to ~/foo.txt it creates a new folder called '~' in pwd and saves a 'foo.txt' log file in that folder.
A more intuitive approach would be to expand '~' to the users $HOME dir.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8015arm torrc parsing comments wrongly2016-03-13T01:56:42ZSathyanarayanan Gunasekaranarm torrc parsing comments wronglyI have this in my log -
```
08:55:41 [ARM_WARN] The torrc differs from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- torrc value differs on line: 117
```
and in my torrc -
```
│ 115 ## Se...I have this in my log -
```
08:55:41 [ARM_WARN] The torrc differs from what tor's using. You can issue a sighup to reload the torrc values by pressing x.
- torrc value differs on line: 117
```
and in my torrc -
```
│ 115 ## Set a maximum of 4 gigabytes each way per period.
│ 116 AccountingMax 1000 GB (1073741824000)
│ 117 ## Each period starts daily at midnight (AccountingMax is per day)
│ 118 #AccountingStart day 00:00
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8046arm no longer shows inbound connects or control connection2016-03-13T01:56:55ZTracarm no longer shows inbound connects or control connectionAfter upgrading to latest git arm no longer shows inbound connects or control connection.
**Trac**:
**Username**: drforbinAfter upgrading to latest git arm no longer shows inbound connects or control connection.
**Trac**:
**Username**: drforbinDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8183arm shows client ip addresses on connection page2013-12-25T23:10:23ZTracarm shows client ip addresses on connection pageOn the connections page arm shows all incoming and outgoing connections. For connections that exit, the target ip address is scrubbed. For incoming client connections my arm version 1.4.5.0 shows the Tor client ip address. I thought to r...On the connections page arm shows all incoming and outgoing connections. For connections that exit, the target ip address is scrubbed. For incoming client connections my arm version 1.4.5.0 shows the Tor client ip address. I thought to remember me that they were scrubbed in the past. Am I wrong?
torland
**Trac**:
**Username**: torlandDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8473zero connections treated as a socket listing error2016-03-13T01:57:36ZTraczero connections treated as a socket listing errorIf I connect arm to my client-only tor node that's been idle for some time and has no connections open, arm gets confused and thinks there's a socket listing problem.
```
[ARM_NOTICE] Unable to query connections with sockstat (bsd), tryi...If I connect arm to my client-only tor node that's been idle for some time and has no connections open, arm gets confused and thinks there's a socket listing problem.
```
[ARM_NOTICE] Unable to query connections with sockstat (bsd), trying procstat (bsd)
[ARM_NOTICE] Unable to query connections with procstat (bsd), trying lsof
[ARM_NOTICE] We were unable to use any of your system's resolvers to get tor's connections. This is fine, but means that the connections page will be empty. This is usually permissions related so if you would like to fix this then run arm with the same user as tor (ie, "sudo -u <tor user> arm").
```
**Trac**:
**Username**: ultramageDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8509Tor/arm crach when run with out root preveliges.2013-03-22T08:37:51ZTracTor/arm crach when run with out root preveliges.So I have been busy the last couple of days trying to get my tor relay back online on my Ubuntu 12.04 64-bit server. But I have encountered a couple of problems I can not solve.
Running arm as a non-root gives me the simple feed back th...So I have been busy the last couple of days trying to get my tor relay back online on my Ubuntu 12.04 64-bit server. But I have encountered a couple of problems I can not solve.
Running arm as a non-root gives me the simple feed back that it can not create a torrc and torrc_bak file because of permission issues and then stop the starting procedure.
Changing the permission of torrc and torrc_bak to allow all users and groups make arm crash with the following stack trace:
(3 different occasions)
sudo -u debian-tor arm
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 700, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 773, in drawTorMonitor
cli.menu.menu.showMenu()
File "/usr/share/arm/cli/menu/menu.py", line 114, in showMenu
cursor.handleKey(key)
File "/usr/share/arm/cli/menu/menu.py", line 46, in handleKey
else: self._isDone = self._selection.select()
File "/usr/share/arm/cli/menu/item.py", line 62, in select
self._callback()
File "/usr/share/arm/cli/wizard.py", line 377, in showWizard
shutil.copy(torrcLocation, torrcLocation + "_bak")
File "/usr/lib/python2.7/shutil.py", line 118, in copy
copymode(src, dst)
File "/usr/lib/python2.7/shutil.py", line 91, in copymode
os.chmod(dst, mode)
OSError: [Errno 1] Operation not permitted: '/home/USER/.arm/torrc_bak'
--------------------------------------------------------------
sudo -u debian-tor arm
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 700, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 795, in drawTorMonitor
cli.wizard.showWizard()
File "/usr/share/arm/cli/wizard.py", line 377, in showWizard
shutil.copy(torrcLocation, torrcLocation + "_bak")
File "/usr/lib/python2.7/shutil.py", line 118, in copy
copymode(src, dst)
File "/usr/lib/python2.7/shutil.py", line 91, in copymode
os.chmod(dst, mode)
OSError: [Errno 1] Operation not permitted: '/home/USER/.arm/torrc_bak'
-----------------------------------------------------------------
sudo -u debian-tor arm
'Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 700, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 773, in drawTorMonitor
cli.menu.menu.showMenu()
File "/usr/share/arm/cli/menu/menu.py", line 114, in showMenu
cursor.handleKey(key)
File "/usr/share/arm/cli/menu/menu.py", line 46, in handleKey
else: self._isDone = self._selection.select()
File "/usr/share/arm/cli/menu/item.py", line 62, in select
self._callback()
File "/usr/share/arm/cli/wizard.py", line 377, in showWizard
shutil.copy(torrcLocation, torrcLocation + "_bak")
File "/usr/lib/python2.7/shutil.py", line 118, in copy
copymode(src, dst)
File "/usr/lib/python2.7/shutil.py", line 91, in copymode
os.chmod(dst, mode)
OSError: [Errno 1] Operation not permitted: '/home/USER/.arm/torrc_bak'
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
File "/usr/share/arm/util/connections.py", line 476, in run
File "/usr/lib/python2.7/threading.py", line 141, in release
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Running arm with "sudo arm" works perfectly, but obviously its not desired.
**Trac**:
**Username**: NahitaTor: 0.2.3.x-finalDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8687Issue with RelayBandwidthBurst handling2016-03-13T01:57:52ZDamian JohnsonIssue with RelayBandwidthBurst handlingMiłosz reports...
```
I think I've spotted a mistake in arm. It would seem that the RelayBandwidthBurst setting from torrc is interpreted as a rate (so a setting of 2MB is shown as 16Mbit/s, for example), but, as I've recently learned, ...Miłosz reports...
```
I think I've spotted a mistake in arm. It would seem that the RelayBandwidthBurst setting from torrc is interpreted as a rate (so a setting of 2MB is shown as 16Mbit/s, for example), but, as I've recently learned, that is not what the setting actually defines.
What it does define is something along the lines of a "credit limit" - the bandwidth bucket grows with RelayBandwidthRate until it hits RelayBandwidthBurst. It is the maximum amount of data that can be transferred in a single "burst", rather than the maximum bandwidth. For a less incompetent explanation than my own, see https://trac.torproject.org/projects/tor/ticket/3630#comment:14
This seems to be a common misconception within the tor community (even to the point where some comments in tor's source code indicate it!).
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8762arm crashes2013-04-22T20:33:13ZTracarm crashesThe git version of arm I cannot get to run at all..
When it runs I get a stack trace of python.
Does anyone have the latest git version running?
the older 1.4.5 versions I have running fine.
also...can I set run level logging levels i...The git version of arm I cannot get to run at all..
When it runs I get a stack trace of python.
Does anyone have the latest git version running?
the older 1.4.5 versions I have running fine.
also...can I set run level logging levels in armrc file?
**Trac**:
**Username**: drforbinDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8836arm shouldn't download stem2016-03-13T01:58:05ZSathyanarayanan Gunasekaranarm shouldn't download stemNow that stem is being packaged, there's no reason for arm to download stem. If it does, it should checkout a particular version of stem so that changes to stem's api in future versions don't cause arm to break.Now that stem is being packaged, there's no reason for arm to download stem. If it does, it should checkout a particular version of stem so that changes to stem's api in future versions don't cause arm to break.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8837AttributeError: 'module' object has no attribute 'to_camel_case'2016-03-13T01:58:20ZSathyanarayanan GunasekaranAttributeError: 'module' object has no attribute 'to_camel_case'{{{
arm :: (master) » ./arm ~/arm 1 ↵
Traceback (most recent call last...{{{
arm :: (master) » ./arm ~/arm 1 ↵
Traceback (most recent call last):
File "./src/starter.py", line 478, in <module> cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper return func(stdscr, *args, **kwds)
File "/home/gsathya/arm/src/cli/controller.py", line 635, in drawTorMonitor cli.menu.menu.showMenu()
File "/home/gsathya/arm/src/cli/menu/menu.py", line 80, in showMenu menu = cli.menu.actions.makeMenu()
File "/home/gsathya/arm/src/cli/menu/actions.py", line 27, in makeMenu baseMenu.add(makeViewMenu())
File "/home/gsathya/arm/src/cli/menu/actions.py", line 93, in makeViewMenu
label = " / ".join([str_tools.to_camel_case(panel.getName()) for panel in pagePanels])
AttributeError: 'module' object has no attribute 'to_camel_case' }}}Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8838AttributeError: 'Version' object has no attribute 'meets_requirements'2016-03-13T01:58:35ZSathyanarayanan GunasekaranAttributeError: 'Version' object has no attribute 'meets_requirements'```
arm :: (master) » ./arm ~/arm
Traceback (most recent call la...```
arm :: (master) » ./arm ~/arm
Traceback (most recent call last): File "./src/starter.py", line 478, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/home/gsathya/arm/src/cli/controller.py", line 564, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime) File "/usr/lib/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds) File "/home/gsathya/arm/src/cli/controller.py", line 618, in drawTorMonitor
control.redraw(False) File "/home/gsathya/arm/src/cli/controller.py", line 346, in redraw
panelImpl.redraw(force) File "/home/gsathya/arm/src/util/panel.py", line 405, in redraw
self.draw(self.maxX, self.maxY) File "/home/gsathya/arm/src/cli/torrcPanel.py", line 178, in draw
corrections = dict((lineNum, (issue, msg)) for lineNum, issue, msg in loadedTorrc.getCorrections())
File "/home/gsathya/arm/src/util/torConfig.py", line 797, in getCorrections
skipValidation |= (torVersion is None or not torVersion.meets_requirements(stem.version.Requirement.GETINFO_CONFIG_TEXT))
AttributeError: 'Version' object has no attribute 'meets_requirements'
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/8873UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordin...2016-03-13T01:59:04ZSathyanarayanan GunasekaranUnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)Starting arm (64816a180a29797dad6d11f8649db08632670d6a) results in a stacktrace -
```
arm :: (master) » ./arm ...Starting arm (64816a180a29797dad6d11f8649db08632670d6a) results in a stacktrace -
```
arm :: (master) » ./arm ~/arm 1 ↵
Traceback (most recent call last):
File "./src/starter.py", line 458, in <module>
_loadConfigurationDescriptions(pathPrefix)
File "./src/starter.py", line 162, in _loadConfigurationDescriptions
util.torConfig.loadOptionDescriptions()
File "/home/gsathya/arm/src/util/torConfig.py", line 195, in loadOptionDescriptions
line = uiTools.getPrintable(line)
File "/home/gsathya/arm/src/util/uiTools.py", line 127, in getPrintable
line = line.replace('\xc2', "'")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
```
Setting priority to major since I'm not even able to start arm.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9102measured bandwith reported wrong2013-06-21T21:55:39ZTracmeasured bandwith reported wrongMeasured bw is way too low number to be true.
_Bandwidth (limit: 1.2 Mb/s, burst: 2.0 Mb/s, measured: __752.0 b/s__):_
_ avg: __469.4 Kb/sec__, total: 744.1 MB _
**Trac**:
**Username**: hsnMeasured bw is way too low number to be true.
_Bandwidth (limit: 1.2 Mb/s, burst: 2.0 Mb/s, measured: __752.0 b/s__):_
_ avg: __469.4 Kb/sec__, total: 744.1 MB _
**Trac**:
**Username**: hsnDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9212arm can not parse "auto" port2016-03-13T01:59:15ZTracarm can not parse "auto" portIf you have configuration "ORPort 216.17.99.45:auto" then arm fails to parse it correctly.
`self.sortPort = int(self.foreign.getPort())ValueError: invalid literal for int() with base 10: '216.17.99.45:auto'`
**Trac**:
**Username**: hsnIf you have configuration "ORPort 216.17.99.45:auto" then arm fails to parse it correctly.
`self.sortPort = int(self.foreign.getPort())ValueError: invalid literal for int() with base 10: '216.17.99.45:auto'`
**Trac**:
**Username**: hsnDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9222Torrc's bandwidth entries are more flexible than documented2016-03-13T01:28:21ZDamian JohnsonTorrc's bandwidth entries are more flexible than documentedAccording to the tor man page the permitted format for bandwidth entries is pretty simple...
```
RelayBandwidthRate N bytes|KB|MB|GB
```
Arm parses these to check if the torrc is out of sync with tor's actual state (ie, that the user e...According to the tor man page the permitted format for bandwidth entries is pretty simple...
```
RelayBandwidthRate N bytes|KB|MB|GB
```
Arm parses these to check if the torrc is out of sync with tor's actual state (ie, that the user edited their configuration without restarting or issuing a sighup). However, a user inadvertently found that tor is actually more flexible on these lines that what the man page documents...
```
12:54 < atagar> What is the exact torrc lines that you have?
12:55 < Urban_core> RelayBandwidthRate 250Kbytes # Throttle traffic to 100KB/s (800Kbps)
12:55 < Urban_core> RelayBandwidthBurst 350Kbytes # But allow bursts up to 200KB/s (1600Kbps)
```
Once this is fixed in the tor man page please assign this to the arm component and I'll fix it on my end.https://gitlab.torproject.org/legacy/trac/-/issues/9269ARM uncaught exception if ORPort contains an IP address2016-03-13T01:59:37ZcypherpunksARM uncaught exception if ORPort contains an IP addressIf I set ORPort not to just a portnumber (like 443) but to IP:port, arm outputs a python stacktrace like this:
```
Exception in thread Thread-5:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __...If I set ORPort not to just a portnumber (like 443) but to IP:port, arm outputs a python stacktrace like this:
```
Exception in thread Thread-5:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/share/arm/cli/connections/connPanel.py", line 282, in run
self._update() # populates initial entries
File "/usr/share/arm/cli/connections/connPanel.py", line 486, in _update
newEntries.append(circEntry.CircEntry(circuitID, status, purpose, path))
File "/usr/share/arm/cli/connections/circEntry.py", line 34, in __init__
self.update(status, path)
File "/usr/share/arm/cli/connections/circEntry.py", line 53, in update
self.lines[0].setExit(exitIp, exitORPort, path[-1])
File "/usr/share/arm/cli/connections/circEntry.py", line 84, in setExit
connEntry.ConnectionLine.__init__(self, "127.0.0.1", "0", exitIpAddr, exitPort, False, False)
File "/usr/share/arm/cli/connections/connEntry.py", line 254, in __init__
self.sortPort = int(self.foreign.getPort())
ValueError: invalid literal for int() with base 10: '256.256.256.256:443'
```
(replace 256.256.256.256 with an actual IP address)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9291arm, a page with all graphs at once2016-03-13T01:59:59ZTracarm, a page with all graphs at onceI added a page that shows all graphs at once.
It is based on a collection of SubgraphPanel, a slightly modified GraphPanel intended to hold only one graph and pass most events on to a shared SubgraphHandler instance that handles order, ...I added a page that shows all graphs at once.
It is based on a collection of SubgraphPanel, a slightly modified GraphPanel intended to hold only one graph and pass most events on to a shared SubgraphHandler instance that handles order, resizing, key focus and showing/hiding of graphs.
To allow reordering of the graphs I added a reorderCurrentPanels method to Controller that reorders the active _pagePanels sublist.
**Trac**:
**Username**: simon.sDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9301add advertised bandwidth2016-03-13T02:00:18ZTracadd advertised bandwidthadd advertised bandwidth next to limit and burst
**Trac**:
**Username**: hsnadd advertised bandwidth next to limit and burst
**Trac**:
**Username**: hsnDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9403consider using PyPy with 'arm' where appropriate2016-03-13T01:25:26ZTracconsider using PyPy with 'arm' where appropriateI'm currently doing a lot of experimentation with Tor relays on single-board computers such as the Raspberry Pi. Currently, 'arm' is *very* heavy on such machines, taking a lot of memory and CPU.
It might be worth it to release a PyPy[...I'm currently doing a lot of experimentation with Tor relays on single-board computers such as the Raspberry Pi. Currently, 'arm' is *very* heavy on such machines, taking a lot of memory and CPU.
It might be worth it to release a PyPy[1] powered version if it results in significant improvements in speed and/or memory usage on resource-limited systems with ARM CPUs. Or, possibly, to build alternate packages for users of the Tor Project repos for Debian et al.
[1] http://pypy.org/
**Trac**:
**Username**: gmorehouseDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9679Man page warnings after 2.4.x nightly update to Tor2016-03-13T01:27:33ZTracMan page warnings after 2.4.x nightly update to TorAfter upgrading to the 2.4.x nightly of Tor, there's two new warnings in the TOR/ARM NOTICE section.
```
12:46:33 [ARM_NOTICE] Unrecognized category in the man page: GENERAL OPTIONS
12:46:33 [ARM_NOTICE] Unrecognized category in the m...After upgrading to the 2.4.x nightly of Tor, there's two new warnings in the TOR/ARM NOTICE section.
```
12:46:33 [ARM_NOTICE] Unrecognized category in the man page: GENERAL OPTIONS
12:46:33 [ARM_NOTICE] Unrecognized category in the man page: COMMAND-LINE OPTIONS
```
**Trac**:
**Username**: OneST8Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9747Bandwidth graph not updating2013-09-14T22:53:54ZTracBandwidth graph not updatingOn the latest version of arm, on both of my relays, my bandwidth graphs aren't updating. They have been showing the same graph for the past few days now. It continues to be the same ever after restarts of arm. It happened at about the sa...On the latest version of arm, on both of my relays, my bandwidth graphs aren't updating. They have been showing the same graph for the past few days now. It continues to be the same ever after restarts of arm. It happened at about the same time on both so I'm not sure if the issue is with arm, my servers, or my computer that I'm sshing from.
**Trac**:
**Username**: unixninja92Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/9753Torrc validation misunderstands MaxOnionQueueDelay2016-03-13T02:00:40ZDamian JohnsonTorrc validation misunderstands MaxOnionQueueDelayMoving from an email...
```
Hello,
I'm using your great tor-arm 1.4.5.0-1 with Tor 0.2.4.17-rc on Debian 7.
There is a setting "MaxOnionQueueDelay" in torrc
(see https://www.torproject.org/docs/tor-manual-dev.html.en) with a
default o...Moving from an email...
```
Hello,
I'm using your great tor-arm 1.4.5.0-1 with Tor 0.2.4.17-rc on Debian 7.
There is a setting "MaxOnionQueueDelay" in torrc
(see https://www.torproject.org/docs/tor-manual-dev.html.en) with a
default of "1750 msec".
By setting "MaxOnionQueueDelay" to "1400 msec" arm shows on
page 3/5
----------------
MaxOnionQueueDelay 1400
----------------
but on page 1/5 this warning
----------------
14:25:51 [ARM_WARN] The torrc differs from what tor's using. You
can issue a sighup to reload the torrc values by pressing x.
- torrc value differs on line: 119
----------------
Can you check it?
```Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10579arm crashes when it connects to relay with ExitPolicy reject62020-06-13T04:14:30ZTracarm crashes when it connects to relay with ExitPolicy reject6When I connect arm to a relay with a ipv6 exit policy line in torrc like
ExitPolicy reject6 [c234:5678:a001:5d::136]:22
arm crashes with the following backtrace:
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controll...When I connect arm to a relay with a ipv6 exit policy line in torrc like
ExitPolicy reject6 [c234:5678:a001:5d::136]:22
arm crashes with the following backtrace:
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 700, in startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 801, in drawTorMonitor
isKeystrokeConsumed = panelImpl.handleKey(key)
File "/usr/share/arm/cli/headerPanel.py", line 180, in handleKey
torTools.getConn().init(torctlConn)
File "/usr/share/arm/util/torTools.py", line 670, in init
self._exitPolicyChecker = self.getExitPolicy()
File "/usr/share/arm/util/torTools.py", line 1345, in getExitPolicy
result = ExitPolicy(entry, result)
File "/usr/share/arm/util/torTools.py", line 2611, in __init__
self.ipAddressBin += "".join([str((int(octet) >> y) & 1) for y in range(7, -1, -1)])
ValueError: invalid literal for int() with base 10: '[c234'
**Trac**:
**Username**: torlandDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10580arm hangs when monitoring ipv6 relay on switching to connection page2016-03-13T01:23:52ZTracarm hangs when monitoring ipv6 relay on switching to connection pageI added ipv6 support for the torland relays. When using arm I noticed that on switching to the connection page arm hangs. I could recreate the issue on 2 relays and a bridge. Once it was configured for ipv6 the connection page did not wo...I added ipv6 support for the torland relays. When using arm I noticed that on switching to the connection page arm hangs. I could recreate the issue on 2 relays and a bridge. Once it was configured for ipv6 the connection page did not work anymore.
**Trac**:
**Username**: torlandDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10701tor-arm's man page doesn't mention --socket option2016-03-13T02:00:58ZRoger Dingledinetor-arm's man page doesn't mention --socket optionAre there other things it doesn't mention also?
Also at the bottom of 'man arm' it points me to
/usr/share/doc/arm/armrc.sample
but actually that should be
/usr/share/doc/tor-arm/armrc.sample.gzAre there other things it doesn't mention also?
Also at the bottom of 'man arm' it points me to
/usr/share/doc/arm/armrc.sample
but actually that should be
/usr/share/doc/tor-arm/armrc.sample.gzDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10702arm tells users to "sudo -u debian-tor arm", which lets arm read tor's keys2020-06-13T04:14:45ZRoger Dingledinearm tells users to "sudo -u debian-tor arm", which lets arm read tor's keysin config/strings.cfg:
```
msg.setup.arm_is_running_as_root Arm is currently running with root permissions. This isn't a good idea, nor should it be necessary. Try starting arm with "sudo -u {tor_user} arm" instead.
```
Telling the user...in config/strings.cfg:
```
msg.setup.arm_is_running_as_root Arm is currently running with root permissions. This isn't a good idea, nor should it be necessary. Try starting arm with "sudo -u {tor_user} arm" instead.
```
Telling the user to run arm as the tor user exposes all of /var/lib/tor/ to arm, which is probably more than needed and likely more than expected.
At least on debian, the right answer is "sudo adduser $USER debian-tor" and then run arm as the normal user (after logout/login as needed). See #10700 for where this topic came up.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10855Arm crashes when run remotely2014-02-17T05:11:06ZDamian JohnsonArm crashes when run remotelyFiling on behalf of johnakabean...
```
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", li...Filing on behalf of johnakabean...
```
Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 578, in <module>
cli.controller.startTorMonitor(time.time() - initTime)
File "/usr/share/arm/cli/controller.py", line 700, in
startTorMonitor
curses.wrapper(drawTorMonitor, startTime)
File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/share/arm/cli/controller.py", line 720, in
drawTorMonitor
initController(stdscr, startTime)
File "/usr/share/arm/cli/controller.py", line 86, in initController
firstPagePanels.append(cli.logPanel.LogPanel(stdscr,
expandedEvents, config))
File "/usr/share/arm/cli/logPanel.py", line 652, in __init__
self.reprepopulateEvents()
File "/usr/share/arm/cli/logPanel.py", line 696, in
reprepopulateEvents
torEventBacklog = getLogFileEntries(setRunlevels, readLimit,
addLimit, self._config)
File "/usr/share/arm/cli/logPanel.py", line 251, in
getLogFileEntries
sIndex = runlevels.index(loggingTypes)
ValueError: '[HTTP,OR,PROTOCOL,EDGE,APP,CIRC]NOTICE' is not in list
```
If you connect to tor's console remotely, of course ARM is unable to
read the log. I see by the python that its supposed to say, in this
case, "unable to read tor's logfile" but, instead, it crashes with the
above. The workaround is to disable it executing this part of pything,
by putting, in the armrc, "features.panels.show.log false"Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/10927Arm crashes with --gui option when not able to read local tor logs, as a resu...2014-02-17T09:41:44ZTracArm crashes with --gui option when not able to read local tor logs, as a result of remotely connecting to tor control port from another host:Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 574, in <module>
gui.controller.start_gui()
File "/usr/share/arm/gui/controller.py", line 61, in start_gui
controller = GuiController()
File "/usr/sh...Traceback (most recent call last):
File "/usr/share/arm/starter.py", line 574, in <module>
gui.controller.start_gui()
File "/usr/share/arm/gui/controller.py", line 61, in start_gui
controller = GuiController()
File "/usr/share/arm/gui/controller.py", line 37, in !__init!__
self.panels[panelClass] = panelClass(self.builder)
File "/usr/share/arm/gui/logPanel.py", line 42, in !__init!__
torEventBacklog = deque(getLogFileEntries(setRunlevels, readLimit, addLimit, self._config))
File "/usr/share/arm/cli/logPanel.py", line 251, in getLogFileEntries
sIndex = runlevels.index(loggingTypes)
ValueError: '[HTTP,OR,PROTOCOL,EDGE,APP,CIRC]NOTICE' is not in list
I have tried, as a guess, adding "Log [HTTP,OR,PROTOCOL,EDGE,APP,CIRC]NOTICE stdout" in the torrc with no luck. The arm version is debian wheezy repository default (1.4.5.0 [released April 28, 2012])
**Trac**:
**Username**: johnakabeanDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/11252www.atagar.com only supports RC4 cipher2016-02-07T09:41:47ZDamian Johnsonwww.atagar.com only supports RC4 cipher[Arm's website](http://www.atagar.com/arm) is hosted on my domain. Recently-ish Dreamhost added SNI (Server Name Indication), allowing me to **finally** support TLS on their shared hosting. I just got a request for the domain to support ...[Arm's website](http://www.atagar.com/arm) is hosted on my domain. Recently-ish Dreamhost added SNI (Server Name Indication), allowing me to **finally** support TLS on their shared hosting. I just got a request for the domain to support better cyphers...
```
Hey
May I humbly suggest that you really update your SSL/TLS configuration
on atagar.com. You only support the RC4 cipher, which is considered
insecure and is at this point being phased out.
Look at the result here:
https://www.ssllabs.com/ssltest/analyze.html?d=atagar.com
Also, since you're directly linked from torproject.org you should set
a good example.
Search for 'Perfect forward secrecy apache' to find a good
configuration.
Hope this you'll have a look at it, thanks! :)
```
I'm not sure if this is an option with Dreamhost's setup, but I should take a peek.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/11886arm not working, raspbian jessie (testing)2014-05-12T21:35:05ZTracarm not working, raspbian jessie (testing)I did "sudo apt-get update && sudo apt-get upgrade" at 8 may ago, and it then did:
Start-Date: 2014-05-08 19:22:41
Commandline: apt-get upgrade
Upgrade: python-torctl:armhf (20110618git-1, 20130920git-1)
End-Date: 2014-05-08 19:22:51
...I did "sudo apt-get update && sudo apt-get upgrade" at 8 may ago, and it then did:
Start-Date: 2014-05-08 19:22:41
Commandline: apt-get upgrade
Upgrade: python-torctl:armhf (20110618git-1, 20130920git-1)
End-Date: 2014-05-08 19:22:51
Start-Date: 2014-05-08 19:27:06
Commandline: apt-get autoremove
Remove: python-socksipy:armhf (1.0-2)
End-Date: 2014-05-08 19:27:11
Now this happends:
pi@raspberrypi ~ $ arm
Arm requires TorCtl to run, but it's unavailable. Would you like to install it? (y/n): y
Unable to install TorCtl, sorry
pi@raspberrypi ~ $ sudo apt-get install python-torctl
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-torctl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
**Trac**:
**Username**: justaguyDamian JohnsonDamian Johnson