[
https://issues.apache.org/jira/browse/ZOOKEEPER-1123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13203878#comment-13203878
]
Terence Yim commented on ZOOKEEPER-1123:
----------------------------------------
I found that it's because the configure script doesn't set the -pthreads flag
under Solaris, causing the "errno" value during async connect doesn't reflect
the right value.
This can be fixed by passing CFLAGS="-pthreads" to the make command.
> Can't connect to ZooKeeper server with the C client library from Solaris:
> connect() call fails.
> -----------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-1123
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1123
> Project: ZooKeeper
> Issue Type: Bug
> Components: c client
> Affects Versions: 3.3.3
> Environment: Client: Solaris 5.10, x86 machine.
> Server: Linux Fedora 14
> Reporter: Tadeusz Andrzej Kadłubowski
>
> I have a C app that runs on Solaris and connects to ZooKeeper which I run on
> Linux (just a single server instance, that's just a development setup).
> Upon calling zookeeper_init() I get logs that say connect() call fails.
> TCP-wise the client sends RST packet instead of the third part of the
> three-way handshake. Traced client syscalls below.
> Sometimes the client is able to establish a connection - after half an hour
> of trying, or even longer.
> Logs
> ====
> The client logs:
> 2011-07-11 16:20:22,954:13148(0xf):ZOO_ERROR@handle_socket_error_msg@1501:
> Socket [10.10.1.71:2181] zk retcode=-4, errno=0(Error 0): connect() call
> failed
> The server logs:
> 2011-07-11 16:20:22,950 - INFO
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn$Factory@251] -
> Accepted socket connection from /10.10.9.27:34017
>
> 2011-07-11 16:20:22,955 - WARN
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@634] -
> EndOfStreamException: Unable to read additional data from client sessionid
> 0x0, likely client has closed socket
> 2011-07-11 16:20:22,955 - INFO
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1435] - Closed
> socket connection for client /10.10.9.27:34017 (no session established for
> client)
> Syscalls in the client:
> /15: 3516.6191 so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "",
> SOV_DEFAULT) = 11
> /15: 3516.6192 setsockopt(11, tcp, TCP_NODELAY, 0xFD8A8ECC, 4,
> SOV_DEFAULT) = 0
> /15: 3516.6193 fcntl(11, F_GETFL) = 2
>
> /15: 3516.6194 fcntl(11, F_SETFL, FWRITE|FNONBLOCK) = 0
>
> /15: 3516.6194 connect(11, 0x0813BA30, 16, SOV_DEFAULT)
> Err#150 EINPROGRESS
> /15: 3516.6195 write(2, " 2 0 1 1 - 0 7 - 1 2 1".., 23) = 23
>
> <<< SNIP writing log message >>>
> /15: 3516.6204 write(2, "\n", 1) = 1
>
> /15: 3516.6205 close(11) = 0
> What does work:
> ===============
> Using Java client on the same Solaris machine works without any problems.
> Connecting to the Linux server using C client library on Linux works OK
> (though I tested it within one box, via loopback interface).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira