[zeromq-dev] Responses from HP support

Martin Sustrik sustrik at 250bpm.com
Wed Feb 17 12:16:33 CET 2010


Hi all,

We are having a problem with HP-UX. recv function returns -1 and errno 
is set to 0 (!). However, tracing tool as well as perror reports 
errno=EAGAIN.

My feeling is that the CRT libraries must be mixed somehow (see below).

Anyone any experience with HP-UX minutiae?

Martin

>>     i just received the first responses from hp support. It seems that 
>> the recv actually return EAGAIN:
>>
>> 1266326571.987109 [/tmp/mario/z][19620] recv(7, 0x20000000400704e0, 
>> 8192, 0)  [entry]
>> 1266326571.987269 [/tmp/mario/z][19620] recv(7, 0x400704e0, 8192, 0) 
>> ........ ERR#11 EAGAIN
>>
>> but for some reasons we get 0. I'll ask him to give me the tracing 
>> utility to track down the issue.
>>
>> Any ideas?
> 
> Ok. So tracer (on kernel/user space boundary presumably) sees EAGAIN. 
> perror sees EAGAIN (it prints "resource temporarily not available" 
> whitch is EAGAIN). The code in between (in userspace) sees zero.
> 
> The only reason I can think of is that errno, as seen from userspace is 
> not the same thing as errno referenced inside C runtime.
> 
> One possible cause is that C runtime for multithreaded applications 
> (declaring errno as thread-local variable) and runtime for 
> single-threaded apps (declaring errno as global variable) get mixed 
> somehow.
> 
> Can you check the exact sematics of errno (thread-local vs. global) with 
> HP support?
> 
> Thanks.
> Martin
> 




More information about the zeromq-dev mailing list