[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-06-02 Thread Aleksey Chetaev (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Chetaev updated IGNITE-5208:

Labels: c++ cpp  (was: c++)

> C++ Segfault on Put
> ---
>
> Key: IGNITE-5208
> URL: https://issues.apache.org/jira/browse/IGNITE-5208
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.0
>Reporter: Tolga HOŞGÖR
>Assignee: Igor Sapego
>Priority: Critical
>  Labels: c++, cpp
> Fix For: 2.1
>
>
> 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 each cache 
> concurrently, independent caches (X_1, X_2, ...) can be operated on and 
> called `::Put` on concurrently, but that should not be relevant as cache api 
> is thread safe.
> {code:none}
> C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
> const+0x14
> C  [test+0x1106305]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::_M_lower_bound(std::_Rb_tree_node  > >*, std::_Rb_tree_node_base*, int const&)+0x41
> C  [test+0x1105a9d]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::find(int const&)+0x45
> C  [test+0x1104e7f]  std::map ignite::common::concurrent::SharedPointer,
>  std::less, std::allocator  > > >::find(int const&)+0x23
> C  [test+0x1104031]  
> ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string  std::char_traits, std::allocator > const&, int)+0x6f
> C  [test+0xe6de2d]  void 
> ignite::impl::binary::BinaryWriterImpl::WriteTopObject  >(std::shared_ptr const&)+0xbb
> C  [test+0xe6cd48]  
> ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr 
> >::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::char_traits, std::allocator >, std::shared_ptr 
> >::Put(std::__cxx11::basic_string std::allocator > const&, std::shared_ptr const&, 
> ignite::IgniteError&)+0x52
> {code}
> There seems to be some kind of race situation:
> {code:none}
> 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at 
> /usr/include/c++/6.3.1/bits/stl_function.h:386
> {code}
> {code:none}
> #4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
> (this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
> src/impl/binary/binary_type_manager.cpp:56
> 56  std::map::iterator it = 
> snapshots0.find(typeId);
> (gdb) print snapshots0
> $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl 
> = 0x0}...}
> (gdb) print snapshot
> $11 = {ptr = 0x7fffda4f, impl = 0x11}
> {code}
> `impl` pointers seems to be corrupted on multiple places.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr const&, 
ignite::IgniteError&)+0x52
{code}

There seems to be some kind of race situation:
{code:none}
0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at 
/usr/include/c++/6.3.1/bits/stl_function.h:386
{code}
{code:none}
#4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
(this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
src/impl/binary/binary_type_manager.cpp:56
56  std::map::iterator it = 
snapshots0.find(typeId);
(gdb) print snapshots0
$10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 
0x0}...}
(gdb) print snapshot
$11 = {ptr = 0x7fffda4f, impl = 0x11}
{code}

