Boost C++ Libraries: Ticket #13628: boost::intrusive::rbtree::insert_unique() may throw, contrary to what the doc says https://svn.boost.org/trac10/ticket/13628 <p> The doc says: </p> <blockquote> <p> Throws: Nothing. </p> </blockquote> <p> but it actually may throw if the comparator throws. </p> <pre class="wiki">seastar::memory::alloc_failure_injector::fail() at /home/tgrabiec/src/scylla/seastar/util/alloc_failure_injector.cc:38 seastar::memory::alloc_failure_injector::on_alloc_point() at /home/tgrabiec/src/scylla/seastar/util/alloc_failure_injector.hh:65 (inlined by) seastar::memory::on_alloc_point() at /home/tgrabiec/src/scylla/seastar/util/alloc_failure_injector.hh:121 (inlined by) managed_bytes::read_linearize() const at /home/tgrabiec/src/scylla/./utils/managed_bytes.hh:141 (inlined by) managed_bytes::data() const at /home/tgrabiec/src/scylla/./utils/managed_bytes.hh:396 (inlined by) managed_bytes::operator std::experimental::fundamentals_v1::basic_string_view&lt;signed char, std::char_traits&lt;signed char&gt; &gt;() const at /home/tgrabiec/src/scylla/./utils/managed_bytes.hh:337 (inlined by) dht::token_view::token_view(dht::token const&amp;) at /home/tgrabiec/src/scylla/dht/i_partitioner.hh:151 (inlined by) dht::token::operator dht::token_view() const at /home/tgrabiec/src/scylla/dht/i_partitioner.hh:147 (inlined by) dht::decorated_key::tri_compare(schema const&amp;, dht::decorated_key const&amp;) const at /home/tgrabiec/src/scylla/dht/i_partitioner.cc:191 (inlined by) dht::decorated_key::less_compare(schema const&amp;, dht::decorated_key const&amp;) const at /home/tgrabiec/src/scylla/dht/i_partitioner.cc:217 (inlined by) dht::decorated_key::less_comparator::operator()(dht::decorated_key const&amp;, dht::decorated_key const&amp;) const at /home/tgrabiec/src/scylla/dht/i_partitioner.cc:226 memtable_entry::compare::operator()(memtable_entry const&amp;, memtable_entry const&amp;) const at /home/tgrabiec/src/scylla/memtable.hh:99 (inlined by) boost::intrusive::tree_value_compare&lt;memtable_entry*, memtable_entry::compare, boost::move_detail::identity&lt;memtable_entry&gt;, true&gt;::operator()(memtable_entry const&amp;, memtable_entry const&amp;) const at /usr/include/boost/intrusive/detail/tree_value_compare.hpp:147 (inlined by) bool boost::intrusive::detail::key_nodeptr_comp&lt;memtable_entry::compare, boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, boost::move_detail::identity&lt;memtable_entry&gt; &gt;::operator()&lt;boost::intrusive::rbtree_node&lt;void*&gt;*, memtable_entry&gt;(boost::intrusive::rbtree_node&lt;void*&gt;* const&amp;, memtable_entry const&amp;, boost::move_detail::enable_if_c&lt;boost::intrusive::detail::key_nodeptr_comp&lt;memtable_entry::compare, boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, boost::move_detail::identity&lt;memtable_entry&gt; &gt;::is_same_or_nodeptr_convertible&lt;boost::intrusive::rbtree_node&lt;void*&gt;*&gt;::value&amp;&amp;(!boost::intrusive::detail::key_nodeptr_comp&lt;memtable_entry::compare, boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, boost::move_detail::identity&lt;memtable_entry&gt; &gt;::is_same_or_nodeptr_convertible&lt;memtable_entry&gt;::value), void&gt;::type*) const at /usr/include/boost/intrusive/detail/key_nodeptr_comp.hpp:100 (inlined by) std::pair&lt;boost::intrusive::rbtree_node&lt;void*&gt;*, bool&gt; boost::intrusive::bstree_algorithms&lt;boost::intrusive::rbtree_node_traits&lt;void*, false&gt; &gt;::insert_unique_check&lt;memtable_entry, boost::intrusive::detail::key_nodeptr_comp&lt;memtable_entry::compare, boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, boost::move_detail::identity&lt;memtable_entry&gt; &gt; &gt;(boost::intrusive::rbtree_node&lt;void*&gt; const* const&amp;, boost::intrusive::rbtree_node&lt;void*&gt;* const&amp;, memtable_entry const&amp;, boost::intrusive::detail::key_nodeptr_comp&lt;memtable_entry::compare, boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, boost::move_detail::identity&lt;memtable_entry&gt; &gt;, boost::intrusive::insert_commit_data_t&lt;boost::intrusive::rbtree_node&lt;void*&gt;*&gt;&amp;, unsigned long*) at /usr/include/boost/intrusive/bstree_algorithms.hpp:1083 (inlined by) boost::intrusive::bstree_impl&lt;boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, void, memtable_entry::compare, unsigned long, true, (boost::intrusive::algo_types)5, void&gt;::insert_unique(boost::intrusive::tree_iterator&lt;boost::intrusive::mhtraits&lt;memtable_entry, boost::intrusive::set_member_hook&lt;void, void, void, void&gt;, &amp;memtable_entry::_link&gt;, true&gt;, memtable_entry&amp;) at /usr/include/boost/intrusive/bstree.hpp:1153 </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/13628 Trac 1.4.3