[
https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tolga HOŞGÖR updated IGNITE-5208:
---------------------------------
Description:
The following segfault happens when:
- using multiple caches (suffixed with number as in X_\{number\}),
- caches contain same type of object but not the same objects,
- doing multithreaded `::Put` operation, only one put is done on *one* cache
concurrently, but that should not be relevant as cache api is thread safe.
{code:none}
C [test+0xf8116a] std::less<int>::operator()(int const&, int const&)
const+0x14
C [test+0x1106305] std::_Rb_tree<int, std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
>, std::_Select1st<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::_M_lower_bound(std::_Rb_tree_node<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >*, std::_Rb_tree_node_base*, int const&)+0x41
C [test+0x1105a9d] std::_Rb_tree<int, std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
>, std::_Select1st<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::find(int const&)+0x45
C [test+0x1104e7f] std::map<int,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>,
std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::find(int const&)+0x23
C [test+0x1104031]
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)+0x6f
C [test+0xe6de2d] void
ignite::impl::binary::BinaryWriterImpl::WriteTopObject<std::shared_ptr<test::data>
>(std::shared_ptr<test::data> const&)+0xbb
C [test+0xe6cd48] ignite::impl::In2Operation<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
>::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e
C [test+0x1128cf1]
ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*,
ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9
C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int,
ignite::impl::InputOperation&, ignite::IgniteError&)+0x65
C [test+0x1125f41]
ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&,
ignite::IgniteError&)+0x2d
C [test+0xe5539a] ignite::cache::Cache<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
>::Put(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::shared_ptr<test::data> const&,
ignite::IgniteError&)+0x52
{code}
was:
The following segfault happens when:
- using multiple caches (suffixed with number as in X_{number}),
- caches contain same type of object but not the same objects,
- doing multithreaded `::Put` operation, only one put is done on *one* cache
concurrently, but that should not be relevant as cache api is thread safe.
{code:none}
C [test+0xf8116a] std::less<int>::operator()(int const&, int const&)
const+0x14
C [test+0x1106305] std::_Rb_tree<int, std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
>, std::_Select1st<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::_M_lower_bound(std::_Rb_tree_node<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >*, std::_Rb_tree_node_base*, int const&)+0x41
C [test+0x1105a9d] std::_Rb_tree<int, std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
>, std::_Select1st<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::find(int const&)+0x45
C [test+0x1104e7f] std::map<int,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>,
std::less<int>, std::allocator<std::pair<int const,
ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >::find(int const&)+0x23
C [test+0x1104031]
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)+0x6f
C [test+0xe6de2d] void
ignite::impl::binary::BinaryWriterImpl::WriteTopObject<std::shared_ptr<test::data>
>(std::shared_ptr<test::data> const&)+0xbb
C [test+0xe6cd48] ignite::impl::In2Operation<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
>::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e
C [test+0x1128cf1]
ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*,
ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9
C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int,
ignite::impl::InputOperation&, ignite::IgniteError&)+0x65
C [test+0x1125f41]
ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&,
ignite::IgniteError&)+0x2d
C [test+0xe5539a] ignite::cache::Cache<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
>::Put(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::shared_ptr<test::data> const&,
ignite::IgniteError&)+0x52
{code}
> C++ Segfault on Put
> -------------------
>
> Key: IGNITE-5208
> URL: https://issues.apache.org/jira/browse/IGNITE-5208
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Affects Versions: 2.0
> Reporter: Tolga HOŞGÖR
> Priority: Critical
> Labels: c++
>
> The following segfault happens when:
> - using multiple caches (suffixed with number as in X_\{number\}),
> - caches contain same type of object but not the same objects,
> - doing multithreaded `::Put` operation, only one put is done on *one*
> cache concurrently, but that should not be relevant as cache api is thread
> safe.
> {code:none}
> C [test+0xf8116a] std::less<int>::operator()(int const&, int const&)
> const+0x14
> C [test+0x1106305] std::_Rb_tree<int, std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::_Select1st<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >, std::less<int>, std::allocator<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >*, std::_Rb_tree_node_base*, int const&)+0x41
> C [test+0x1105a9d] std::_Rb_tree<int, std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> >, std::_Select1st<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > >, std::less<int>, std::allocator<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > > >::find(int const&)+0x45
> C [test+0x1104e7f] std::map<int,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>,
> std::less<int>, std::allocator<std::pair<int const,
> ignite::common::concurrent::SharedPointer<ignite::impl::binary::BinaryTypeSnapshot>
> > > >::find(int const&)+0x23
> C [test+0x1104031]
> ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, int)+0x6f
> C [test+0xe6de2d] void
> ignite::impl::binary::BinaryWriterImpl::WriteTopObject<std::shared_ptr<test::data>
> >(std::shared_ptr<test::data> const&)+0xbb
> C [test+0xe6cd48]
> ignite::impl::In2Operation<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
> >::ProcessInput(ignite::impl::binary::BinaryWriterImpl&)+0x3e
> C [test+0x1128cf1]
> ignite::impl::interop::InteropTarget::WriteTo(ignite::impl::interop::InteropMemory*,
> ignite::impl::InputOperation&, ignite::IgniteError&)+0xa9
> C [test+0x1128f67] ignite::impl::interop::InteropTarget::OutOp(int,
> ignite::impl::InputOperation&, ignite::IgniteError&)+0x65
> C [test+0x1125f41]
> ignite::impl::cache::CacheImpl::Put(ignite::impl::InputOperation&,
> ignite::IgniteError&)+0x2d
> C [test+0xe5539a] ignite::cache::Cache<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >, std::shared_ptr<test::data>
> >::Put(std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, std::shared_ptr<test::data> const&,
> ignite::IgniteError&)+0x52
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)