[tor-bugs] #6235 [Tor Client]: Unable to release control connections on OSX

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Sun Jun 24 22:38:29 UTC 2012


#6235: Unable to release control connections on OSX
------------------------+---------------------------------------------------
 Reporter:  atagar      |          Owner:     
     Type:  defect      |         Status:  new
 Priority:  major       |      Milestone:     
Component:  Tor Client  |        Version:     
 Keywords:              |         Parent:     
   Points:              |   Actualpoints:     
------------------------+---------------------------------------------------
 Hi Nick. I've spent this whole weekend trying to diagnose an OSX specific
 integ error with stem without much success...
 https://trac.torproject.org/5917

 I've finally narrowed the issue down to the following (note that you don't
 need stem at all, I'm just using it to start and stop the tor process)...

 {{{
 import os
 import socket
 import signal

 import stem.process

 tor_process = stem.process.launch_tor_with_config(
   tor_cmd = "../tor/src/or/tor",
   config = {'ControlPort': '7777'},
 )

 for i in xrange(5000):
   # connect to control socket
   control_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   control_socket.connect(('127.0.0.1', 7777))

   # disconnect
   control_socket.shutdown(socket.SHUT_RDWR)
   control_socket.close()

 try:
   tor_process.kill()
 except AttributeError:
   # python 2.5 or earlier
   os.kill(tor_process.pid, signal.SIGTERM)
 }}}

 On Linux this works perfectly. However, on a mac (I'm running on
 macppc.torproject.org) the control socket goes into CLOSE_WAIT status, and
 eventually we're unable to make further connections...

 {{{
 74-95-122-145-Connecticut:stem atagar$ lsof -wnP | grep "127.0.0.1:7777"
 Python  15052 atagar    5u    IPv4 0x23f966c        0t0      TCP
 127.0.0.1:59076->127.0.0.1:7777 (SYN_SENT)
 tor     15055 atagar    5u    IPv4 0x618f270        0t0      TCP
 127.0.0.1:7777 (LISTEN)
 tor     15055 atagar   13u    IPv4 0x616f270        0t0      TCP
 127.0.0.1:7777->127.0.0.1:58947 (CLOSE_WAIT)
 }}}

 {{{
 74-95-122-145-Connecticut:stem atagar$ python gloom.py
 Traceback (most recent call last):
   File "gloom.py", line 15, in <module>
     control_socket.connect(('127.0.0.1', 7777))
   File "<string>", line 1, in connect
 socket.error: (60, 'Operation timed out')
 }}}

 At this point I'm completely out of ideas. Is this a Tor bug with
 releasing connections? An inability with python to actually shut down a
 socket? Am I simply doing this wrong?

 This issue has been encountered by Karsten, Sathyanarayanan, and me
 interdependently (all on macs), and at present prevents Stem's integ tests
 from running there. Feel free to lower the priority or reassign back to me
 if I'm simply being stupid. :)

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


More information about the tor-bugs mailing list