Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2019-12-21T22:25:20Zhttps://gitlab.torproject.org/legacy/trac/-/issues/28334Text fields wider than the screeen cropped2019-12-21T22:25:20ZTracText fields wider than the screeen croppedNyx 2.0.4 at Linux.
The first problem exist with all options: if I select some option, then press `Enter` (so, start editing it), and then press `ESC`, all old values for the option are erased (value becomes `none`). This behavior confu...Nyx 2.0.4 at Linux.
The first problem exist with all options: if I select some option, then press `Enter` (so, start editing it), and then press `ESC`, all old values for the option are erased (value becomes `none`). This behavior confuses users, because normally `ESC` should keep old version of values. To my opinion, if I really need to make it `none` I should manually remove old values (or press `ctrl+u`) and then press `Enter`.
The second problem exist with options which have very long list of values. For example, you can consider `torrc` with a long list of `SocksPort` options or a long list of values for `ExcludeNodes` option. If you select such option in configuration editor (press `Enter`), only the first part of values' list will be shown. Other lengthy part of values list will not be printed and will not be accessible for editing (it is considered as non-existing). I guess it is related to the problem of line splitting ([[https://trac.torproject.org/projects/tor/ticket/28297|#28297]]). Since the first part of accessible values may end at any character (when end of line is reached), if I don't do anything, but just print `Enter`, I may get an error
`Unacceptable option value: Invalid SocksPort configuration (press any key)`
As `nyx` gives to Tor wrong option values, there are many warnings in a log file of `tor` itself, e.g.:
`Controller gave us config lines that didn't validate: Invalid SocksPort configuration`
Thus, if you accidentally press `Enter` on any option with too long list of values, you get trapped in inescapable situation: `ESC` will erase all old values, `Enter` will change them too (possibly with some errors). It is impossible to preserve status quo.
**Trac**:
**Username**: wagonDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/27517./run_nyx shows stem's debug output2019-12-21T22:20:23Ztraumschule./run_nyx shows stem's debug outputI did not find out why I see stem's debug output with ./run_nyx from a fresh clone:
```
nyx_fresh$ ./run_nyx -d nyx.log
TRACE:stem:Nyx 2.0.4-dev Debug Dump
Stem Version: 1.6.0
Python Version: 2.7.15
Platform: Linux (debian buster/sid )
...I did not find out why I see stem's debug output with ./run_nyx from a fresh clone:
```
nyx_fresh$ ./run_nyx -d nyx.log
TRACE:stem:Nyx 2.0.4-dev Debug Dump
Stem Version: 1.6.0
Python Version: 2.7.15
Platform: Linux (debian buster/sid )
--------------------------------------------------------------------------------
Nyx Configuration (/home/user/.nyx/config):
[file doesn't exist]
--------------------------------------------------------------------------------
Saving a debug log to nyx.log, please check it for sensitive information before sharing it.
NOTICE:stem:No nyxrc loaded, using defaults. You can customize nyx by placing a configuration file at /home/user/.nyx/config (see https://nyx.torproject.org/nyxrc.sample for its options).
TRACE:stem:config entry 'tor_chroot' not found, defaulting to ''
TRACE:stem:Sent to tor: PROTOCOLINFO 1
TRACE:stem:Received from tor:
250-PROTOCOLINFO 1
250-AUTH METHODS=COOKIE,SAFECOOKIE,HASHEDPASSWORD COOKIEFILE="/var/run/tor/control.authcookie"
250-VERSION Tor="0.3.5.0-alpha-dev"
250 OK
Tor controller password:
```
(follow-up of #27350)Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/18708Welcome page2019-12-21T22:17:41ZDamian JohnsonWelcome pageI've been impressed at how much Nyx users miss. Hell, I've met longtime users that didn't even know you could press left/right for additional pages. They thought Nyx had just one!
To be fair Nyx's discoverability sucks. I've tried to ke...I've been impressed at how much Nyx users miss. Hell, I've met longtime users that didn't even know you could press left/right for additional pages. They thought Nyx had just one!
To be fair Nyx's discoverability sucks. I've tried to keep the most important information simple so it can be displayed on a single line...
```
m: menu, p: pause, h: page help, q: quit
```
But maybe we should show a one-time popup to first time Nyx users that explains how Nyx works. We could then persist a 'shown' flag in their home directory to suppress future popups.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/18694Native Windows Support2019-12-21T22:14:32ZDamian JohnsonNative Windows SupportNyx can probably run in Cygwin, but native Windows support requires...
* Curses alternative. [Python has a ticket for adding Windows support](https://bugs.python.org/issue2889) but looks unlikely to get traction. Forerunner seems to be...Nyx can probably run in Cygwin, but native Windows support requires...
* Curses alternative. [Python has a ticket for adding Windows support](https://bugs.python.org/issue2889) but looks unlikely to get traction. Forerunner seems to be [PDCurses](https://github.com/wmcbrine/PDCurses).
* Resource usage information. Stem already [supports Windows connection resolution](https://gitweb.torproject.org/stem.git/commit/?id=5b26c692) but we need to expand [Nyx's tracker](https://gitweb.torproject.org/nyx.git/tree/nyx/tracker.py#n186) to retrieve cpu/memory usage on Windows too.
Maybe some other gotchas too. [Windows is adding a *nyx commandline](http://arstechnica.com/information-technology/2016/03/ubuntus-bash-and-linux-command-line-coming-to-windows-10/) which might be interesting to keep an eye on.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/18547Add hostnames and geoip to connection panel2019-12-21T22:10:30ZDamian JohnsonAdd hostnames and geoip to connection panelMany releases ago Nyx [showed hostnames on the connection panel](https://gitweb.torproject.org/nyx.git/tree/src/util/hostnames.py?id=1.4.5.0), but dropped this because it leaked our connections to our DNS provider. We can still get this ...Many releases ago Nyx [showed hostnames on the connection panel](https://gitweb.torproject.org/nyx.git/tree/src/util/hostnames.py?id=1.4.5.0), but dropped this because it leaked our connections to our DNS provider. We can still get this information, but it must be on **every** relay or none at all.
Turns out Onionoo already supports exactly what we want! In particular here's the query we want...
[https://onionoo.torproject.org/details?fields=fingerprint,country,country_name,region_name,city_name,host_name&running=true&type=relay](https://onionoo.torproject.org/details?fields=fingerprint,country,country_name,region_name,city_name,host_name&running=true&type=relay)
Note that [Onionoo supports gzip compression](https://onionoo.torproject.org/protocol.html) and we want to take advantage since it drops the size of our replies from 1.5 MB to 432.6 KB.
For this we want a new **Daemon subclass** in **tracker.py**. This class would have a single **relay_details(fingerprint)** method that returns a struct with these attributes. If we meet the following two constraints then it calls Onionoo to update our cache...
1. We make a request for a fingerprint the cache doesn't have.
2. It's been over an hour since the relays_published date in our last reply (like the consensus Onionoo updates hourly, so no point in requesting more frequently).
Note that we might not want all of these geoip fields (we'll need to fiddle with the panel to see what is nice to have).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/18540Detect when ACS doesn't work2019-12-21T21:58:58ZDamian JohnsonDetect when ACS doesn't workProbably the most common annoying visual bug I've seen is broken curses ACS support. This causes us to show 'mwqqqqqqqqqqqqq' for window borders...
![https://www.atagar.com/transfer/tmp/acs_error.png](https://www.atagar.com/transfer/tmp...Probably the most common annoying visual bug I've seen is broken curses ACS support. This causes us to show 'mwqqqqqqqqqqqqq' for window borders...
![https://www.atagar.com/transfer/tmp/acs_error.png](https://www.atagar.com/transfer/tmp/acs_error.png)
We can sidestep this by showing ASCII pipes instead ('+--------+'), but to do that we need to be able to **detect** when ACS is broken. Thus far I'm not sure how to do this - tips welcome...Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/32596Python 3.8.0 RuntimeError: dictionary keys changed during iteration2019-11-25T06:15:51ZTracPython 3.8.0 RuntimeError: dictionary keys changed during iterationI was using python 3.7.4 and update python to 3.8.0
and try to use tor, this error is showed (when 3.7.4 working good)
File "/usr/lib/python3.8/site-packages/stem/control.py", line 1100, in authenticate
stem.connection.authenticate(self...I was using python 3.7.4 and update python to 3.8.0
and try to use tor, this error is showed (when 3.7.4 working good)
File "/usr/lib/python3.8/site-packages/stem/control.py", line 1100, in authenticate
stem.connection.authenticate(self, *args, **kwargs)
File "/usr/lib/python3.8/site-packages/stem/connection.py", line 592, in authenticate
controller._post_authentication()
File "/usr/lib/python3.8/site-packages/stem/control.py", line 3902, in _post_authentication
owning_pid = self.get_conf('__OwningControllerProcess', None)
File "/usr/lib/python3.8/site-packages/stem/control.py", line 2170, in get_conf
entries = self.get_conf_map(param, default, multiple)
File "/usr/lib/python3.8/site-packages/stem/control.py", line 2273, in get_conf_map
for key in reply:
RuntimeError: dictionary keys changed during iteration
Smialar issues other github project https://github.com/vispy/vispy/issues/1729
**Trac**:
**Username**: iiwwnnaaDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/32538Detect package manager in case of not finding pkg python-stem2019-11-19T01:33:53ZTracDetect package manager in case of not finding pkg python-stemIf the python-stem package is not found in the system, an attempt will be made to detect the system package manager.
https://github.com/bounteous/nyx/commit/96a02d85f108538e3abf8efda43f5daa01a99cc8
**Trac**:
**Username**: bounteous17If the python-stem package is not found in the system, an attempt will be made to detect the system package manager.
https://github.com/bounteous/nyx/commit/96a02d85f108538e3abf8efda43f5daa01a99cc8
**Trac**:
**Username**: bounteous17Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/32051Nyx unable to read tor's authentication cookie2019-10-25T22:18:26ZcypherpunksNyx unable to read tor's authentication cookieUpagraded to Mint 19 from 18.3 and unable to use arm anymore. Installed Nyx and receiving the following error:
We were unable to read tor's authentication cookie...
Path: /run/tor/control.authcookie
Issue: Authentication failed: un...Upagraded to Mint 19 from 18.3 and unable to use arm anymore. Installed Nyx and receiving the following error:
We were unable to read tor's authentication cookie...
Path: /run/tor/control.authcookie
Issue: Authentication failed: unable to read '/run/tor/control.authcookie' ([Errno 13] Permission denied: '/run/tor/control.authcookie')
ControlPort 9051
CookieAuthentication 1
Hope you can assist.
ThanksDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/30750Cosmetic looks label alpha dev ico metrics terminal NYX2019-06-05T17:31:39ZTracCosmetic looks label alpha dev ico metrics terminal NYXHello, you can return description label **NEW** in NYX and nice icon lab in metrics relay site or think differently? We running alpha dev relays bridge and hs service and new labels _unrecommended_ in terminal look aren't nice.
Please ...Hello, you can return description label **NEW** in NYX and nice icon lab in metrics relay site or think differently? We running alpha dev relays bridge and hs service and new labels _unrecommended_ in terminal look aren't nice.
Please consider testers and researchers.
It's just a cosmetic looks for NYX and metrics.
Previously was label Tor 0.4.1.1-alpha-dev (NEW)
**Trac**:
**Username**: agnoxhttps://gitlab.torproject.org/legacy/trac/-/issues/24958Log about DisableDebuggerAttachment2019-03-29T00:41:46ZDamian JohnsonLog about DisableDebuggerAttachmentOne of the neat new features of Nyx is that it can now get connection information despite DisableDebuggerAttachment. However, this requires proc contents that aren't available on BSD (FreeBSD, OSX, etc). On those platforms we should resu...One of the neat new features of Nyx is that it can now get connection information despite DisableDebuggerAttachment. However, this requires proc contents that aren't available on BSD (FreeBSD, OSX, etc). On those platforms we should resume giving a log notice so folks know what's up.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/29431nyx tool not working2019-02-10T01:49:40Zcypherpunksnyx tool not workingThere is a file not found error, see below
Traceback (most recent call last): File "/usr/bin/nyx", line 11, in <module> load_entry_point('nyx==2.0.4', 'cons...There is a file not found error, see below
Traceback (most recent call last): File "/usr/bin/nyx", line 11, in <module> load_entry_point('nyx==2.0.4', 'console_scripts', 'nyx')() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/lib/python3/dist-packages/nyx/__init__.py", line 46, in <module> import distutils.spawn ModuleNotFoundError: No module named 'distutils.spawn'Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/29078nyx values do differ from stem native example2019-01-18T22:17:27Ztoralfnyx values do differ from stem native exampleI do run 2 Tor relaays at the same hardware at 2 different ports. Netstat reports about 12,000 connections.
Stem 1.7.1 gives:
```
mr-fox ~ # for p in 9051 29051 ; do python /usr/share/doc/stem-1.7.1/_static/example/relay_connections.py -...I do run 2 Tor relaays at the same hardware at 2 different ports. Netstat reports about 12,000 connections.
Stem 1.7.1 gives:
```
mr-fox ~ # for p in 9051 29051 ; do python /usr/share/doc/stem-1.7.1/_static/example/relay_connections.py --ctrlport $p; done
0.3.5.7 uptime: 08:25:03 flags: Fast, Guard, Running, Stable, V2Dir, Valid
+------------------------------+------+------+
| Type | IPv4 | IPv6 |
+------------------------------+------+------+
| Inbound to our ORPort | 2777 | 6 |
| Inbound to our DirPort | 3 | 0 |
| Inbound to our ControlPort | 1 | 0 |
| Outbound to a relay | 3235 | 0 |
| Outbound uncategorized | 8 | 0 |
+------------------------------+------+------+
| Total | 6024 | 6 |
+------------------------------+------+------+
0.3.5.7 uptime: 08:25:05 flags: Fast, Guard, Running, Stable, V2Dir, Valid
+------------------------------+------+------+
| Type | IPv4 | IPv6 |
+------------------------------+------+------+
| Inbound to our ORPort | 2866 | 2 |
| Inbound to our ControlPort | 2 | 0 |
| Outbound to a relay | 3447 | 0 |
| Outbound uncategorized | 16 | 0 |
+------------------------------+------+------+
| Total | 6331 | 2 |
+------------------------------+------+------+
```
whilst nyx 2.0.4 gives:
```
sudo -u tor /bin/bash -c "/usr/bin/nyx -i 29051"
...
Connections (2853 inbound, 6690 outbound, 1 control):
```
and
```
sudo -u tor /bin/bash -c "/usr/bin/nyx -i 9051"
...
Connections (2787 inbound, 6694 outbound, 1 control):
```
respectively.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/26099Missing dependency 'python3-distutils' for 'nyx' package from deb.torproject....2019-01-11T19:27:48ZcypherpunksMissing dependency 'python3-distutils' for 'nyx' package from deb.torproject.org for bionicI've obtained Tor from the following source:
```
deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org xenial main
```
However I had to manually install python3-distuils and python3...I've obtained Tor from the following source:
```
deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org xenial main
```
However I had to manually install python3-distuils and python3-distutils-extra in order to start Nyx. It would otherwise fail to start saying that it's missing the module distutils.spawn
Ubuntu 18.04.0Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/18991Use HIBERNATION_STATUS in header panel2019-01-11T19:26:27ZDamian JohnsonUse HIBERNATION_STATUS in header panelNyx's header panel polls the control port for hibernation information. Tor 0.2.9.x adds a new HIBERNATION_STATUS event we can listen to instead to cut down on the GETINFO queries we make.
This is a very small change to our load on the c...Nyx's header panel polls the control port for hibernation information. Tor 0.2.9.x adds a new HIBERNATION_STATUS event we can listen to instead to cut down on the GETINFO queries we make.
This is a very small change to our load on the control port (one GETINFO request every five seconds), so not really a high priority. If somebody wants to do this then great, but I'll probably wait until tor versions prior to 0.2.9.x are deprecated to avoid the headache of 'if version x to this, if y do that'.Damian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/24288install process does not include man page2019-01-11T19:05:27ZStefani Banerianinstall process does not include man pageinstallation of nyx could place the nyx.1 man page in /usr/local/man/man1/ for example.
optional would be a nyxrc example file with commented-out defaultsinstallation of nyx could place the nyx.1 man page in /usr/local/man/man1/ for example.
optional would be a nyxrc example file with commented-out defaultsDamian JohnsonDamian Johnsonhttps://gitlab.torproject.org/legacy/trac/-/issues/16431Arm Graph in Putty is Black2019-01-11T19:03:34ZTracArm Graph in Putty is BlackHi my arm graph is currently black (on black screen). I only can see the graphs if I am marking everything. (See attachments)
Some days ago everything worked as expected.
**Trac**:
**Username**: Sk!dHi my arm graph is currently black (on black screen). I only can see the graphs if I am marking everything. (See attachments)
Some days ago everything worked as expected.
**Trac**:
**Username**: Sk!dDamian 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/28498Unable to refresh connection circuit2019-01-11T17:57:53ZTracUnable to refresh connection circuitUnder slow internet connection it takes sometime to establish all the circuit. When nyx gets started and connection tab is accessed, it show intial circuits created upto that time and show remaining as building. After sometime, when thos...Under slow internet connection it takes sometime to establish all the circuit. When nyx gets started and connection tab is accessed, it show intial circuits created upto that time and show remaining as building. After sometime, when those connections are built, nyx does not refresh those new connections. I have to manually close nyx and reopen it. It would be better to have option in nyx to refresh connections.
Thanks
**Trac**:
**Username**: cyberpunksDamian JohnsonDamian Johnson