Skip to content

SUB socket stuck in poll indefinitely after PUB exited  #408

@dshulyak

Description

@dshulyak

i am not sure if i should open an issue here or in libzmq repository, i also suspect that it could be something due to outdated version, please let me know if i should reopen.

the socket was opened and functional, but once PUB goes away tcp socket is properly closed and disappears from system. but application code is just stuck. i experimented with heartbeat/keepalive options but they don't have any effect.

ss output while socket is alive

ESTAB 0 0 127.0.0.1:37250 127.0.0.1:29000

env details:

Linux dd 6.8.0-40-generic #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30 17:30:19 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
rustc 1.79.0 (129f3b996 2024-06-10)
zmq crate version: 0.10.0

gdb backtrace

#0  0x00007bbe67518bcf in __GI___poll (fds=fds@entry=0x7ffceeddad10, nfds=nfds@entry=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x000064e8ab1c2dcd in poll (__timeout=<optimized out>, __nfds=1, __fds=0x7ffceeddad10) at /usr/include/x86_64-linux-gnu/bits/poll2.h:39
#2  zmq::signaler_t::wait (this=this@entry=0x64e8abfec998, timeout_=<optimized out>)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/signaler.cpp:246
#3  0x000064e8ab1b46c6 in zmq::mailbox_t::recv (this=0x64e8abfec930, cmd_=0x7ffceeddad80, timeout_=<optimized out>)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/mailbox.cpp:81
#4  0x000064e8ab1c5c8c in zmq::socket_base_t::process_commands (this=this@entry=0x64e8abfe6e40, timeout_=-1, throttle_=throttle_@entry=false)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/socket_base.cpp:1501
#5  0x000064e8ab1c6b8a in zmq::socket_base_t::recv (this=this@entry=0x64e8abfe6e40, msg_=msg_@entry=0x7ffceeddaf80, flags_=flags_@entry=0)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/socket_base.cpp:1386
#6  0x000064e8ab1a1bda in s_recvmsg (flags_=0, msg_=0x7ffceeddaf80, s_=0x64e8abfe6e40)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/zmq.cpp:493
#7  zmq_msg_recv (msg_=0x7ffceeddaf80, s_=0x64e8abfe6e40, flags_=0)
    at /home/dd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zeromq-src-0.2.6+4.3.4/vendor/src/zmq.cpp:644
#8  0x000064e8ab1a123a in zmq::Socket::recv () at src/lib.rs:725
#9  zmq::Socket::recv_msg () at src/lib.rs:74

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions