Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

test: concurrent_hash_map_singlethread_0_none fails on Windows #322

Closed
kkajrewicz opened this issue Jun 11, 2019 · 3 comments
Closed

test: concurrent_hash_map_singlethread_0_none fails on Windows #322

kkajrewicz opened this issue Jun 11, 2019 · 3 comments
Labels
Type: Bug Something isn't working

Comments

@kkajrewicz
Copy link
Contributor

65/202 Test #66: concurrent_hash_map_singlethread_0_none ...........................***Failed 18.06 sec
-- Executing: D:/libpmemobj-cpp/build/tests/Debug/concurrent_hash_map_singlethread.exe D:/libpmemobj-cpp/build/test/concurrent_hash_map_singlethread_0_none/testfile
-- Test concurrent_hash_map_singlethread_0_none:
-- Stdout:

Signal 22, backtrace:
22: test_dump_backtrace [00007FF7C12F43E3]
21: test_sighandler [00007FF7C12F4561]
20: raise [00007FFC49758201]
19: abort [00007FFC49759D89]
18: get_wide_winmain_command_line [00007FFC4975F46F]
17: get_wide_winmain_command_line [00007FFC4975D488]
16: wassert [00007FFC4975FC6F]
15: pmem::obj::experimental::internal::hash_map_base::add_to_bucket [00007FF7C12EB229]
14: pmem::obj::experimental::internal::hash_map_base::insert_new_node [00007FF7C12F07FC]
13: pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >::internal_copy<pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0> > [00007FF7C12DBE39]
12: pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > ><pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0> > [00007FF7C12D7DA5]
11: pmem::detail::create<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0>,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0> > [00007FF7C12DA581]
10: pmem::obj::make_persistent<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0>,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0> > [00007FF7C12DD82C]
9: pmem::obj::make_persistent<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0>,pmem::obj::experimental::internal::hash_map_iterator<pmem::obj::experimental::concurrent_hash_map<pmem::obj::p<int>,pmem::obj::p<int>,pmem::obj::experimental::hash_compare<pmem::obj::p<int> > >,0> > [00007FF7C12DD69D]
8: anonymous namespace'::ctor_test [00007FF7C12D3FAC]
6: main [00007FF7C12D658D]
5: invoke_main [00007FF7C12F61C4]
4: __scrt_common_main_seh [00007FF7C12F6087]
3: __scrt_common_main [00007FF7C12F5F4E]
2: mainCRTStartup [00007FF7C12F61E9]
1: BaseThreadInitThunk [00007FFC5A6C13F2]
0: RtlUserThreadStart [00007FFC5C1D54F4]

-- Stderr:
Assertion failed: b->tmp_node->next == b->node_list, file D:\libpmemobj-cpp\include\libpmemobj++/experimental/concurrent_hash_map.hpp, line 1203

CMake Error at D:/libpmemobj-cpp/tests/helpers.cmake:215 (message):
D:/libpmemobj-cpp/build/tests/Debug/concurrent_hash_map_singlethread.exe D:/qba1/libpmemobj-cpp/build/test/concurrent_hash_map_singlethread_0_none/testfile failed: 150
Call Stack (most recent call first):
D:/libpmemobj-cpp/tests/helpers.cmake:267 (execute_common)
D:/libpmemobj-cpp/tests/run_default.cmake:36 (execute)

Found on 2e51f7c

@kkajrewicz kkajrewicz added the Type: Bug Something isn't working label Jun 11, 2019
vinser52 added a commit to vinser52/libpmemobj-cpp that referenced this issue Jun 17, 2019
@vinser52
Copy link
Contributor

@kkajrewicz Could you please confirm that issue is solved with my fix?

@kkajrewicz
Copy link
Contributor Author

Still not working:

    Start 66: concurrent_hash_map_singlethread_0_none
1/1 Test #66: concurrent_hash_map_singlethread_0_none ...***Failed  139.72 sec

-- Stdout:

Signal 22, backtrace:
18: test_dump_backtrace [00007FF6B12E4373]
17: test_sighandler [00007FF6B12E44F1]
16: raise [00007FFDE100C3E1]
15: setmbcp [00007FFDE1008337]
14: CrtSetReportHookW2 [00007FFDE10090D3]
13: VCrtDbgReportW [00007FFDE100AA6B]
12: CrtDbgReportW [00007FFDE1008FC0]
11: _threadid [00007FFDE0FF7C61]
10: _threadid [00007FFDE0FF7E13]
9: abort [00007FFDE100E01D]
8: UT_FATAL [00007FF6B12C3A12]
7: `anonymous namespace'::access_test [00007FF6B12C4F20]
6: main [00007FF6B12C65B1]
5: invoke_main [00007FF6B12E6154]
4: __scrt_common_main_seh [00007FF6B12E6017]
3: __scrt_common_main [00007FF6B12E5EDE]
2: mainCRTStartup [00007FF6B12E6179]
1: BaseThreadInitThunk [00007FFE337237E4]
0: RtlUserThreadStart [00007FFE3417CB81]


-- Stderr:
D:\libpmemobj-cpp\tests\concurrent_hash_map_singlethread\concurrent_hash_map_singlethread.cpp:287 access_test - assertion failure: it->first == i

vinser52 added a commit to vinser52/libpmemobj-cpp that referenced this issue Jun 18, 2019
Wrong parameter is passed to constructor. When we create a new
node, the last parameter should be previous head. But in internal_copy()
method the b->tmp_node is passed by mistake.
Assert caught the issue on Windows. The assert is raised only when more
than one elements fit to the same bucket when we do internal_copy().
igchor added a commit that referenced this issue Jun 18, 2019
@igchor
Copy link
Contributor

igchor commented Jun 19, 2019

Fixed by #333

@igchor igchor closed this as completed Jun 19, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Type: Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants