[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 

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

Anyone any experience with HP-UX minutiae?


>>     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