• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Clearing Connections
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Clearing Connections


  • Subject: Clearing Connections
  • From: "Gerriet M. Denkmann" <email@hidden>
  • Date: Tue, 3 Oct 2006 13:15:50 +0200

I have a computer called B which has port 53001 open in its firewall.

And a programm on computer A does from time to time:
NSConnection *outConnection = [[NSConnection alloc] initWithReceivePort: nil sendPort: porT ];


outConnection now has a send port which uses port 53001 and a receive port which uses some port - let's call it 49175.

now my programm does (1):
NSDistantObject *serverProxy = [ outConnection rootProxy ];	

then it (2) converses with serverProxy.

finally it does (3):
[ outConnection invalidate ]; [ outConnection release ];

So far so good.

If after (1) we do: lsof -i 4 -a  -p <pid of  programm on A>  we see:

... 20u IPv4 0x02d47b38 0t0 TCP *:49175 (LISTEN)
... 21u IPv4 0x032e1de8 0t0 TCP 192.42.172.3:49176- >192.42.172.5:53001 (ESTABLISHED)


On computer B we get:
... 23u IPv4 0x02667b70 0t0 TCP 192.42.172.5:53001->apfel: 49176 (ESTABLISHED)


192.42.172.3 = apfel = computer A
192.42.172.5 = computer B

And some time after (3) we see that these lines have disappeared.

"Some time" is either immediately, or some minutes, or even some hours.

In the latter case computer B eventually will have:
... 23u IPv4 0x02667b70 0t0 TCP 192.42.172.5:53001->apfel: 49176 (ESTABLISHED)
... 38u IPv4 0x02762880 0t0 TCP 192.42.172.5:53001->apfel: 49178 (ESTABLISHED)
... 69u IPv4 0x026772a0 0t0 TCP 192.42.172.5:53001->apfel: 49180 (ESTABLISHED)
... 98u IPv4 0x02685e10 0t0 TCP 192.42.172.5:53001->apfel: 49182 (ESTABLISHED)
... 111u IPv4 0x026834f0 0t0 TCP 192.42.172.5:53001->apfel: 49184 (ESTABLISHED)
... 128u IPv4 0x0268b540 0t0 TCP 192.42.172.5:53001->apfel: 49186 (ESTABLISHED)
... 145u IPv4 0x026a2b70 0t0 TCP 192.42.172.5:53001->apfel: 49188 (ESTABLISHED)
... 170u IPv4 0x026a7880 0t0 TCP 192.42.172.5:53001->apfel: 49190 (ESTABLISHED)
... 187u IPv4 0x026a4690 0t0 TCP 192.42.172.5:53001->apfel: 49192 (ESTABLISHED)
... 202u IPv4 0x027219d0 0t0 TCP 192.42.172.5:53001->apfel: 49194 (ESTABLISHED)
... 229u IPv4 0x027289d0 0t0 TCP 192.42.172.5:53001->apfel: 49196 (ESTABLISHED)
... 255u IPv4 0x02748100 0t0 TCP 192.42.172.5:53001->apfel: 49198 (ESTABLISHED)


Now the programm on A will hang on (1). It does not get a timeout, it just hangs with:
#0 0x9000ab48 in mach_msg_trap ()
#1 0x9000aa9c in mach_msg ()
#2 0x907dcb78 in __CFRunLoopRun ()
#3 0x907dc47c in CFRunLoopRunSpecific ()
#4 0x92952598 in -[NSConnection sendInvocation:] ()
#5 0x92951034 in -[NSObject(NSForwardInvocation) forward::] ()
#6 0x90a440b0 in _objc_msgForward ()
#7 0x0023de14 in --- the line with: serverProxy = [ outConnection rootProxy ]-----


And when computer B now wants to write something to a file it gets: "POSIX error: Too many open files".
Yes, getdtablesize() returns 256, but there are many unused slots which could and should be used.


The question now: what can be done?
How do I get computer B not to delay removing invalidated and closed connections from its list for more than an hour?


Kind regards,

Gerriet.

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Prev by Date: Two lines in a single table column
  • Next by Date: Copy Files with FSCopyObject?
  • Previous by thread: Re: Two lines in a single table column
  • Next by thread: Copy Files with FSCopyObject?
  • Index(es):
    • Date
    • Thread