Skip to content

Assertion failed: Invalid argument (src\select.cpp:111) resp. hang in zmq_ctx_destroy #2723

@sigiesec

Description

@sigiesec

Issue description

I get an assertion failure during context shutdown.

Environment

  • libzmq version (commit hash if unreleased): unreleased, 7783d02
  • OS: Windows 7 64-Bit

Minimal test code / Steps to reproduce the issue

  1. Change count in test_get_peer_state to a larger number, e.g. 100000
  2. Run test_router_mandatory

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

Assertion failed: Invalid argument (src\select.cpp:111) with the following stacktrace:

 	KernelBase.dll!RaiseException�()	Unknown
>	libzmq-v140-mt-gd-4_2_3.dll!zmq::zmq_abort(const char * errmsg_) Line 89	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::select_t::rm_fd(unsigned __int64 handle_) Line 111	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::io_object_t::rm_fd(unsigned __int64 handle_) Line 72	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::stream_engine_t::unplug() Line 277	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::stream_engine_t::error(zmq::stream_engine_t::error_reason_t reason) Line 998	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::stream_engine_t::in_event() Line 327	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::select_t::loop() Line 315	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::select_t::worker_routine(void * arg_) Line 390	C++
 	libzmq-v140-mt-gd-4_2_3.dll!thread_routine(void * arg_) Line 47	C++
 	ucrtbased.dll!invoke_thread_procedure(unsigned int(*)(void *) procedure, void * const context) Line 92	C++
 	ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void * __ptr64)>(void * const parameter) Line 115	C++
 	kernel32.dll!BaseThreadInitThunk�()	Unknown
 	ntdll.dll!RtlUserThreadStart�()	Unknown

reason is connection_error here

The main thread is here:

>	libzmq-v140-mt-gd-4_2_3.dll!zmq::signaler_t::wait(int timeout_) Line 268	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::mailbox_t::recv(zmq::command_t * cmd_, int timeout_) Line 81	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq::ctx_t::terminate() Line 179	C++
 	libzmq-v140-mt-gd-4_2_3.dll!zmq_ctx_term(void * ctx_) Line 175	C++
 	test_router_mandatory.exe!test_get_peer_state() Line 144	C++
 	test_router_mandatory.exe!main() Line 220	C++

What's the expected result?

Successful completion of zmq_ctx_destroy

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions