Skip to content

Assert in send_pubrel #377

Closed
Closed
@jonesmz

Description

@jonesmz

I get this assert a lot. Any thoughts?

This is the assert

                    auto ret = store_.emplace(
                        packet_id,
                        control_packet_type::pubcomp,
                        msg,
                        std::move(life_keeper)
                    );
                    (void)ret;
                    BOOST_ASSERT(ret.second);

Here's a stack trace.

1 __GI_raise raise.c 51 0x7ffff4660e97
2 __GI_abort abort.c 79 0x7ffff4662801
3 __assert_fail_base assert.c 92 0x7ffff465239a
4 __GI___assert_fail assert.c 101 0x7ffff4652412
5 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::send_pubrel(unsigned short, std::optional, std::vector<std::variant<mqtt::v5::property::payload_format_indicator, mqtt::v5::property::message_expiry_interval, mqtt::v5::property::content_type, mqtt::v5::property::response_topic, mqtt::v5::property::correlation_data, mqtt::v5::property::subscription_identifier, mqtt::v5::property::session_expiry_interval, mqtt::v5::property::assigned_client_identifier, mqtt::v5::property::server_keep_alive, mqtt::v5::property::authentication_method, mqtt::v5::property::authentication_data, mqtt::v5::property::request_problem_information, mqtt::v5::property::will_delay_interval, mqtt::v5::property::request_response_information, mqtt::v5::property::response_information, mqtt::v5::property::server_reference, mqtt::v5::property::reason_string, mqtt::v5::property::receive_maximum, mqtt::v5::property::topic_alias_maximum, mqtt::v5::property::topic_alias, mqtt::v5::property::maximum_qos, mqtt::v5::property::retain_available, mqtt::v5::property::user_property, mqtt::v5::property::maximum_packet_size, mqtt::v5::property::wildcard_subscription_available, mqtt::v5::property::subscription_identifier_available, mqtt::v5::property::shared_subscription_available>>, std::any)::{lambda(auto:1, auto:2 const&)#1}::operator()<mqtt::v5::basic_pubrel_message<2ul>, std::function<void (mqtt::v5::basic_pubrel_message)>>(mqtt::v5::basic_pubrel_message<2ul>, std::function<void (mqtt::v5::basic_pubrel_message)> const&) const endpoint.hpp 14246 0x555555743683
6 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::send_pubrel endpoint.hpp 14263 0x555555743ee2
7 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const::{lambda()#1}::operator()() const endpoint.hpp 12785 0x55555587cff2
8 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::auto_pub_response<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const::{lambda()#1}, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const::{lambda()#2}>(mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const::{lambda()#1} const&, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const::{lambda()#2} const&) endpoint.hpp 14046 0x5555558c4ec6
9 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#4}::operator()() const endpoint.hpp 12782 0x55555587cd36
10 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>) endpoint.hpp 12822 0x55555587e571
11 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda(unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)#1}::operator()(unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>) endpoint.hpp 12711 0x55555587bf3e
12 std::_Function_handler<void (unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>), mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_pubrec_impl(std::function<void (boost::system::error_code const&)>, mqtt::buffer, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_phase, mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::pubrec_info&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda(unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)#1}>::_M_invoke(std::_Any_data const&, unsigned short&&, mqtt::buffer&&, std::function<void (boost::system::error_code const&)>&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>&&) std_function.h 297 0x5555558e9516
13 std::function<void (unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>::operator()(unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>) const std_function.h 687 0x5555558e4925
14 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_packet_id(std::function<void (boost::system::error_code const&)>, mqtt::buffer, std::function<void (unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda(unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)#1}::operator()(unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>) endpoint.hpp 10573 0x5555558bd8d3
15 std::_Function_handler<void (unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>), mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_packet_id(std::function<void (boost::system::error_code const&)>, mqtt::buffer, std::function<void (unsigned short, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda(unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&, mqtt::buffer&&, std::function<void (boost::system::error_code const&)>&&, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>&&) std_function.h 297 0x555555921896
16 std::function<void (unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>::operator()(unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>) const std_function.h 687 0x555555919c92
17 mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_fixed_length<2ul>(std::function<void (boost::system::error_code const&)>, mqtt::buffer, std::function<void (unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#2}::operator()() endpoint.hpp 10427 0x5555558de53a
18 std::_Function_handler<void (), mqtt::endpoint<std::mutex, std::lock_guard, 2ul>::process_fixed_length<2ul>(std::function<void (boost::system::error_code const&)>, mqtt::buffer, std::function<void (unsigned long, mqtt::buffer, std::function<void (boost::system::error_code const&)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)>, std::shared_ptr<mqtt::endpoint<std::mutex, std::lock_guard, 2ul>>)::{lambda()#2}>::_M_invoke(std::_Any_data const&) std_function.h 297 0x5555559485ca
19 std::function<void ()>::operator()() const std_function.h 687 0x55555575cbd3
20 boost::asio::asio_handler_invoke<std::function<void ()>>(std::function<void ()>&, ...) handler_invoke_hook.hpp 69 0x5555559d9128
...

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