`impl` pointers seems to be corrupted on multiple places.

  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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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  

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread Igor Sapego (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Sapego updated IGNITE-5208:

Fix Version/s: 2.1

> C++ Segfault on Put
> ---
>
> Key: IGNITE-5208
> URL: https://issues.apache.org/jira/browse/IGNITE-5208
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.0
>Reporter: Tolga HOŞGÖR
>Assignee: Igor Sapego
>Priority: Critical
>  Labels: c++
> Fix For: 2.1
>
>
> 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 each cache 
> concurrently, independent caches (X_1, X_2, ...) can be operated on and 
> called `::Put` on concurrently, but that should not be relevant as cache api 
> is thread safe.
> {code:none}
> C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
> const+0x14
> C  [test+0x1106305]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::_M_lower_bound(std::_Rb_tree_node  > >*, std::_Rb_tree_node_base*, int const&)+0x41
> C  [test+0x1105a9d]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::find(int const&)+0x45
> C  [test+0x1104e7f]  std::map ignite::common::concurrent::SharedPointer,
>  std::less, std::allocator  > > >::find(int const&)+0x23
> C  [test+0x1104031]  
> ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string  std::char_traits, std::allocator > const&, int)+0x6f
> C  [test+0xe6de2d]  void 
> ignite::impl::binary::BinaryWriterImpl::WriteTopObject  >(std::shared_ptr const&)+0xbb
> C  [test+0xe6cd48]  
> ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr 
> >::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::char_traits, std::allocator >, std::shared_ptr 
> >::Put(std::__cxx11::basic_string std::allocator > const&, std::shared_ptr const&, 
> ignite::IgniteError&)+0x52
> {code}
> There seems to be some kind of race situation:
> {code:none}
> 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at 
> /usr/include/c++/6.3.1/bits/stl_function.h:386
> {code}
> {code:none}
> #4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
> (this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
> src/impl/binary/binary_type_manager.cpp:56
> 56  std::map::iterator it = 
> snapshots0.find(typeId);
> (gdb) print snapshots0
> $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl 
> = 0x0}...}
> (gdb) print snapshot
> $11 = {ptr = 0x7fffda4f, impl = 0x11}
> {code}
> `impl` pointers seems to be corrupted on multiple places. Why aren't you 
> using `std::shared_ptr` instead of your own concurrent shared pointer?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread Igor Sapego (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Sapego updated IGNITE-5208:

Component/s: (was: cache)
 platforms

> C++ Segfault on Put
> ---
>
> Key: IGNITE-5208
> URL: https://issues.apache.org/jira/browse/IGNITE-5208
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.0
>Reporter: Tolga HOŞGÖR
>Assignee: Igor Sapego
>Priority: Critical
>  Labels: c++
> Fix For: 2.1
>
>
> 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 each cache 
> concurrently, independent caches (X_1, X_2, ...) can be operated on and 
> called `::Put` on concurrently, but that should not be relevant as cache api 
> is thread safe.
> {code:none}
> C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
> const+0x14
> C  [test+0x1106305]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::_M_lower_bound(std::_Rb_tree_node  > >*, std::_Rb_tree_node_base*, int const&)+0x41
> C  [test+0x1105a9d]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::find(int const&)+0x45
> C  [test+0x1104e7f]  std::map ignite::common::concurrent::SharedPointer,
>  std::less, std::allocator  > > >::find(int const&)+0x23
> C  [test+0x1104031]  
> ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string  std::char_traits, std::allocator > const&, int)+0x6f
> C  [test+0xe6de2d]  void 
> ignite::impl::binary::BinaryWriterImpl::WriteTopObject  >(std::shared_ptr const&)+0xbb
> C  [test+0xe6cd48]  
> ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr 
> >::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::char_traits, std::allocator >, std::shared_ptr 
> >::Put(std::__cxx11::basic_string std::allocator > const&, std::shared_ptr const&, 
> ignite::IgniteError&)+0x52
> {code}
> There seems to be some kind of race situation:
> {code:none}
> 0x01381206 in std::less::operator() (this=0x1a4e4b0, __x= reading variable>, __y=@0x7fff80846e04: 2066246303) at 
> /usr/include/c++/6.3.1/bits/stl_function.h:386
> {code}
> {code:none}
> #4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
> (this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
> src/impl/binary/binary_type_manager.cpp:56
> 56  std::map::iterator it = 
> snapshots0.find(typeId);
> (gdb) print snapshots0
> $10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl 
> = 0x0}...}
> (gdb) print snapshot
> $11 = {ptr = 0x7fffda4f, impl = 0x11}
> {code}
> `impl` pointers seems to be corrupted on multiple places. Why aren't you 
> using `std::shared_ptr` instead of your own concurrent shared pointer?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr const&, 
ignite::IgniteError&)+0x52
{code}

There seems to be some kind of race situation:
{code:none}
0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at 
/usr/include/c++/6.3.1/bits/stl_function.h:386
{code}
{code:none}
#4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
(this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
src/impl/binary/binary_type_manager.cpp:56
56  std::map::iterator it = 
snapshots0.find(typeId);
(gdb) print snapshots0
$10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 
0x0}...}
(gdb) print snapshot
$11 = {ptr = 0x7fffda4f, impl = 0x11}
{code}

`impl` pointers seems to be corrupted on multiple places. Why aren't you using 
`std::shared_ptr` instead of your own concurrent shared pointer?

  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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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]  

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr const&, 
ignite::IgniteError&)+0x52
{code}

