...
boost::asio::steady_timer timer;
...
timer.expires_after(std::chrono::nanoseconds(throttle_ns));
timer.async_wait([this]([[maybe_unused]] auto ec) {
...
The above code causes the following segmentation fault when building with uring (-DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_DISABLE_EPOLL -DBOOST_ASIO_HAS_IO_URING_AS_DEFAULT).
Address sanitizer shows:
==298916==ERROR: AddressSanitizer: SEGV on unknown address 0x7fff0000401f (pc 0x55aba0c0f4b4 bp 0x7f0f459b61a0 sp 0x7f0f459b6150 T3)
==298916==The signal is caused by a READ memory access.
0 0x55aba0c0f4b4 in boost::asio::detail::timer_queue_set::wait_duration_usec(long) const /usr/local/boost/boost/asio/detail/impl/timer_queue_set.ipp:81:23
#1 0x55aba0ce4a0a in boost::asio::detail::epoll_reactor::get_timeout(itimerspec&) /usr/local/boost/boost/asio/detail/impl/epoll_reactor.ipp:719:29
#2 0x55aba0ce482b in boost::asio::detail::epoll_reactor::update_timeout() /usr/local/boost/boost/asio/detail/impl/epoll_reactor.ipp:696:17
#3 0x55aba0cedd07 in void boost::asio::detail::epoll_reactor::schedule_timer<boost::asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock>>>(boost::asio::detail::timer_queue<boost::asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock>>>&, boost::asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock>>::time_type const&, boost::asio::detail::timer_queue<boost::asio::detail::chrono_time_traits<std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock>>>::per_timer_data&, boost::asio::detail::wait_op*) /usr/local/boost/boost/asio/detail/impl/epoll_reactor.hpp:62:5
The above code causes the following segmentation fault when building with uring (-DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_DISABLE_EPOLL -DBOOST_ASIO_HAS_IO_URING_AS_DEFAULT).
Address sanitizer shows:
==298916==ERROR: AddressSanitizer: SEGV on unknown address 0x7fff0000401f (pc 0x55aba0c0f4b4 bp 0x7f0f459b61a0 sp 0x7f0f459b6150 T3) ==298916==The signal is caused by a READ memory access.
0 0x55aba0c0f4b4 in boost::asio::detail::timer_queue_set::wait_duration_usec(long) const /usr/local/boost/boost/asio/detail/impl/timer_queue_set.ipp:81:23
.....