pcp
[Top] [All Lists]

Re: [pcp] errors from socket code on Mac OS X

To: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>, PCP <pcp@xxxxxxxxxxx>
Subject: Re: [pcp] errors from socket code on Mac OS X
From: Dave Brolley <brolley@xxxxxxxxxx>
Date: Tue, 05 Jul 2016 16:48:10 -0400
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <577C1045.1040108@xxxxxxxxxxxxxxxx>
References: <577C1045.1040108@xxxxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
On 07/05/2016 03:53 PM, Ken McDonell wrote:
I'm seeing this ...

[DATE] pmcd(PID) Error: auxconnect.c:__pmSockAddrInit: Invalid address family: 0
[DATE] pmcd(PID) Error: auxconnect.c:__pmSockAddrCompare: Invalid address 
family: 0

in about half the failing tests on Mac OS X.

Does anyone know how or why we'd be traversing the libpcp socket code for an AF 
of 0?

Seems like a missing or broken guard somewhere higher up the call stack, but I 
have not been able to diagnose this, so I'm seeking assistance from those who 
know more.

Thanks for any hints or suggestions.

This sequence of errors suggests to me that __pmSockAddrIsLoopBack() is being called with an address containing family==0.

__pmSockAddrIsLoopBack first extracts the family from the given address and the calls __pmLoopBackAddress(family), which in turn calls __pmSockAddrInit() using that family (first error).

It then calls __pmSockAddrCompare() with the original address and the manufactured loopback address, both of which will now have family==0 (second error).

Possible candidates:
__pmAccAddClient(new client adress)
  __pmSockAddrIsLoopBack(const __pmSockAddr *addr)

HandleClientInput(__pmFdSet *fdsPtr)
  DoCreds(addr from client table)
    __pmSockAddrIsLoopBack(const __pmSockAddr *addr)

VerifyClient(addr from client table)
  __pmSockAddrIsLoopBack(const __pmSockAddr *addr)

I hope this helps,
Dave

<Prev in Thread] Current Thread [Next in Thread>