There seems to be some kind of race situation:
{code:none}
0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at 
/usr/include/c++/6.3.1/bits/stl_function.h:386
{code}
{code:none}
#4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
(this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
src/impl/binary/binary_type_manager.cpp:56
56  std::map::iterator it = 
snapshots0.find(typeId);
(gdb) print snapshots0
$10 = std::map with 42286576 elements = {[42312864] = {ptr = 0x285a4a0, impl = 
0x0}...}
(gdb) print snapshot
$11 = {ptr = 0x7fffda4f, impl = 0x11}
{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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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]  

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr const&, 
ignite::IgniteError&)+0x52
{code}

There seems to be some kind of race situation:
{code:none}
0x01381206 in std::less::operator() (this=0x1a4e4b0, __x=, __y=@0x7fff80846e04: 2066246303) at 
/usr/include/c++/6.3.1/bits/stl_function.h:386
{code}
{code:none}
#4  0x015040cd in ignite::impl::binary::BinaryTypeManager::GetHandler 
(this=0x1a560d0, typeName="test.data", typeId=2066246303) at 
src/impl/binary/binary_type_manager.cpp:56
56  std::map::iterator it = 
snapshots0.find(typeId);
(gdb) print snapshots0
$10 = std::map with 42286576 elements = \{[42312864] = \{ptr = 0x285a4a0, impl 
= 0x0\}...\}
(gdb) print snapshot
$11 = \{ptr = 0x7fffda4f, impl = 0x11\}
{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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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]  

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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 each cache 
concurrently, independent caches (X_1, X_2, ...) can be operated on and called 
`::Put` on concurrently, but that should not be relevant as cache api is thread 
safe.

{code:none}
C  [test+0xf8116a]  std::less::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr 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::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr 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 

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
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::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr 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::operator()(int const&, int const&) 
const+0x14
C  [test+0x1106305]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_lower_bound(std::_Rb_tree_node >*, std::_Rb_tree_node_base*, int const&)+0x41
C  [test+0x1105a9d]  std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::find(int const&)+0x45
C  [test+0x1104e7f]  std::map > >::find(int const&)+0x23
C  [test+0x1104031]  
ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string const&, int)+0x6f
C  [test+0xe6de2d]  void 
ignite::impl::binary::BinaryWriterImpl::WriteTopObject(std::shared_ptr const&)+0xbb
C  [test+0xe6cd48]  ignite::impl::In2Operation, std::shared_ptr 
>::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::shared_ptr 
>::Put(std::__cxx11::basic_string const&, std::shared_ptr 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 

[jira] [Updated] (IGNITE-5208) C++ Segfault on Put

2017-05-12 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/IGNITE-5208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tolga HOŞGÖR updated IGNITE-5208:
-
Priority: Critical  (was: Major)

> 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::operator()(int const&, int const&) 
> const+0x14
> C  [test+0x1106305]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::_M_lower_bound(std::_Rb_tree_node  > >*, std::_Rb_tree_node_base*, int const&)+0x41
> C  [test+0x1105a9d]  std::_Rb_tree  >, std::_Select1st  > >, std::less, std::allocator  > > >::find(int const&)+0x45
> C  [test+0x1104e7f]  std::map ignite::common::concurrent::SharedPointer,
>  std::less, std::allocator  > > >::find(int const&)+0x23
> C  [test+0x1104031]  
> ignite::impl::binary::BinaryTypeManager::GetHandler(std::__cxx11::basic_string  std::char_traits, std::allocator > const&, int)+0x6f
> C  [test+0xe6de2d]  void 
> ignite::impl::binary::BinaryWriterImpl::WriteTopObject  >(std::shared_ptr const&)+0xbb
> C  [test+0xe6cd48]  
> ignite::impl::In2Operation std::char_traits, std::allocator >, std::shared_ptr 
> >::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::char_traits, std::allocator >, std::shared_ptr 
> >::Put(std::__cxx11::basic_string std::allocator > const&, std::shared_ptr const&, 
> ignite::IgniteError&)+0x52
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)