Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After Upgrade to Libzmq-4.3.3 from 4.1.4 user process crash observed #4388

Open
srkvenkatesh opened this issue May 21, 2022 · 4 comments
Open

Comments

@srkvenkatesh
Copy link

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

Issue description

Process crash observed with libzmq-4.3.3 library

Environment

  • libzmq version (commit hash if unreleased): 4.3.3
  • OS: GNU/Linux/4.14.188

Minimal test code / Steps to reproduce the issue

  1. Once node is up, one of the user process which has the libzmq-4.3.3 is observing a crash.

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

(gdb) bt
#0 0x00007fd005538920 in raise ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libc.so.6
#1 0x00007fd005539b01 in abort ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libc.so.6
#2 0x00007fd00553146d in __assert_fail_base ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libc.so.6
#3 0x00007fd005531522 in __assert_fail ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libc.so.6
#4 0x00007fd008a5afd2 in mm_free (h=0x2447260, ptr=, caller=) at mm_main.c:224
#5 0x00007fd009937cc4 in zmq::yqueue_t<zmq::msg_t, 256, 64ul>::pop() ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#6 0x00007fd009937966 in zmq::ypipe_t<zmq::msg_t, 256>::read(zmq::msg_t*) ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#7 0x00007fd0099350fa in zmq::pipe_t::read(zmq::msg_t*) ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#8 0x00007fd00994819e in zmq::session_base_t::pull_msg(zmq::msg_t*) ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#9 0x00007fd00995db91 in zmq::stream_engine_base_t::pull_and_encode(zmq::msg_t*) ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#10 0x00007fd00995c6db in zmq::stream_engine_base_t::out_event() ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#11 0x00007fd009919bc2 in zmq::epoll_t::loop() ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#12 0x00007fd009939bed in zmq::worker_poller_base_t::worker_routine(void*) ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#13 0x00007fd0099621d8 in thread_routine ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib/libzmq.so.5
#14 0x00007fd007764517 in start_thread ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libpthread.so.0
#15 0x00007fd0055f52cf in clone ()
venkat/Default/OPUSONE/ArubaOS_MM_syms/lib64/libc.so.6

What's the expected result?

Dont expect a crash

@srkvenkatesh
Copy link
Author

Please let me know if there exists a solution to avoid the crash

@EdwardVajravelu
Copy link

The crash is happening due to posix_memalign. We need to compile without posix_memalign
Can someone help with how to disable this ? what options to provide in configure

@bluca
Copy link
Member

bluca commented May 26, 2022

There isn't one. memalign should just work. Please report a bug against the libc of your distribution.

@EdwardVajravelu
Copy link

We have our own memory manager on top of glibc malloc. So when MEMALIGN is used looks like posix_memalign doesn't call malloc. So the memory allocated doesn't have our header.
But when free is called, our code checks for head and tail signature and asserting.

I need to explore more on posix_memalign and see how make it call malloc so that we have the headers right.

Due to these issues we were exploring if we can compile without posix_memalign

Or if there was any other free function along with posix_memalign that could have been used in zmq::yqueue_t<zmq::msg_t, 256, 64ul>::pop()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants