[CalendarServer-dev] Exception in recvfd --was: Re: continuing work on FreeBSD ports

Axel Rau Axel.Rau at Chaos1.DE
Tue Feb 19 13:28:50 PST 2013


Hi,

the break came from finding and reading "Unix Network Programming" by Stevens/Fenner/Rudoff. (-;

Am 14.02.2013 um 11:37 schrieb Fredrik Unger:

> From the top of my head I find it strange that just 3 bytes was received.
> If I remember correctly my tests sent more (with sendmsg).
I think, the reason is, that *no* ancillary data is being sent:
---
recvmsg entered.
recvmsg: fd 0x1b[4] flags 0x0 result 0x1
return from recvmsg
recvmsg entered.
recvmsg: fd 0x19[4] flags 0x0 result 0x1
return from recvmsg
sendmsg entered.
sendmsg got: fd: 0x18, iov: 0xffffab90, ancillary: 0x0,
sendmsg: fd 0x18[4] flags 0x0 message_header 0xffffa98f
return from sendmsg with
sendmsg entered.
sendmsg got: fd: 0x1a, iov: 0xffffab90, ancillary: 0x0,
sendmsg: fd 0x1a[4] flags 0x0 message_header 0xffffa98f
return from sendmsg with
---
Without ancillary data, no fd can be shipped.
The only place where ancillary data could be provided seems to be
twext.internet.sendfdport._SubprocessSocket.doWrite.
I would be happy for any hint where to dig...

Axel
PS: sendmsg.c seems to be very fragile as debug code changes
behaviour of the system (i.e. it locks up after trying a http
connect and does not reach point of original exception)
---
PGP-Key:29E99DD6  ☀ +49 151 2300 9283  ☀ computing @ chaos claudius



More information about the calendarserver-dev mailing list