Skip to content

try_dequeue_bulk failed #172

@kdtiankong

Description

@kdtiankong

A new problem arises, the coredump file is generated.
my environment is centos7-x64. JNI is called by java.
The C++ interface wraps a producer, multiple consumers, and gets package data from the queue each time.
I found “this” pointer is null in try_dequeue_bulk called
coredump As follows:

Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `java JNI.AgentJNI'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007fc36f2bb337 in raise () from /usr/lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.17-292.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.222.b10-1.el7_7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libcom_err-1.42.9-16.el7.x86_64 libgcc-4.8.5-39.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-4.8.5-39.el7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0 0x00007fc36f2bb337 in raise () from /usr/lib64/libc.so.6
#1 0x00007fc36f2bca28 in abort () from /usr/lib64/libc.so.6
#2 0x00007fc36eb58ba9 in os::abort(bool) ()
from /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/lib/amd64/server/libjvm.so
#3 0x00007fc36ed63276 in VMError::report_and_die() ()
from /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/lib/amd64/server/libjvm.so
#4 0x00007fc36eb62bf5 in JVM_handle_linux_signal ()
from /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/lib/amd64/server/libjvm.so
#5 0x00007fc36eb55d68 in signalHandler(int, siginfo_t*, void*) ()
from /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/lib/amd64/server/libjvm.so
#6
#7 load (__m=std::memory_order_acquire, this=0x0) at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/bits/atomic_base.h:809
#8 load (__m=std::memory_order_acquire, this=0x0) at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/atomic:390
#9 try_dequeue_bulk<signature_business_element*> (max=20, itemFirst=0x7fc3684f0588, this=0x0) at ../common/multqueue.h:1150
#10 ClientApply::handle_msg_queue (this=0x7fc3681cc7f0, io_service_index=) at ClientApply.cpp:685
#11 0x00007fc2f8b2d899 in operator() (a1=34, p=0x7fc3681cc7f0, this=)
at /usr/local/include/boost/include/boost/bind/mem_fn_template.hpp:165
#12 operator()<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list0> (a=, f=,
this=) at /usr/local/include/boost/include/boost/bind/bind.hpp:309
#13 operator() (this=) at /usr/local/include/boost/include/boost/bind/bind.hpp:1294
#14 asio_handler_invoke<boost::_bi::bind_t<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list2<boost::_bi::value<ClientApply*>, boost::_bi::value > > > (function=)
at /usr/local/include/boost/include/boost/asio/handler_invoke_hook.hpp:69
#15 invoke<boost::_bi::bind_t<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list2<boost::_bi::value<ClientApply*>, boost::_bi::value > >, boost::_bi::bind_t<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list2<boost::_bi::value<ClientApply*>, boost::_bi::value > > > (context=, function=)
---Type to continue, or q to quit---
at /usr/local/include/boost/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#16 complete<boost::_bi::bind_t<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list2<boost::_bi::value<ClientApply*>, boost::_bi::value > > > (this=, handler=, function=)
at /usr/local/include/boost/include/boost/asio/detail/handler_work.hpp:100
#17 boost::asio::detail::completion_handler<boost::_bi::bind_t<int, boost::_mfi::mf1<int, ClientApply, int>, boost::_bi::list2<boost::_bi::value<ClientApply*>, boost::_bi::value > > >::do_complete (owner=0x7fc3681cd8c0, base=0x7fc36ac28100)
at /usr/local/include/boost/include/boost/asio/detail/completion_handler.hpp:70
#18 0x00007fc2f8b3098e in complete (bytes_transferred=, ec=..., owner=0x7fc3681cd8c0, this=)
at /usr/local/include/boost/include/boost/asio/detail/scheduler_operation.hpp:40
#19 do_run_one (ec=..., this_thread=..., lock=..., this=0x7fc3681cd8c0)
at /usr/local/include/boost/include/boost/asio/detail/impl/scheduler.ipp:447
#20 boost::asio::detail::scheduler::run (this=0x7fc3681cd8c0, ec=...)
at /usr/local/include/boost/include/boost/asio/detail/impl/scheduler.ipp:200
#21 0x00007fc2f8b5a82c in boost::asio::io_context::run (this=0x7fc3681cd6d0)
at /usr/local/include/boost/include/boost/asio/impl/io_context.ipp:63
#22 0x00007fc2f842b784 in thread_proxy () from /usr/lib64/libboost_thread.so.1.70.0
#23 0x00007fc36fc83e65 in start_thread () from /usr/lib64/libpthread.so.0
#24 0x00007fc36f38388d in clone () from /usr/lib64/libc.so.6

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