Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2016-03-13T01:27:33Zhttps://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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 Johnson