zeromq / zmqpp

0mq 'highlevel' C++ bindings
http://zeromq.github.io/zmqpp
Mozilla Public License 2.0
439 stars 195 forks source link

Socket remains blocked on Receive #251

Open Mihai000000 opened 2 years ago

Mihai000000 commented 2 years ago

Please use this template for reporting suspected bugs or requests for help.

Issue description

Following a "basic_filebuf::underflow error reading the file" exception, one of the sockets opened by zmq remains stuck, after the application resets itself. The only way to make the application work again is to reboot the testing device.

Environment

Architecture: i586 CPU op-mode(s): 32-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 Vendor ID: Vortex86 SoC CPU family: 5 Model: 2 Stepping: 2 CPU MHz: 800.007 BogoMIPS: 1600.01

Minimal test code / Steps to reproduce the issue

  1. std::shared_ptr m_socket;
  2. m_socket.reset(new zmqpp::socket(m_context, zmqpp::socket_type::dealer));
  3. m_socket->set(zmqpp::socket_option::linger, 0);
  4. m_socket->connect(BROKER.c_str());

What's the actual result? (include assertion message & call stack if applicable)

Software gets blocked, nothing happens in logs until an application reset. By running the application with strace, it ends with: connect(39, {sa_family=AF_INET, sin_port=htons(7505), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 recvmsg(39,

What's the expected result?

We should have a correct socket connection and the application should keep running.

vasid commented 1 year ago

I am having the same issue, can we have a hotfix anytime soon?