[zeromq-dev] Hang in a receiving application
Martin Hurton
hurtonm at gmail.com
Fri Jun 26 17:55:00 CEST 2009
Hi Ville,
Do you use swapping? If so, what is the size of the swap file?
- Martin
On Fri, Jun 26, 2009 at 5:17 PM, Ville Aine<ville.aine at blackshear.fi> wrote:
> Hi,
>
> Sometimes when we are running our application, the receiving side
> appears to hang. Unfortunately, I cannot reproduce this behavior
> intentionally.
>
> In our setup, we have one process running on a Windows box sending
> messages, and a single client on a Linux box receiving them. When the
> client hangs, the server is pushing several thousand messages per
> second, at a rate far higher than the client can process them. Usually
> things work OK for several minutes, and then client freezes.
>
> After the hang, the situation looks like this:
>
> - Attaching to the frozen client with GDB shows two threads.
> The back trace for the "main" thread looks like this:
>
> #0 0x00007f10e0c96b04 in __lll_lock_wait () from /lib/libpthread.so.0
> #1 0x00007f10e0c921a0 in _L_lock_102 () from /lib/libpthread.so.0
> #2 0x00007f10e0c91aae in pthread_mutex_lock () from /lib/libpthread.so.0
> #3 0x00007f10e0eba2fa in zmq::api_thread_t::receive () from /usr/lib/libzmq.so.0
> #4 0x00007f10e194cf31 in zmq_receive () from /usr/lib/libczmq.so.0
>
> Where the pthread_mutex_lock() call appears to be made from
> ysemaphore_t::wait(), which in turn is called from
> ypollset_t::poll().
>
> The other thread appears to be blocked on epoll_wait() called from
> epoll_t::process_events().
>
> - The TCP connection between the client and the server is still
> alive according to netstat, but tcpdump does not show
> any traffic.
>
> - According to our logs, the server keeps sending messages at normal
> pace
>
> - If a new client application is started, it will receive data
> normally, while the original application is still frozen.
>
> We are using zmq 0.6.1 with dummy_locator_t from the dj branch, and
> slightly modified libczmq as described in my previous email to
> zeromq-dev[1]. The sending side is running on 32-bit Windows Server 2003
> R2, and the receiving side is running on 64-bit Ubuntu Intrepid with
> 2.6.27-22-xen kernel. Both operating systems are running under Xen.
>
> Thanks,
> Ville
>
> 1. http://lists.zeromq.org/pipermail/zeromq-dev/2009-June/000857.html
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
More information about the zeromq-dev
mailing list