[tor-bugs] #13807 [Stem]: Use fstat connection resolution (was: Arm fails to list connections on OpenBSD due to lsof permissions error)

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Nov 22 21:37:57 UTC 2014


#13807: Use fstat connection resolution
-------------------------+-------------------------------------------------
     Reporter:  mmcc     |      Owner:  atagar
         Type:  defect   |     Status:  new
     Priority:  normal   |  Milestone:
    Component:  Stem     |    Version:
   Resolution:           |   Keywords:  OpenBSD, lsof, fstat, files,
Actual Points:           |  permissions
       Points:           |  Parent ID:
-------------------------+-------------------------------------------------
Changes (by atagar):

 * component:  arm => Stem


Comment:

 Hi mmcc. I'm gonna swap this to Stem. You're right that arm is being
 rewritten, and one of the bits that's already moved to Stem is connection
 resolution...

 https://stem.torproject.org/tutorials/east_of_the_sun.html#connection-
 resolution
 https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/connection.py

 If Stem supports fstat connection resolution then the next release of arm
 will take advantage of it too. That said, I don't have an OpenBSD system
 nor am I familiar with fstat. In the past I've made VMs or got ssh access
 to FreeBSD and Gentoo systems to track down this sort of issue. It was
 painful though to say the least, and left me swearing 'never again'.

 Since then I've taken a 'patches welcome' approach. Fantastic folks
 stepped forward to add FreeBSD sockstat/procstat support and I'd be
 delighted to get patches for OpenBSD fstat support too.

 If you'd care to take this on then it shouldn't be too hard. I expect it
 would involve...

 1. Adding a new
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/connection.py#l55
 BSD_FSTAT Resolver enumeration] and RESOLVER_COMMAND.
 1. Use this as the
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/connection.py#l235
 type of resolver used on OpenBSD] (just need to
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/system.py#l144
 check platform.system()]).
 1. Teach Stem to
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/connection.py#l132
 parse the fstat output].
 1. Add a
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/test/unit/util/connection.py
 unit test for the resolver]. Naturally feel free to tweak anything you
 think is private, but please try to keep it looking as close to real
 output as you can.

 On a side note I'm a little curious if
 [https://stem.torproject.org/faq.html#how-do-i-run-the-tests Stem's integ
 tests] pass on your platform. I'm a little suspicious that we could
 improve OpenBSD support in
 [https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/system.py
 stem.util.system] which gets things like system resource usage. Not sure.
 OpenBSD is one of the least tested platforms for both Stem and arm. I'd
 **love** to have someone maintain Stem for OpenBSD.

 Cheers! -Damian

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13807#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list